summaryrefslogtreecommitdiff
path: root/t/op/lfs.t
diff options
context:
space:
mode:
Diffstat (limited to 't/op/lfs.t')
-rw-r--r--t/op/lfs.t16
1 files changed, 12 insertions, 4 deletions
diff --git a/t/op/lfs.t b/t/op/lfs.t
index e04e1a1dac..0a1c399840 100644
--- a/t/op/lfs.t
+++ b/t/op/lfs.t
@@ -14,6 +14,7 @@ BEGIN {
}
use strict;
+
our @s;
our $fail;
@@ -176,18 +177,25 @@ sub offset ($$) {
my $offset_is = eval $offset_will_be;
unless ($offset_is == $offset_want) {
print "# bad offset $offset_is, want $offset_want\n";
+ my ($offset_func) = ($offset_will_be =~ /^(\w+)/);
if (unpack("L", pack("L", $offset_want)) == $offset_is) {
- my $offset_func = ($offset_will_be =~ /^(\w+)/);
print "# 32-bit wraparound suspected in $offset_func() since\n";
- print "# $offset_want cast into 32 bits is $offset_is.\n";
- }
+ print "# $offset_want cast into 32 bits equals $offset_is.\n";
+ } elsif ($offset_want - unpack("L", pack("L", $offset_want)) - 1
+ == $offset_is) {
+ print "# 32-bit wraparound suspected in $offset_func() since\n";
+ printf "# %s - unpack('L', pack('L', %s)) - 1 equals %s.\n",
+ $offset_want,
+ $offset_want,
+ $offset_is;
+ }
fail;
}
}
print "1..17\n";
-my $fail = 0;
+$fail = 0;
fail unless $s[7] == 5_000_000_003; # exercizes pp_stat
print "ok 1\n";