This is a live mirror of the Perl 5 development currently hosted at https://github.com/perl/perl5
Replace references to PL_vtbl_{bm,fm} in the code with PL_vtbl_regexp.
[perl5.git] / lib / integer.t
index 4184747..c1bb4d0 100644 (file)
@@ -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');
+}