jhi,

> A bit of noise from ext/PerlIO/t/fallback.t:
>
> ./perl -Ilib ext/PerlIO/t/fallback.t
> 1..8
> ok 1 - opened iso-8859-1 file
> "\N{U+20ac}" does not map to iso-8859-1 at ext/PerlIO/t/fallback.t line 
> 21.
> ok 2 - perlqq escapes
> ok 3 - opened iso-8859-1 file
> ok 4 - HTML escapes
> ok 5 - Opened as ASCII
> # 5c
> ok 6 - Escaped non-mapped char
> ok 7 - Opened as ASCII
> # fffd
> ok 8 - Unicode replacement char

The following patch will make it this way.

 > ./perl -I./lib ext/PerlIO/t/fallback.t
1..9
ok 1 - opened iso-8859-1 file
ok 2 - FB_WARN message
ok 3 - perlqq escapes
ok 4 - opened iso-8859-1 file
ok 5 - HTML escapes
ok 6 - Opened as ASCII
# 5c
ok 7 - Escaped non-mapped char
ok 8 - Opened as ASCII
# fffd
ok 9 - Unicode replacement char

I know NI-XS will fix and enhance this test soon but for the time being 
you can use this for peace of mind.

Dan the Perl5 Porter

--- ext/PerlIO/t/fallback.t.prev        Mon Apr 29 02:10:37 2002
+++ ext/PerlIO/t/fallback.t     Thu May  2 00:11:06 2002
@@ -5,7 +5,7 @@
      @INC = '../lib';
      require "../t/test.pl";
      skip_all("No perlio") unless (find PerlIO::Layer 'perlio');
-    plan (8);
+    plan (9);
  }
  use Encode qw(:fallback_all);

@@ -13,12 +13,16 @@

  my $file = "fallback$$.txt";

-$PerlIO::encoding::fallback = Encode::PERLQQ;
-
-ok(open(my $fh,">encoding(iso-8859-1)",$file),"opened iso-8859-1 file");
-my $str = "\x{20AC}";
-print $fh $str,"0.02\n";
-close($fh);
+{
+    my $message = '';
+    local $SIG{__WARN__} = sub { $message = $_[0] };
+    $PerlIO::encoding::fallback = Encode::PERLQQ;
+    ok(open(my $fh,">encoding(iso-8859-1)",$file),"opened iso-8859-1 
file");
+    my $str = "\x{20AC}";
+    print $fh $str,"0.02\n";
+    close($fh);
+    like($message, qr/does not map to iso-8859-1/o, "FB_WARN message");
+}

  open($fh,$file) || die "File cannot be re-opened";
  my $line = <$fh>;

Reply via email to