This is a live mirror of the Perl 5 development currently hosted at https://github.com/perl/perl5
Use more universal function in tests where makes sense
authorKarl Williamson <khw@cpan.org>
Wed, 14 Jan 2015 17:54:31 +0000 (10:54 -0700)
committerKarl Williamson <khw@cpan.org>
Wed, 14 Jan 2015 18:18:19 +0000 (11:18 -0700)
By using a different function that is just as applicable, or more so, in
these cases, we can avoid having to require a file.

The functions that translate code points between character sets are
always available and just as appropriate for the uses in the three tests
t/re/fold_grind.t, t/re/reg_fold.t, and lib/unicore/TestProp.pl.  Change
to use it instead of the functions that take string inputs.  This is
slightly cleaner, as the file that contains it no longer has to be
'required'.  And in some of the cases the code point function is a
better choice, as there had to be translation between chr and ord
before.

lib/unicore/mktables
t/re/fold_grind.t
t/re/reg_fold.t

index a21aa1a..742e2af 100644 (file)
@@ -18606,11 +18606,6 @@ __DATA__
 use strict;
 use warnings;
 
-# If run outside the normal test suite on an ASCII platform, you can
-# just create a latin1_to_native() function that just returns its
-# inputs, because that's the only function used from charset_tools.pl
-require "charset_tools.pl";
-
 # Test qr/\X/ and the \p{} regular expression constructs.  This file is
 # constructed by mktables from the tables it generates, so if mktables is
 # buggy, this won't necessarily catch those bugs.  Tests are generated for all
@@ -18760,7 +18755,7 @@ sub Test_X($) {
         my $this_string = "";
         my $this_display = "";
         foreach my $code_point (@code_points) {
-            $this_string .= latin1_to_native(chr(hex $code_point));
+            $this_string .= chr utf8::unicode_to_native(hex $code_point);
             $this_display .= "\\x{$code_point}";
         }
 
index 3fb11e5..a39affb 100644 (file)
@@ -5,7 +5,7 @@ binmode STDOUT, ":utf8";
 BEGIN {
     chdir 't' if -d 't';
     @INC = '../lib';
-    require './test.pl'; require './charset_tools.pl';
+    require './test.pl';
     require Config; import Config;
     skip_all_if_miniperl("no dynamic loading on miniperl, no Encode nor POSIX");
     if ($^O eq 'dec_osf') {
@@ -481,8 +481,8 @@ foreach my $test (sort { numerically } keys %tests) {
     next if @target > 1 && @pattern > 1;
 
     # Have to convert non-utf8 chars to native char set
-    @target = map { $_ > 255 ? $_ : ord latin1_to_native(chr($_)) } @target;
-    @pattern = map { $_ > 255 ? $_ : ord latin1_to_native(chr($_)) } @pattern;
+    @target = map { utf8::unicode_to_native($_) } @target;
+    @pattern = map { utf8::unicode_to_native($_) } @pattern;
 
     # Get in hex form.
     my @x_target = map { sprintf "\\x{%04X}", $_ } @target;
index 3e98866..a23a799 100644 (file)
@@ -3,7 +3,7 @@
 BEGIN {
     chdir 't' if -d 't';
     @INC = '../lib';
-    require './test.pl'; require './charset_tools.pl';
+    require './test.pl';
     skip_all_if_miniperl("no dynamic loading on miniperl, no File::Spec");
 }
 
@@ -158,7 +158,7 @@ push @tests, qq[like 'a', qr/\\p{Upper}/i, "'a' =~ /\\\\p{Upper}/i"];
 push @tests, q[my $c = "\x{212A}"; my $p = qr/(?:^[K_]+$)/i; utf8::upgrade($p); like $c, qr/$p/, 'Bug #78994: my $c = "\x{212A}"; my $p = qr/(?:^[K_]+$)/i; utf8::upgrade($p); $c =~ $p'];
 
 use charnames ":full";
-my $e_grave = latin1_to_native("\xE8");
+my $e_grave = chr utf8::unicode_to_native(0xE8);
 push @tests, q[my $re1 = "\N{WHITE SMILING FACE}";like $e_grave, qr/[\w$re1]/, 'my $re = "\N{WHITE SMILING FACE}"; $e_grave =~ qr/[\w$re]/'];
 push @tests, q[my $re2 = "\N{WHITE SMILING FACE}";like $e_grave, qr/\w|$re2/, 'my $re = "\N{WHITE SMILING FACE}"; $e_grave =~ qr/\w|$re/'];