summaryrefslogtreecommitdiff
path: root/t/op/pack.t
diff options
context:
space:
mode:
Diffstat (limited to 't/op/pack.t')
-rwxr-xr-x[-rw-r--r--]t/op/pack.t26
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";