X-Git-Url: http://git.shadowcat.co.uk/gitweb/gitweb.cgi?a=blobdiff_plain;f=lib%2Finteger.t;h=c1bb4d04cf2d7d9f6bfea40455543846d0cb7361;hb=dfa4e5d386dd8c5329351699b02085856cdd140e;hp=4184747c3e2ee2ca173954c469bdd1431b2f3ca1;hpb=4d0ed6f7ca164e8f0de0f0e2228fdb2e304666cb;p=p5sagit%2Fp5-mst-13.2.git diff --git a/lib/integer.t b/lib/integer.t index 4184747..c1bb4d0 100644 --- a/lib/integer.t +++ b/lib/integer.t @@ -1,6 +1,13 @@ +#!./perl + +BEGIN { + chdir 't' if -d 't'; + @INC = '../lib'; +} + use integer; -use Test::More tests => 11; +use Test::More tests => 15; use Config; my $x = 4.5; @@ -43,4 +50,20 @@ SKIP: { } } -is(~0, -1, "unsigned"); +is(~0, -1, "signed instead of unsigned"); + +# [perl #38485] use integer; 0x80000000/-1; +SKIP: { + my $ivsize = $Config{ivsize}; + skip "ivsize == $ivsize", 4 unless $ivsize == 4 || $ivsize == 8; + + my $iv_min = $ivsize == 4 ? -2147483648 : -9223372036854775808; + my $biff; + eval { $biff = $iv_min / -1 }; + is($@, '', 'IV_MIN / -1 succeeds'); + is($biff, -$iv_min, 'IV_MIN / -1 == -IV_MIN'); + + eval { $biff = $iv_min % -1 }; + is($@, '', 'IV_MIN % -1 succeeds'); + is($biff, 0, 'IV_MIN % -1 == 0'); +}