X-Git-Url: http://git.shadowcat.co.uk/gitweb/gitweb.cgi?a=blobdiff_plain;f=lib%2Finteger.t;h=c1bb4d04cf2d7d9f6bfea40455543846d0cb7361;hb=dfa4e5d386dd8c5329351699b02085856cdd140e;hp=a74c4045f05d7a7fc416e15fc3b85dce7f766348;hpb=05f18d1e4fbffbbd3264b216e7ec3d0d12c172b7;p=p5sagit%2Fp5-mst-13.2.git diff --git a/lib/integer.t b/lib/integer.t index a74c404..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; @@ -44,3 +51,19 @@ SKIP: { } 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'); +}