summaryrefslogtreecommitdiff
path: root/t/lib
diff options
context:
space:
mode:
authorNicholas Clark <nick@ccl4.org>2010-07-01 12:08:33 +0100
committerNicholas Clark <nick@ccl4.org>2010-07-01 12:08:50 +0100
commitea065648c797746c16c81f51328eb4e0b0feeb7b (patch)
treec70d07d42dcfb7c87b423c3596184f4456f80350 /t/lib
parent619d9e9c6b00e1f508864cfeb08ecc3ba0aa6237 (diff)
downloadperl-ea065648c797746c16c81f51328eb4e0b0feeb7b.tar.gz
Convert charnames.t to use t/lib/common.pl
Diffstat (limited to 't/lib')
-rw-r--r--t/lib/charnames/alias244
-rw-r--r--t/lib/common.pl6
2 files changed, 247 insertions, 3 deletions
diff --git a/t/lib/charnames/alias b/t/lib/charnames/alias
new file mode 100644
index 0000000000..76a139fef2
--- /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 9167323494..20bfa4f320 100644
--- a/t/lib/common.pl
+++ b/t/lib/common.pl
@@ -1,4 +1,4 @@
-# This code is used by lib/feature.t, lib/strict.t and lib/warnings.t
+# This code is used by lib/charnames.t, lib/feature.t, lib/strict.t and lib/warnings.t
BEGIN {
require './test.pl';
@@ -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";