Patch for Perlbug #4253
[p5sagit/p5-mst-13.2.git] / t / op / range.t
index dcf0fcf..310f480 100755 (executable)
@@ -1,5 +1,12 @@
 #!./perl
 
+BEGIN {
+    chdir 't' if -d 't';
+    @INC = '../lib';
+}   
+
+use Config;
+
 print "1..37\n";
 
 print join(':',1..5) eq '1:2:3:4:5' ? "ok 1\n" : "not ok 1\n";
@@ -47,12 +54,23 @@ print "not " unless join(",", @y) eq join(",", @x);
 print "ok 10\n";
 
 # check bounds
-@a = 0x7ffffffe..0x7fffffff;
-print "not " unless "@a" eq "2147483646 2147483647";
+if ($Config{ivsize} == 8) {
+  @a = eval "0x7ffffffffffffffe..0x7fffffffffffffff";
+  $a = "9223372036854775806 9223372036854775807";
+  @b = eval "-0x7fffffffffffffff..-0x7ffffffffffffffe";
+  $b = "-9223372036854775807 -9223372036854775806";
+}
+else {
+  @a = eval "0x7ffffffe..0x7fffffff";
+  $a = "2147483646 2147483647";
+  @b = eval "-0x7fffffff..-0x7ffffffe";
+  $b = "-2147483647 -2147483646";
+}
+
+print "not " unless "@a" eq $a;
 print "ok 11\n";
 
-@a = -0x7fffffff..-0x7ffffffe;
-print "not " unless "@a" eq "-2147483647 -2147483646";
+print "not " unless "@b" eq $b;
 print "ok 12\n";
 
 # check magic
@@ -93,7 +111,7 @@ print join(":", map "[$_]", "B".."") eq '' ? "ok 26\n" : "not ok 26\n";
 print join(":", map "[$_]", "B"..undef) eq '' ? "ok 27\n" : "not ok 27\n";
 
 # undef..undef used to segfault
-print join(":", map "[$_]", undef..undef) eq '[0]' ? "ok 28\n" : "not ok 28\n";
+print join(":", map "[$_]", undef..undef) eq '[]' ? "ok 28\n" : "not ok 28\n";
 
 # also test undef in foreach loops
 @foo=(); push @foo, $_ for undef..2;
@@ -121,4 +139,4 @@ print join(":", map "[$_]", @foo) eq '' ? "ok 35\n" : "not ok 35\n";
 print join(":", map "[$_]", @foo) eq '' ? "ok 36\n" : "not ok 36\n";
 
 @foo=(); push @foo, $_ for undef..undef;
-print join(":", map "[$_]", @foo) eq '[0]' ? "ok 37\n" : "not ok 37\n";
+print join(":", map "[$_]", @foo) eq '[]' ? "ok 37\n" : "not ok 37\n";