Re: Encoding neutral unpack
Ton Hospel [Sat, 12 Mar 2005 18:54:29 +0000 (18:54 +0000)]
Message-ID: <d0vdt5$81a$1@post.home.lunix>

A new test.

p4raw-id: //depot/perl@24031

t/op/pack.t

index 7f6bbed..06c3a9a 100755 (executable)
@@ -12,7 +12,7 @@ my $no_endianness = $] > 5.009 ? '' :
 my $no_signedness = $] > 5.009 ? '' :
   "Signed/unsigned pack modifiers not available on this perl";
 
-plan tests => 14604;
+plan tests => 14606;
 
 use strict;
 use warnings;
@@ -1495,6 +1495,18 @@ is(unpack('c'), 65, "one-arg unpack (change #18751)"); # defaulting to $_
     is($a[-2], "X",          "[perl #15288]");
 }
 
+{
+    my $warning;
+    local $SIG{__WARN__} = sub {
+        $warning = $_[0];
+    };
+    my $out = pack("u99", "foo" x 99);
+    like($warning, qr/Field too wide in 'u' format in pack at /,
+         "Warn about too wide uuencode");
+    is($out, ("_" . "9F]O" x 21 . "\n") x 4 . "M" . "9F]O" x 15 . "\n",
+       "Use max width in case of too wide uuencode");
+}
+
 # checksums
 {
     # verify that unpack advances correctly wrt a checksum