From bc4230ed6f8300028ea5735335847a0d9e97a11d Mon Sep 17 00:00:00 2001 From: Pali Date: Mon, 1 Jul 2019 14:37:19 +0200 Subject: [PATCH] Add tests for IVdf, UVuf, IV_MAX and UV_MAX (cherry picked from commit 2b31db974097bbec6a64078e2a3f8c1c166236ad) Signed-off-by: Nicolas R --- dist/Devel-PPPort/parts/inc/format | 47 +++++++++++++++++++++++++++++++++++++- dist/Devel-PPPort/t/format.t | 19 +++++++++++++-- 2 files changed, 63 insertions(+), 3 deletions(-) diff --git a/dist/Devel-PPPort/parts/inc/format b/dist/Devel-PPPort/parts/inc/format index 03c632d3..7e2b304 100644 --- a/dist/Devel-PPPort/parts/inc/format +++ b/dist/Devel-PPPort/parts/inc/format @@ -55,9 +55,54 @@ croak_NVgf(num) PPCODE: Perl_croak(aTHX_ "%.20" NVgf "\n", num); -=tests plan => 1 +SV * +sprintf_iv(iv) + IV iv +CODE: + RETVAL = newSVpvf("XX_%" IVdf "_XX", iv); +OUTPUT: + RETVAL + +SV * +sprintf_uv(uv) + UV uv +CODE: + RETVAL = newSVpvf("XX_%" UVuf "_XX", uv); +OUTPUT: + RETVAL + +SV * +sprintf_ivmax() +CODE: + RETVAL = newSVpvf("%" IVdf, IV_MAX); +OUTPUT: + RETVAL + +SV * +sprintf_uvmax() +CODE: + RETVAL = newSVpvf("%" UVuf, UV_MAX); +OUTPUT: + RETVAL + +=tests plan => 5 + +use Config; my $num = 1.12345678901234567890; eval { Devel::PPPort::croak_NVgf($num) }; ok($@ =~ /^1.1234567890/); + +ok(Devel::PPPort::sprintf_iv(-8), 'XX_-8_XX'); +ok(Devel::PPPort::sprintf_uv(15), 'XX_15_XX'); + +my $ivsize = $Config::Config{ivsize}; +my $ivmax = ($ivsize == 4) ? '2147483647' : ($ivsize == 8) ? '9223372036854775807' : 0; +my $uvmax = ($ivsize == 4) ? '4294967295' : ($ivsize == 8) ? '18446744073709551615' : 0; +if ($ivmax == 0) { + skip 'skip: unknown ivsize', 0 for 1..2; +} else { + ok(Devel::PPPort::sprintf_ivmax(), $ivmax); + ok(Devel::PPPort::sprintf_uvmax(), $uvmax); +} diff --git a/dist/Devel-PPPort/t/format.t b/dist/Devel-PPPort/t/format.t index 7933c4b..5c06ab1 100644 --- a/dist/Devel-PPPort/t/format.t +++ b/dist/Devel-PPPort/t/format.t @@ -30,9 +30,9 @@ BEGIN { require 'testutil.pl' if $@; } - if (1) { + if (5) { load(); - plan(tests => 1); + plan(tests => 5); } } @@ -48,8 +48,23 @@ bootstrap Devel::PPPort; package main; +use Config; + my $num = 1.12345678901234567890; eval { Devel::PPPort::croak_NVgf($num) }; ok($@ =~ /^1.1234567890/); +ok(Devel::PPPort::sprintf_iv(-8), 'XX_-8_XX'); +ok(Devel::PPPort::sprintf_uv(15), 'XX_15_XX'); + +my $ivsize = $Config::Config{ivsize}; +my $ivmax = ($ivsize == 4) ? '2147483647' : ($ivsize == 8) ? '9223372036854775807' : 0; +my $uvmax = ($ivsize == 4) ? '4294967295' : ($ivsize == 8) ? '18446744073709551615' : 0; +if ($ivmax == 0) { + skip 'skip: unknown ivsize', 0 for 1..2; +} else { + ok(Devel::PPPort::sprintf_ivmax(), $ivmax); + ok(Devel::PPPort::sprintf_uvmax(), $uvmax); +} + -- 1.8.3.1