In perl.git, the branch blead has been updated

<http://perl5.git.perl.org/perl.git/commitdiff/ea065648c797746c16c81f51328eb4e0b0feeb7b?hp=d460397bbe36e991666185c0884015fdd0a30a6d>

- Log -----------------------------------------------------------------
commit ea065648c797746c16c81f51328eb4e0b0feeb7b
Author: Nicholas Clark <[email protected]>
Date:   Thu Jul 1 12:08:33 2010 +0100

    Convert charnames.t to use t/lib/common.pl

M       MANIFEST
M       lib/charnames.t
A       t/lib/charnames/alias
M       t/lib/common.pl

commit 619d9e9c6b00e1f508864cfeb08ecc3ba0aa6237
Author: Nicholas Clark <[email protected]>
Date:   Thu Jul 1 11:13:34 2010 +0100

    Convert strict.t to use t/lib/common.pl

M       lib/strict.t
M       t/lib/common.pl

commit bd3fc147b26516ab1045db127705986acf92a6f4
Author: Nicholas Clark <[email protected]>
Date:   Thu Jul 1 10:54:33 2010 +0100

    Convert gmtime.t, localtime.t and overloading.t to Test::More.

M       lib/Time/gmtime.t
M       lib/Time/localtime.t
M       lib/overloading.t

commit 5b88804b955604d0af8805842b17d516bd9f3bd4
Author: Nicholas Clark <[email protected]>
Date:   Thu Jul 1 10:32:03 2010 +0100

    Convert DirHandle's tests to Test::More.
    
    Remove a vestigial reference to MacOS.

M       lib/DirHandle.t
-----------------------------------------------------------------------

Summary of changes:
 MANIFEST              |    1 +
 lib/DirHandle.t       |   13 +--
 lib/Time/gmtime.t     |    7 +-
 lib/Time/localtime.t  |    7 +-
 lib/charnames.t       |  270 +------------------------------------------------
 lib/overloading.t     |   10 +--
 lib/strict.t          |  105 ++------------------
 t/lib/charnames/alias |  244 ++++++++++++++++++++++++++++++++++++++++++++
 t/lib/common.pl       |    8 +-
 9 files changed, 270 insertions(+), 395 deletions(-)
 create mode 100644 t/lib/charnames/alias

diff --git a/MANIFEST b/MANIFEST
index 7089e3a..0feae39 100644
--- a/MANIFEST
+++ b/MANIFEST
@@ -4287,6 +4287,7 @@ t/io/through.t                    See if pipe passes data 
intact
 t/io/utf8.t                    See if file seeking works
 t/japh/abigail.t               Obscure tests
 t/lib/1_compile.t              See if the various libraries and extensions 
compile
+t/lib/charnames/alias          Tests of "use charnames" with aliases.
 t/lib/Cname.pm                 Test charnames in regexes (op/pat.t)
 t/lib/common.pl                        Helper for lib/{warnings,feature}.t
 t/lib/commonsense.t            See if configuration meets basic needs
diff --git a/lib/DirHandle.t b/lib/DirHandle.t
index 35a7ea8..f3a9304 100644
--- a/lib/DirHandle.t
+++ b/lib/DirHandle.t
@@ -11,9 +11,7 @@ BEGIN {
 }
 
 use DirHandle;
-require './test.pl';
-
-plan(5);
+use Test::More tests => 5;
 
 # Fetching the list of files in two different ways and expecting them 
 # to be the same is a race condition when tests are running in parallel.
@@ -21,12 +19,13 @@ plan(5);
 my $chdir;
 if ($ENV{PERL_CORE} && -d 'uni') {
   chdir 'uni';
+  push @INC, '../../lib';
   $chdir++;
 };
 
-$dot = new DirHandle ($^O eq 'MacOS' ? ':' : '.');
+$dot = DirHandle->new('.');
 
-ok(defined($dot));
+is(defined $dot, 1);
 
 @a = sort <*>;
 do { $first = $dot->read } while defined($first) && $first =~ /^\./;
@@ -37,11 +36,11 @@ ok(+(join("\0", @a) eq join("\0", @b)));
 
 $dot->rewind;
 @c = sort grep {/^[^.]/} $dot->read;
-cmp_ok(+(join("\0", @b), 'eq', join("\0", @c)));
+cmp_ok(join("\0", @b), 'eq', join("\0", @c));
 
 $dot->close;
 $dot->rewind;
-ok(!defined($dot->read));
+is(defined $dot->read, '');
 
 if ($chdir) {
   chdir "..";
diff --git a/lib/Time/gmtime.t b/lib/Time/gmtime.t
index b784096..54f6435 100644
--- a/lib/Time/gmtime.t
+++ b/lib/Time/gmtime.t
@@ -1,11 +1,6 @@
 #!./perl
 
-BEGIN {
-    chdir 't' if -d 't';
-    @INC = '../lib';
-
-    require "./test.pl";
-}
+use Test::More;
 
 my(@times, @methods);
 BEGIN {
diff --git a/lib/Time/localtime.t b/lib/Time/localtime.t
index 0b020fc..0d75dcb 100644
--- a/lib/Time/localtime.t
+++ b/lib/Time/localtime.t
@@ -1,11 +1,6 @@
 #!./perl
 
-BEGIN {
-    chdir 't' if -d 't';
-    @INC = '../lib';
-
-    require "./test.pl";
-}
+use Test::More;
 
 my(@times, @methods);
 BEGIN {
diff --git a/lib/charnames.t b/lib/charnames.t
index ce2bc34..f50076c 100644
--- a/lib/charnames.t
+++ b/lib/charnames.t
@@ -7,16 +7,15 @@ BEGIN {
     unless(grep /blib/, @INC) {
        chdir 't' if -d 't';
        @INC = '../lib';
-       require './test.pl';
     }
     $SIG{__WARN__} = sub { push @WARN, @_ };
 }
 
-require File::Spec;
+our $pragma_name = "charnames";
+our $local_tests = 58;
 
-$| = 1;
-
-plan(85);
+# ---- For the alias extensions
+require "../t/lib/common.pl";
 
 use charnames ':full';
 
@@ -200,58 +199,6 @@ is(charnames::viacode(0), "NULL");
 is(charnames::viacode("BE"), "VULGAR FRACTION THREE QUARTERS");
 is(charnames::viacode("U+00000000000FEED"), "ARABIC LETTER WAW ISOLATED FORM");
 
-
-# ---- Alias extensions
-
-my $alifile = File::Spec->catfile(File::Spec->updir, qw(lib unicore 
xyzzy_alias.pl));
-
-my @prgs;
-{
-    local $/ = undef;
-    @prgs = split "\n########\n", <DATA>;
-}
-
-for (@prgs) {
-    my ($code, $exp) = ((split m/\nEXPECT\n/), '$');
-    my ($prog, $fil) = ((split m/\nFILE\n/, $code), "");
-    my $tmpfile = tempfile();
-    open my $tmp, "> $tmpfile" or die "Could not open $tmpfile: $!";
-    print $tmp $prog, "\n";
-    close $tmp or die "Could not close $tmpfile: $!";
-    if ($fil) {
-       $fil .= "\n";
-       open my $ali, "> $alifile" or die "Could not open $alifile: $!";
-       print $ali $fil;
-       close $ali or die "Could not close $alifile: $!";
-    }
-    my $switch = "";
-    my $res = runperl( switches => $switch,
-                       progfile => $tmpfile,
-                       stderr => 1 );
-    my $status = $?;
-    $res =~ s/[\r\n]+$//;
-    $res =~ s/tmp\d+/-/g;                      # fake $prog from STDIN
-    $res =~ s/\n%[A-Z]+-[SIWEF]-.*$//          # clip off DCL status msg
-       if $^O eq "VMS";
-    $exp =~ s/[\r\n]+$//;
-    my $pfx = ($res =~ s/^PREFIX\n//);
-    my $rexp = qr{^$exp};
-    my $expected = "";      # Unsure why this is here, as was never initialized
-
-    SKIP: {
-        skip $res, 1, if $res =~ s/^SKIPPED\n//;
-        if (($pfx and $res !~ /^\Q$expected/) or
-            (!$pfx and $res !~ $rexp))
-        {
-            fail("PROG:\n$prog\nFILE:\n${fil}EXPECTED:\n$exp\nGOT:\n$res");
-        } else {
-            pass("");
-        }
-    }
-    $fil or next;
-    1 while unlink $alifile;
-}
-
 # [perl #30409] charnames.pm clobbers default variable
 $_ = 'foobar';
 eval "use charnames ':full';";
@@ -297,212 +244,3 @@ is("\N{U+1D0C5}", "\N{BYZANTINE MUSICAL SYMBOL FTHORA 
SKLIRON CHROMA VASIS}");
     $res .= '-3' if ":" =~ /\N{COLON}/i;
     is($res, "foo-foo-1--2-3");
 }
-
-__END__
-# unsupported pragma
-use charnames ":scoobydoo";
-"Here: \N{e_ACUTE}!\n";
-EXPECT
-unsupported special ':scoobydoo' in charnames at
-########
-# wrong type of alias (missing colon)
-use charnames "alias";
-"Here: \N{e_ACUTE}!\n";
-EXPECT
-Unknown charname 'e_ACUTE' at
-########
-# alias without an argument
-use charnames ":alias";
-"Here: \N{e_ACUTE}!\n";
-EXPECT
-:alias needs an argument in charnames at
-########
-# reversed sequence
-use charnames ":alias" => ":full";
-"Here: \N{e_ACUTE}!\n";
-EXPECT
-:alias cannot use existing pragma :full \(reversed order\?\) at
-########
-# alias with hashref but no :full
-use charnames ":alias" => { e_ACUTE => "LATIN SMALL LETTER E WITH ACUTE" };
-"Here: \N{e_ACUTE}!\n";
-EXPECT
-Unknown charname 'LATIN SMALL LETTER E WITH ACUTE' at
-########
-# alias with hashref but with :short
-use charnames ":short", ":alias" => { e_ACUTE => "LATIN SMALL LETTER E WITH 
ACUTE" };
-"Here: \N{e_ACUTE}!\n";
-EXPECT
-Unknown charname 'LATIN SMALL LETTER E WITH ACUTE' at
-########
-# alias with hashref to :full OK
-use charnames ":full", ":alias" => { e_ACUTE => "LATIN SMALL LETTER E WITH 
ACUTE" };
-"Here: \N{e_ACUTE}!\n";
-EXPECT
-$
-########
-# alias with hashref to :short but using :full
-use charnames ":full", ":alias" => { e_ACUTE => "LATIN:e WITH ACUTE" };
-"Here: \N{e_ACUTE}!\n";
-EXPECT
-Unknown charname 'LATIN:e WITH ACUTE' at
-########
-# alias with hashref to :short OK
-use charnames ":short", ":alias" => { e_ACUTE => "LATIN:e WITH ACUTE" };
-"Here: \N{e_ACUTE}!\n";
-EXPECT
-$
-########
-# alias with bad hashref
-use charnames ":short", ":alias" => "e_ACUTE";
-"Here: \N{e_ACUTE}\N{a_ACUTE}!\n";
-EXPECT
-unicore/e_ACUTE_alias.pl cannot be used as alias file for charnames at
-########
-# alias with arrayref
-use charnames ":short", ":alias" => [ e_ACUTE => "LATIN:e WITH ACUTE" ];
-"Here: \N{e_ACUTE}!\n";
-EXPECT
-Only HASH reference supported as argument to :alias at
-########
-# alias with bad hashref
-use charnames ":short", ":alias" => { e_ACUTE => "LATIN:e WITH ACUTE", 
"a_ACUTE" };
-"Here: \N{e_ACUTE}\N{a_ACUTE}!\n";
-EXPECT
-Use of uninitialized value
-########
-# alias with hashref two aliases
-use charnames ":short", ":alias" => {
-    e_ACUTE => "LATIN:e WITH ACUTE",
-    a_ACUTE => "",
-    };
-"Here: \N{e_ACUTE}\N{a_ACUTE}!\n";
-EXPECT
-Unknown charname '' at
-########
-# alias with hashref two aliases
-use charnames ":short", ":alias" => {
-    e_ACUTE => "LATIN:e WITH ACUTE",
-    a_ACUTE => "LATIN:a WITH ACUTE",
-    };
-"Here: \N{e_ACUTE}\N{a_ACUTE}!\n";
-EXPECT
-$
-########
-# alias with hashref using mixed aliasses
-use charnames ":short", ":alias" => {
-    e_ACUTE => "LATIN:e WITH ACUTE",
-    a_ACUTE => "LATIN SMALL LETTER A WITH ACUT",
-    };
-"Here: \N{e_ACUTE}\N{a_ACUTE}!\n";
-EXPECT
-Unknown charname 'LATIN SMALL LETTER A WITH ACUT' at
-########
-# alias with hashref using mixed aliasses
-use charnames ":short", ":alias" => {
-    e_ACUTE => "LATIN:e WITH ACUTE",
-    a_ACUTE => "LATIN SMALL LETTER A WITH ACUTE",
-    };
-"Here: \N{e_ACUTE}\N{a_ACUTE}!\n";
-EXPECT
-Unknown charname 'LATIN SMALL LETTER A WITH ACUTE' at
-########
-# alias with hashref using mixed aliasses
-use charnames ":full", ":alias" => {
-    e_ACUTE => "LATIN:e WITH ACUTE",
-    a_ACUTE => "LATIN SMALL LETTER A WITH ACUTE",
-    };
-"Here: \N{e_ACUTE}\N{a_ACUTE}!\n";
-EXPECT
-Unknown charname 'LATIN:e WITH ACUTE' at
-########
-# alias with nonexisting file
-use charnames ":full", ":alias" => "xyzzy";
-"Here: \N{e_ACUTE}\N{a_ACUTE}!\n";
-EXPECT
-unicore/xyzzy_alias.pl cannot be used as alias file for charnames at
-########
-# alias with bad file name
-use charnames ":full", ":alias" => "xy 7-";
-"Here: \N{e_ACUTE}\N{a_ACUTE}!\n";
-EXPECT
-Charnames alias files can only have identifier characters at
-########
-# alias with non_absolute (existing) file name (which it should /not/ use)
-use charnames ":full", ":alias" => "perl";
-"Here: \N{e_ACUTE}\N{a_ACUTE}!\n";
-EXPECT
-unicore/perl_alias.pl cannot be used as alias file for charnames at
-########
-# alias with bad file
-use charnames ":full", ":alias" => "xyzzy";
-"Here: \N{e_ACUTE}\N{a_ACUTE}!\n";
-FILE
-#!perl
-0;
-EXPECT
-unicore/xyzzy_alias.pl did not return a \(valid\) list of alias pairs at
-########
-# alias with file with empty list
-use charnames ":full", ":alias" => "xyzzy";
-"Here: \N{e_ACUTE}\N{a_ACUTE}!\n";
-FILE
-#!perl
-();
-EXPECT
-Unknown charname 'e_ACUTE' at
-########
-# alias with file OK but file has :short aliasses
-use charnames ":full", ":alias" => "xyzzy";
-"Here: \N{e_ACUTE}\N{a_ACUTE}!\n";
-FILE
-#!perl
-(   e_ACUTE => "LATIN:e WITH ACUTE",
-    a_ACUTE => "LATIN:a WITH ACUTE",
-    );
-EXPECT
-Unknown charname 'LATIN:e WITH ACUTE' at
-########
-# alias with :short and file OK
-use charnames ":short", ":alias" => "xyzzy";
-"Here: \N{e_ACUTE}\N{a_ACUTE}!\n";
-FILE
-#!perl
-(   e_ACUTE => "LATIN:e WITH ACUTE",
-    a_ACUTE => "LATIN:a WITH ACUTE",
-    );
-EXPECT
-$
-########
-# alias with :short and file OK has :long aliasses
-use charnames ":short", ":alias" => "xyzzy";
-"Here: \N{e_ACUTE}\N{a_ACUTE}!\n";
-FILE
-#!perl
-(   e_ACUTE => "LATIN SMALL LETTER E WITH ACUTE",
-    a_ACUTE => "LATIN SMALL LETTER A WITH ACUTE",
-    );
-EXPECT
-Unknown charname 'LATIN SMALL LETTER E WITH ACUTE' at
-########
-# alias with file implicit :full but file has :short aliasses
-use charnames ":alias" => ":xyzzy";
-"Here: \N{e_ACUTE}\N{a_ACUTE}!\n";
-FILE
-#!perl
-(   e_ACUTE => "LATIN:e WITH ACUTE",
-    a_ACUTE => "LATIN:a WITH ACUTE",
-    );
-EXPECT
-Unknown charname 'LATIN:e WITH ACUTE' at
-########
-# alias with file implicit :full and file has :long aliasses
-use charnames ":alias" => ":xyzzy";
-"Here: \N{e_ACUTE}\N{a_ACUTE}!\n";
-FILE
-#!perl
-(   e_ACUTE => "LATIN SMALL LETTER E WITH ACUTE",
-    a_ACUTE => "LATIN SMALL LETTER A WITH ACUTE",
-    );
-EXPECT
-$
diff --git a/lib/overloading.t b/lib/overloading.t
index cedfc51..2e1fb40 100644
--- a/lib/overloading.t
+++ b/lib/overloading.t
@@ -1,14 +1,6 @@
 #./perl
 
-BEGIN {
-    chdir 't' if -d 't';
-    @INC = '../lib';
-}
-
-BEGIN {
-    require "./test.pl";
-    plan(tests => 35);
-}
+use Test::More tests => 35;
 
 use Scalar::Util qw(refaddr);
 
diff --git a/lib/strict.t b/lib/strict.t
index 93264ac..51e9b73 100644
--- a/lib/strict.t
+++ b/lib/strict.t
@@ -1,112 +1,23 @@
-#!./perl 
+#!./perl
 
 BEGIN {
     chdir 't' if -d 't';
     @INC = '../lib';
     $ENV{PERL5LIB} = '../lib';
-    require './test.pl';
 }
 
-$| = 1;
-
-my $Is_VMS = $^O eq 'VMS';
-my $Is_MSWin32 = $^O eq 'MSWin32';
-my $Is_NetWare = $^O eq 'NetWare';
-my $i = 0 ;
-
-my @prgs = () ;
-
-foreach (sort glob("lib/strict/*")) {
-
-    next if -d || /(~|\.orig|,v)$/;
-
-    open F, "<$_" or die "Cannot open $_: $!\n" ;
-    while (<F>) {
-       last if /^__END__/ ;
-    }
-
-    {
-        local $/ = undef;
-        @prgs = (@prgs, split "\n########\n", <F>) ;
-    }
-    close F or die "Could not close: $!" ;
-}
-
-undef $/;
-
-print "1.." . (@prgs + 4) . "\n";
- 
- 
-for (@prgs){
-    my $switch = "";
-    my @temps = () ;
-    if (s/^\s*-\w+//){
-        $switch = $&;
-    }
-    my($prog,$expected) = split(/\nEXPECT\n/, $_);
-    if ( $prog =~ /--FILE--/) {
-        my(@files) = split(/\n--FILE--\s*([^\s\n]*)\s*\n/, $prog) ;
-       shift @files ;
-       die "Internal error test $i didn't split into pairs, got " . 
-               scalar(@files) . "[" . join("%%%%", @files) ."]\n"
-           if @files % 2 ;
-       while (@files > 2) {
-           my $filename = shift @files ;
-           my $code = shift @files ;
-           push @temps, $filename ;
-           open F, ">$filename" or die "Cannot open $filename: $!\n" ;
-           print F $code ;
-           close F or die "Could not close: $!" ;
-       }
-       shift @files ;
-       $prog = shift @files ;
-    }
-    my $tmpfile = tempfile();
-    open TEST, ">$tmpfile" or die "Could not open: $!";
-    print TEST $prog,"\n";
-    close TEST or die "Could not close: $!";
-    my $results = $Is_MSWin32 ?
-                     `.\\perl -I../lib $switch $tmpfile 2>&1` :
-                  $^O eq 'NetWare' ?
-                     `perl -I../lib $switch $tmpfile 2>&1` :
-                  `$^X $switch $tmpfile 2>&1`;
-    my $status = $?;
-    $results =~ s/\n+$//;
-    # allow expected output to be written as if $prog is on STDIN
-    $results =~ s/tmp\d+[A-Z][A-Z]?/-/g;
-    $results =~ s/\n%[A-Z]+-[SIWEF]-.*$// if $Is_VMS;  # clip off DCL status 
msg
-    $expected =~ s/\n+$//;
-    my $prefix = ($results =~ s/^PREFIX\n//) ;
-    my $TODO = $prog =~ m/^#\s*TODO:/;
-    if ( $results =~ s/^SKIPPED\n//) {
-       print "$results\n" ;
-    }
-    elsif (($prefix and $results !~ /^\Q$expected/) or
-          (!$prefix and $results ne $expected)){
-        if (! $TODO) {
-            print STDERR "PROG: $switch\n$prog\n";
-            print STDERR "EXPECTED:\n$expected\n";
-            print STDERR "GOT:\n$results\n";
-        }
-        print "not ";
-    }
-    print "ok " . ++$i . ($TODO ? " # TODO" : "") . "\n";
-    foreach (@temps) 
-       { unlink $_ if $_ } 
-}
+our $pragma_name = "strict";
+our $local_tests = 4;
+require "../t/lib/common.pl";
 
 eval qq(use strict 'garbage');
-print +($@ =~ /^Unknown 'strict' tag\(s\) 'garbage'/)
-       ? "ok ".++$i."\n" : "not ok ".++$i."\t# $@";
+like($@, qr/^Unknown 'strict' tag\(s\) 'garbage'/);
 
 eval qq(no strict 'garbage');
-print +($@ =~ /^Unknown 'strict' tag\(s\) 'garbage'/)
-       ? "ok ".++$i."\n" : "not ok ".++$i."\t# $@";
+like($@, qr/^Unknown 'strict' tag\(s\) 'garbage'/);
 
 eval qq(use strict qw(foo bar));
-print +($@ =~ /^Unknown 'strict' tag\(s\) 'foo bar'/)
-       ? "ok ".++$i."\n" : "not ok ".++$i."\t# $@";
+like($@, qr/^Unknown 'strict' tag\(s\) 'foo bar'/);
 
 eval qq(no strict qw(foo bar));
-print +($@ =~ /^Unknown 'strict' tag\(s\) 'foo bar'/)
-       ? "ok ".++$i."\n" : "not ok ".++$i."\t# $@";
+like($@, qr/^Unknown 'strict' tag\(s\) 'foo bar'/);
diff --git a/t/lib/charnames/alias b/t/lib/charnames/alias
new file mode 100644
index 0000000..76a139f
--- /dev/null
+++ b/t/lib/charnames/alias
@@ -0,0 +1,244 @@
+Tests for use charnames with aliases.
+(With the exception of the first test, which otherwise would need its own file)
+__END__
+# unsupported pragma
+use charnames ":scoobydoo";
+"Here: \N{e_ACUTE}!\n";
+EXPECT
+OPTIONS regex
+unsupported special ':scoobydoo' in charnames at
+########
+# wrong type of alias (missing colon)
+use charnames "alias";
+"Here: \N{e_ACUTE}!\n";
+EXPECT
+OPTIONS regex
+Unknown charname 'e_ACUTE' at
+########
+# alias without an argument
+use charnames ":alias";
+"Here: \N{e_ACUTE}!\n";
+EXPECT
+OPTIONS regex
+:alias needs an argument in charnames at
+########
+# reversed sequence
+use charnames ":alias" => ":full";
+"Here: \N{e_ACUTE}!\n";
+EXPECT
+OPTIONS regex
+:alias cannot use existing pragma :full \(reversed order\?\) at
+########
+# alias with hashref but no :full
+use charnames ":alias" => { e_ACUTE => "LATIN SMALL LETTER E WITH ACUTE" };
+"Here: \N{e_ACUTE}!\n";
+EXPECT
+OPTIONS regex
+Unknown charname 'LATIN SMALL LETTER E WITH ACUTE' at
+########
+# alias with hashref but with :short
+use charnames ":short", ":alias" => { e_ACUTE => "LATIN SMALL LETTER E WITH 
ACUTE" };
+"Here: \N{e_ACUTE}!\n";
+EXPECT
+OPTIONS regex
+Unknown charname 'LATIN SMALL LETTER E WITH ACUTE' at
+########
+# alias with hashref to :full OK
+use charnames ":full", ":alias" => { e_ACUTE => "LATIN SMALL LETTER E WITH 
ACUTE" };
+"Here: \N{e_ACUTE}!\n";
+EXPECT
+OPTIONS regex
+$
+########
+# alias with hashref to :short but using :full
+use charnames ":full", ":alias" => { e_ACUTE => "LATIN:e WITH ACUTE" };
+"Here: \N{e_ACUTE}!\n";
+EXPECT
+OPTIONS regex
+Unknown charname 'LATIN:e WITH ACUTE' at
+########
+# alias with hashref to :short OK
+use charnames ":short", ":alias" => { e_ACUTE => "LATIN:e WITH ACUTE" };
+"Here: \N{e_ACUTE}!\n";
+EXPECT
+OPTIONS regex
+$
+########
+# alias with bad hashref
+use charnames ":short", ":alias" => "e_ACUTE";
+"Here: \N{e_ACUTE}\N{a_ACUTE}!\n";
+EXPECT
+OPTIONS regex
+unicore/e_ACUTE_alias.pl cannot be used as alias file for charnames at
+########
+# alias with arrayref
+use charnames ":short", ":alias" => [ e_ACUTE => "LATIN:e WITH ACUTE" ];
+"Here: \N{e_ACUTE}!\n";
+EXPECT
+OPTIONS regex
+Only HASH reference supported as argument to :alias at
+########
+# alias with bad hashref
+use charnames ":short", ":alias" => { e_ACUTE => "LATIN:e WITH ACUTE", 
"a_ACUTE" };
+"Here: \N{e_ACUTE}\N{a_ACUTE}!\n";
+EXPECT
+OPTIONS regex
+Use of uninitialized value
+########
+# alias with hashref two aliases
+use charnames ":short", ":alias" => {
+    e_ACUTE => "LATIN:e WITH ACUTE",
+    a_ACUTE => "",
+    };
+"Here: \N{e_ACUTE}\N{a_ACUTE}!\n";
+EXPECT
+OPTIONS regex
+Unknown charname '' at
+########
+# alias with hashref two aliases
+use charnames ":short", ":alias" => {
+    e_ACUTE => "LATIN:e WITH ACUTE",
+    a_ACUTE => "LATIN:a WITH ACUTE",
+    };
+"Here: \N{e_ACUTE}\N{a_ACUTE}!\n";
+EXPECT
+OPTIONS regex
+$
+########
+# alias with hashref using mixed aliasses
+use charnames ":short", ":alias" => {
+    e_ACUTE => "LATIN:e WITH ACUTE",
+    a_ACUTE => "LATIN SMALL LETTER A WITH ACUT",
+    };
+"Here: \N{e_ACUTE}\N{a_ACUTE}!\n";
+EXPECT
+OPTIONS regex
+Unknown charname 'LATIN SMALL LETTER A WITH ACUT' at
+########
+# alias with hashref using mixed aliasses
+use charnames ":short", ":alias" => {
+    e_ACUTE => "LATIN:e WITH ACUTE",
+    a_ACUTE => "LATIN SMALL LETTER A WITH ACUTE",
+    };
+"Here: \N{e_ACUTE}\N{a_ACUTE}!\n";
+EXPECT
+OPTIONS regex
+Unknown charname 'LATIN SMALL LETTER A WITH ACUTE' at
+########
+# alias with hashref using mixed aliasses
+use charnames ":full", ":alias" => {
+    e_ACUTE => "LATIN:e WITH ACUTE",
+    a_ACUTE => "LATIN SMALL LETTER A WITH ACUTE",
+    };
+"Here: \N{e_ACUTE}\N{a_ACUTE}!\n";
+EXPECT
+OPTIONS regex
+Unknown charname 'LATIN:e WITH ACUTE' at
+########
+# alias with nonexisting file
+use charnames ":full", ":alias" => "xyzzy";
+"Here: \N{e_ACUTE}\N{a_ACUTE}!\n";
+EXPECT
+OPTIONS regex
+unicore/xyzzy_alias.pl cannot be used as alias file for charnames at
+########
+# alias with bad file name
+use charnames ":full", ":alias" => "xy 7-";
+"Here: \N{e_ACUTE}\N{a_ACUTE}!\n";
+EXPECT
+OPTIONS regex
+Charnames alias files can only have identifier characters at
+########
+# alias with non_absolute (existing) file name (which it should /not/ use)
+use charnames ":full", ":alias" => "perl";
+"Here: \N{e_ACUTE}\N{a_ACUTE}!\n";
+EXPECT
+OPTIONS regex
+unicore/perl_alias.pl cannot be used as alias file for charnames at
+########
+# alias with bad file
+--FILE-- ../lib/unicore/xyzzy_alias.pl
+#!perl
+0;
+--FILE--
+use charnames ":full", ":alias" => "xyzzy";
+"Here: \N{e_ACUTE}\N{a_ACUTE}!\n";
+EXPECT
+OPTIONS regex
+unicore/xyzzy_alias.pl did not return a \(valid\) list of alias pairs at
+########
+# alias with file with empty list
+--FILE-- ../lib/unicore/xyzzy_alias.pl
+#!perl
+();
+--FILE--
+use charnames ":full", ":alias" => "xyzzy";
+"Here: \N{e_ACUTE}\N{a_ACUTE}!\n";
+EXPECT
+OPTIONS regex
+Unknown charname 'e_ACUTE' at
+########
+# alias with file OK but file has :short aliasses
+--FILE-- ../lib/unicore/xyzzy_alias.pl
+#!perl
+(   e_ACUTE => "LATIN:e WITH ACUTE",
+    a_ACUTE => "LATIN:a WITH ACUTE",
+    );
+--FILE--
+use charnames ":full", ":alias" => "xyzzy";
+"Here: \N{e_ACUTE}\N{a_ACUTE}!\n";
+EXPECT
+OPTIONS regex
+Unknown charname 'LATIN:e WITH ACUTE' at
+########
+# alias with :short and file OK
+--FILE-- ../lib/unicore/xyzzy_alias.pl
+#!perl
+(   e_ACUTE => "LATIN:e WITH ACUTE",
+    a_ACUTE => "LATIN:a WITH ACUTE",
+    );
+--FILE--
+use charnames ":short", ":alias" => "xyzzy";
+"Here: \N{e_ACUTE}\N{a_ACUTE}!\n";
+EXPECT
+OPTIONS regex
+$
+########
+# alias with :short and file OK has :long aliasses
+--FILE-- ../lib/unicore/xyzzy_alias.pl
+#!perl
+(   e_ACUTE => "LATIN SMALL LETTER E WITH ACUTE",
+    a_ACUTE => "LATIN SMALL LETTER A WITH ACUTE",
+    );
+--FILE--
+use charnames ":short", ":alias" => "xyzzy";
+"Here: \N{e_ACUTE}\N{a_ACUTE}!\n";
+EXPECT
+OPTIONS regex
+Unknown charname 'LATIN SMALL LETTER E WITH ACUTE' at
+########
+# alias with file implicit :full but file has :short aliasses
+--FILE-- ../lib/unicore/xyzzy_alias.pl
+#!perl
+(   e_ACUTE => "LATIN:e WITH ACUTE",
+    a_ACUTE => "LATIN:a WITH ACUTE",
+    );
+--FILE--
+use charnames ":alias" => ":xyzzy";
+"Here: \N{e_ACUTE}\N{a_ACUTE}!\n";
+EXPECT
+OPTIONS regex
+Unknown charname 'LATIN:e WITH ACUTE' at
+########
+# alias with file implicit :full and file has :long aliasses
+--FILE-- ../lib/unicore/xyzzy_alias.pl
+#!perl
+(   e_ACUTE => "LATIN SMALL LETTER E WITH ACUTE",
+    a_ACUTE => "LATIN SMALL LETTER A WITH ACUTE",
+    );
+--FILE--
+use charnames ":alias" => ":xyzzy";
+"Here: \N{e_ACUTE}\N{a_ACUTE}!\n";
+EXPECT
+OPTIONS regex
+$
diff --git a/t/lib/common.pl b/t/lib/common.pl
index 8680b73..20bfa4f 100644
--- a/t/lib/common.pl
+++ b/t/lib/common.pl
@@ -1,4 +1,4 @@
-# This code is used by lib/warnings.t and lib/feature.t
+# This code is used by lib/charnames.t, lib/feature.t, lib/strict.t and 
lib/warnings.t
 
 BEGIN {
     require './test.pl';
@@ -50,7 +50,7 @@ foreach my $file (@w_files) {
 
 undef $/;
 
-plan tests => (scalar(@prgs)-$files);
+plan tests => (scalar(@prgs)-$files + ($::local_tests || 0));
 
 for (@prgs){
     unless (/\n/)
@@ -90,10 +90,10 @@ for (@prgs){
            my $filename = shift @files ;
            my $code = shift @files ;
            push @temps, $filename ;
-           if ($filename =~ m#(.*)/#) {
+           if ($filename =~ m#(.*)/# && $filename !~ m#^\.\./#) {
                 mkpath($1);
                 push(@temp_path, $1);
-           }
+           }
            open F, ">$filename" or die "Cannot open $filename: $!\n" ;
            print F $code ;
            close F or die "Cannot close $filename: $!\n";

--
Perl5 Master Repository

Reply via email to