home *** CD-ROM | disk | FTP | other *** search
/ Geek Gadgets 1 / ADE-1.bin / ade-dist / perl-5.003-src.tgz / tar.out / fsf / perl / t / op / pack.t < prev    next >
Text File  |  1996-09-28  |  1KB  |  44 lines

  1. #!./perl
  2.  
  3. # $RCSfile: pack.t,v $$Revision: 4.1 $$Date: 92/08/07 18:28:11 $
  4.  
  5. print "1..8\n";
  6.  
  7. $format = "c2x5CCxsdila6";
  8. # Need the expression in here to force ary[5] to be numeric.  This avoids
  9. # test2 failing because ary2 goes str->numeric->str and ary doesn't.
  10. @ary = (1,-100,127,128,32767,987.654321098 / 100.0,12345,123456,"abcdef");
  11. $foo = pack($format,@ary);
  12. @ary2 = unpack($format,$foo);
  13.  
  14. print ($#ary == $#ary2 ? "ok 1\n" : "not ok 1\n");
  15.  
  16. $out1=join(':',@ary);
  17. $out2=join(':',@ary2);
  18. print ($out1 eq $out2 ? "ok 2\n" : "not ok 2\n");
  19.  
  20. print ($foo =~ /def/ ? "ok 3\n" : "not ok 3\n");
  21.  
  22. # How about counting bits?
  23.  
  24. print +($x = unpack("%32B*", "\001\002\004\010\020\040\100\200\377")) == 16
  25.     ? "ok 4\n" : "not ok 4 $x\n";
  26.  
  27. print +($x = unpack("%32b69", "\001\002\004\010\020\040\100\200\017")) == 12
  28.     ? "ok 5\n" : "not ok 5 $x\n";
  29.  
  30. print +($x = unpack("%32B69", "\001\002\004\010\020\040\100\200\017")) == 9
  31.     ? "ok 6\n" : "not ok 6 $x\n";
  32.  
  33. print +($x = unpack("%32B*", "Now is the time for all good blurfl")) == 129
  34.     ? "ok 7\n" : "not ok 7 $x\n";
  35.  
  36. open(BIN, "./perl") || open(BIN, "./perl.exe") 
  37.     || die "Can't open ../perl or ../perl.exe: $!\n";
  38. sysread BIN, $foo, 8192;
  39. close BIN;
  40.  
  41. $sum = unpack("%32b*", $foo);
  42. $longway = unpack("b*", $foo);
  43. print $sum == $longway =~ tr/1/1/ ? "ok 8\n" : "not ok 8\n";
  44.