diff options
Diffstat (limited to 't/op/pack.t')
-rwxr-xr-x[-rw-r--r--] | t/op/pack.t | 26 |
1 files changed, 24 insertions, 2 deletions
diff --git a/t/op/pack.t b/t/op/pack.t index aa498c5846..859d48f70d 100644..100755 --- a/t/op/pack.t +++ b/t/op/pack.t @@ -1,8 +1,8 @@ #!./perl -# $Header: pack.t,v 4.0 91/03/20 01:53:57 lwall Locked $ +# $RCSfile: pack.t,v $$Revision: 4.1 $$Date: 92/08/07 18:28:11 $ -print "1..3\n"; +print "1..8\n"; $format = "c2x5CCxsdila6"; # Need the expression in here to force ary[5] to be numeric. This avoids @@ -18,3 +18,25 @@ $out2=join(':',@ary2); print ($out1 eq $out2 ? "ok 2\n" : "not ok 2\n"); print ($foo =~ /def/ ? "ok 3\n" : "not ok 3\n"); + +# How about counting bits? + +print +($x = unpack("%32B*", "\001\002\004\010\020\040\100\200\377")) == 16 + ? "ok 4\n" : "not ok 4 $x\n"; + +print +($x = unpack("%32b69", "\001\002\004\010\020\040\100\200\017")) == 12 + ? "ok 5\n" : "not ok 5 $x\n"; + +print +($x = unpack("%32B69", "\001\002\004\010\020\040\100\200\017")) == 9 + ? "ok 6\n" : "not ok 6 $x\n"; + +print +($x = unpack("%32B*", "Now is the time for all good blurfl")) == 129 + ? "ok 7\n" : "not ok 7 $x\n"; + +open(BIN, "./perl") || die "Can't open ../perl: $!\n"; +sysread BIN, $foo, 8192; +close BIN; + +$sum = unpack("%32b*", $foo); +$longway = unpack("b*", $foo); +print $sum == $longway =~ tr/1/1/ ? "ok 8\n" : "not ok 8\n"; |