summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--MANIFEST11
-rw-r--r--charclass_invlists.h2
-rw-r--r--lib/unicore/mktables60
-rw-r--r--regcharclass.h2
-rw-r--r--t/re/uniprops01.t (renamed from t/re/uniprops.t)1
-rw-r--r--t/re/uniprops02.t40
-rw-r--r--t/re/uniprops03.t40
-rw-r--r--t/re/uniprops04.t40
-rw-r--r--t/re/uniprops05.t40
-rw-r--r--t/re/uniprops06.t40
-rw-r--r--t/re/uniprops07.t40
-rw-r--r--t/re/uniprops08.t40
-rw-r--r--t/re/uniprops09.t40
-rw-r--r--t/re/uniprops10.t40
14 files changed, 415 insertions, 21 deletions
diff --git a/MANIFEST b/MANIFEST
index 0a895d76d7..710a81b60b 100644
--- a/MANIFEST
+++ b/MANIFEST
@@ -5713,7 +5713,16 @@ t/re/subst.t See if substitution works
t/re/subst_amp.t See if $&-related substitution works
t/re/subst_wamp.t See if substitution works with $& present
t/re/substT.t See if substitution works with -T
-t/re/uniprops.t Test unicode \p{} regex constructs
+t/re/uniprops01.t Test unicode \p{} regex constructs
+t/re/uniprops02.t Test unicode \p{} regex constructs
+t/re/uniprops03.t Test unicode \p{} regex constructs
+t/re/uniprops04.t Test unicode \p{} regex constructs
+t/re/uniprops05.t Test unicode \p{} regex constructs
+t/re/uniprops06.t Test unicode \p{} regex constructs
+t/re/uniprops07.t Test unicode \p{} regex constructs
+t/re/uniprops08.t Test unicode \p{} regex constructs
+t/re/uniprops09.t Test unicode \p{} regex constructs
+t/re/uniprops10.t Test unicode \p{} regex constructs
t/README Instructions for regression tests
t/run/cloexec.t Test close-on-exec.
t/run/dtrace.pl For dtrace.t
diff --git a/charclass_invlists.h b/charclass_invlists.h
index 390e8a0158..1613dda223 100644
--- a/charclass_invlists.h
+++ b/charclass_invlists.h
@@ -91558,7 +91558,7 @@ static const U8 WB_table[24][24] = {
* 37f6186253da9824bdb27f4ad867bfe8c25d4dc6bdb2f05585e40a034675a348 lib/unicore/extracted/DLineBreak.txt
* ef24061b5a5dc93d7e90c2e34530ec757180ee75d872cba65ffc946e52624ae8 lib/unicore/extracted/DNumType.txt
* a197371fec9a1b517058b440841f60f9378d81682084eef8db22a88cb2f96e90 lib/unicore/extracted/DNumValues.txt
- * 5c7eb94310e2aaa15702fd6bed24ff0e7ab5448f9a8231d8c49ca96c9e941089 lib/unicore/mktables
+ * 421444fcd83fcdfecffa743c8888c3a1a8e88bcde472a80fca57d199ec5db10a lib/unicore/mktables
* cdecb300baad839a6f62791229f551a4fa33f3cbdca08e378dc976466354e778 lib/unicore/version
* 913d2f93f3cb6cdf1664db888bf840bc4eb074eef824e082fceda24a9445e60c regen/charset_translations.pl
* 11011bc761487f5a63c8135e67248394d4cdff6f8f204a41cdfbdc8131e79406 regen/mk_invlists.pl
diff --git a/lib/unicore/mktables b/lib/unicore/mktables
index d81fc63b08..e93cb4db17 100644
--- a/lib/unicore/mktables
+++ b/lib/unicore/mktables
@@ -18620,6 +18620,21 @@ sub make_property_test_script() {
# or multiple lines. main::write doesn't count the lines.
my @output;
+ push @output, <<'EOF_CODE';
+Error('\p{Script=InGreek}'); # Bug #69018
+Test_GCB("1100 $nobreak 1161"); # Bug #70940
+Expect(0, 0x2028, '\p{Print}', ""); # Bug # 71722
+Expect(0, 0x2029, '\p{Print}', ""); # Bug # 71722
+Expect(1, 0xFF10, '\p{XDigit}', ""); # Bug # 71726
+
+# Make sure this gets tested; it was not part of the official test suite at
+# the time this was added. Note that this is as it would appear in the
+# official suite, and gets modified to check for the perl tailoring by
+# Test_WB()
+Test_WB("$breakable 0020 $breakable 0020 $breakable 0308 $breakable");
+Test_LB("$nobreak 200B $nobreak 0020 $nobreak 0020 $breakable 2060 $breakable");
+EOF_CODE
+
# Sort these so get results in same order on different runs of this
# program
foreach my $property (sort { $a->has_dependency <=> $b->has_dependency
@@ -18808,17 +18823,38 @@ sub make_property_test_script() {
? "\nsub TODO_FAILING_BREAKS { 1 }\n"
: "\nsub TODO_FAILING_BREAKS { 0 }\n";
+
+ push @output,
+ (map {"Test_GCB('$_');\n"} @backslash_X_tests),
+ (map {"Test_LB('$_');\n"} @LB_tests),
+ (map {"Test_SB('$_');\n"} @SB_tests),
+ (map {"Test_WB('$_');\n"} @WB_tests);
+
+ @output= map {
+ map s/^/ /mgr,
+ map "$_;\n",
+ split /;\n/, $_
+ } @output;
+
+ my @output_chunked;
+ my $chunk_count=0;
+ my $chunk_size= int(@output/10)+1;
+ while (@output) {
+ $chunk_count++;
+ my @chunk= splice @output, 0, $chunk_size;
+ push @output_chunked,
+ "if (!\$::TESTCHUNK or \$::TESTCHUNK == $chunk_count){\n",
+ @chunk,
+ "}\n";
+ }
+
&write($t_path,
0, # Not utf8;
[$HEADER,
$TODO_FAILING_BREAKS,
<DATA>,
- @output,
- (map {"Test_GCB('$_');\n"} @backslash_X_tests),
- (map {"Test_LB('$_');\n"} @LB_tests),
- (map {"Test_SB('$_');\n"} @SB_tests),
- (map {"Test_WB('$_');\n"} @WB_tests),
- "Finished();\n"
+ @output_chunked,
+ "Finished();\n",
]);
return;
@@ -20152,15 +20188,3 @@ sub Finished() {
exit($Fails ? -1 : 0);
}
-Error('\p{Script=InGreek}'); # Bug #69018
-Test_GCB("1100 $nobreak 1161"); # Bug #70940
-Expect(0, 0x2028, '\p{Print}', ""); # Bug # 71722
-Expect(0, 0x2029, '\p{Print}', ""); # Bug # 71722
-Expect(1, 0xFF10, '\p{XDigit}', ""); # Bug # 71726
-
-# Make sure this gets tested; it was not part of the official test suite at
-# the time this was added. Note that this is as it would appear in the
-# official suite, and gets modified to check for the perl tailoring by
-# Test_WB()
-Test_WB("$breakable 0020 $breakable 0020 $breakable 0308 $breakable");
-Test_LB("$nobreak 200B $nobreak 0020 $nobreak 0020 $breakable 2060 $breakable");
diff --git a/regcharclass.h b/regcharclass.h
index 6f5d14b72c..09857a7fb7 100644
--- a/regcharclass.h
+++ b/regcharclass.h
@@ -1873,7 +1873,7 @@
* 37f6186253da9824bdb27f4ad867bfe8c25d4dc6bdb2f05585e40a034675a348 lib/unicore/extracted/DLineBreak.txt
* ef24061b5a5dc93d7e90c2e34530ec757180ee75d872cba65ffc946e52624ae8 lib/unicore/extracted/DNumType.txt
* a197371fec9a1b517058b440841f60f9378d81682084eef8db22a88cb2f96e90 lib/unicore/extracted/DNumValues.txt
- * 5c7eb94310e2aaa15702fd6bed24ff0e7ab5448f9a8231d8c49ca96c9e941089 lib/unicore/mktables
+ * 421444fcd83fcdfecffa743c8888c3a1a8e88bcde472a80fca57d199ec5db10a lib/unicore/mktables
* cdecb300baad839a6f62791229f551a4fa33f3cbdca08e378dc976466354e778 lib/unicore/version
* 913d2f93f3cb6cdf1664db888bf840bc4eb074eef824e082fceda24a9445e60c regen/charset_translations.pl
* 66e20f857451956f9fc7ad7432de972e84fb857885009838878bcf6f91ffbeef regen/regcharclass.pl
diff --git a/t/re/uniprops.t b/t/re/uniprops01.t
index 5214c41045..4b4231c7c6 100644
--- a/t/re/uniprops.t
+++ b/t/re/uniprops01.t
@@ -23,6 +23,7 @@ if ($Config::Config{ccflags} =~ /(?:^|\s)-DPERL_DEBUG_READONLY_COW\b/) {
exit;
}
+$::TESTCHUNK=1;
do '../lib/unicore/TestProp.pl';
# Since TestProp.pl explicitly exits, we will only get here if it
diff --git a/t/re/uniprops02.t b/t/re/uniprops02.t
new file mode 100644
index 0000000000..8895ae9ae3
--- /dev/null
+++ b/t/re/uniprops02.t
@@ -0,0 +1,40 @@
+use strict;
+use warnings;
+no warnings 'once';
+
+if ($^O eq 'dec_osf') {
+ print "1..0 # $^O cannot handle this test\n";
+ exit(0);
+}
+
+# TODO: it would be good to have watchdog(5 * 60) in here
+# for slow machines, but unfortunately we cannot trivially
+# use test.pl because the TestProp.pl avoids using that.
+
+# This is a wrapper for a generated file. Assumes being run from 't'
+# directory.
+
+# It is skipped by default under PERL_DEBUG_READONLY_COW, but you can run
+# it directly via: cd t; ./perl -I../lib ../lib/unicore/TestProp.pl
+
+require Config;
+if ($Config::Config{ccflags} =~ /(?:^|\s)-DPERL_DEBUG_READONLY_COW\b/) {
+ print "1..0 # Skip PERL_DEBUG_READONLY_COW\n";
+ exit;
+}
+
+$::TESTCHUNK=2;
+do '../lib/unicore/TestProp.pl';
+
+# Since TestProp.pl explicitly exits, we will only get here if it
+# could not load.
+if (defined &DynaLoader::boot_DynaLoader # not miniperl
+ || eval 'require "unicore/Heavy.pl"' # or tables are built
+) {
+ die "Could not run lib/unicore/TestProp.pl: ", $@||$!;
+}
+else {
+ print "1..0 # Skip Unicode tables not built yet\n";
+}
+
+0
diff --git a/t/re/uniprops03.t b/t/re/uniprops03.t
new file mode 100644
index 0000000000..c866407de7
--- /dev/null
+++ b/t/re/uniprops03.t
@@ -0,0 +1,40 @@
+use strict;
+use warnings;
+no warnings 'once';
+
+if ($^O eq 'dec_osf') {
+ print "1..0 # $^O cannot handle this test\n";
+ exit(0);
+}
+
+# TODO: it would be good to have watchdog(5 * 60) in here
+# for slow machines, but unfortunately we cannot trivially
+# use test.pl because the TestProp.pl avoids using that.
+
+# This is a wrapper for a generated file. Assumes being run from 't'
+# directory.
+
+# It is skipped by default under PERL_DEBUG_READONLY_COW, but you can run
+# it directly via: cd t; ./perl -I../lib ../lib/unicore/TestProp.pl
+
+require Config;
+if ($Config::Config{ccflags} =~ /(?:^|\s)-DPERL_DEBUG_READONLY_COW\b/) {
+ print "1..0 # Skip PERL_DEBUG_READONLY_COW\n";
+ exit;
+}
+
+$::TESTCHUNK=3;
+do '../lib/unicore/TestProp.pl';
+
+# Since TestProp.pl explicitly exits, we will only get here if it
+# could not load.
+if (defined &DynaLoader::boot_DynaLoader # not miniperl
+ || eval 'require "unicore/Heavy.pl"' # or tables are built
+) {
+ die "Could not run lib/unicore/TestProp.pl: ", $@||$!;
+}
+else {
+ print "1..0 # Skip Unicode tables not built yet\n";
+}
+
+0
diff --git a/t/re/uniprops04.t b/t/re/uniprops04.t
new file mode 100644
index 0000000000..7689df0e4d
--- /dev/null
+++ b/t/re/uniprops04.t
@@ -0,0 +1,40 @@
+use strict;
+use warnings;
+no warnings 'once';
+
+if ($^O eq 'dec_osf') {
+ print "1..0 # $^O cannot handle this test\n";
+ exit(0);
+}
+
+# TODO: it would be good to have watchdog(5 * 60) in here
+# for slow machines, but unfortunately we cannot trivially
+# use test.pl because the TestProp.pl avoids using that.
+
+# This is a wrapper for a generated file. Assumes being run from 't'
+# directory.
+
+# It is skipped by default under PERL_DEBUG_READONLY_COW, but you can run
+# it directly via: cd t; ./perl -I../lib ../lib/unicore/TestProp.pl
+
+require Config;
+if ($Config::Config{ccflags} =~ /(?:^|\s)-DPERL_DEBUG_READONLY_COW\b/) {
+ print "1..0 # Skip PERL_DEBUG_READONLY_COW\n";
+ exit;
+}
+
+$::TESTCHUNK=4;
+do '../lib/unicore/TestProp.pl';
+
+# Since TestProp.pl explicitly exits, we will only get here if it
+# could not load.
+if (defined &DynaLoader::boot_DynaLoader # not miniperl
+ || eval 'require "unicore/Heavy.pl"' # or tables are built
+) {
+ die "Could not run lib/unicore/TestProp.pl: ", $@||$!;
+}
+else {
+ print "1..0 # Skip Unicode tables not built yet\n";
+}
+
+0
diff --git a/t/re/uniprops05.t b/t/re/uniprops05.t
new file mode 100644
index 0000000000..0573377547
--- /dev/null
+++ b/t/re/uniprops05.t
@@ -0,0 +1,40 @@
+use strict;
+use warnings;
+no warnings 'once';
+
+if ($^O eq 'dec_osf') {
+ print "1..0 # $^O cannot handle this test\n";
+ exit(0);
+}
+
+# TODO: it would be good to have watchdog(5 * 60) in here
+# for slow machines, but unfortunately we cannot trivially
+# use test.pl because the TestProp.pl avoids using that.
+
+# This is a wrapper for a generated file. Assumes being run from 't'
+# directory.
+
+# It is skipped by default under PERL_DEBUG_READONLY_COW, but you can run
+# it directly via: cd t; ./perl -I../lib ../lib/unicore/TestProp.pl
+
+require Config;
+if ($Config::Config{ccflags} =~ /(?:^|\s)-DPERL_DEBUG_READONLY_COW\b/) {
+ print "1..0 # Skip PERL_DEBUG_READONLY_COW\n";
+ exit;
+}
+
+$::TESTCHUNK=5;
+do '../lib/unicore/TestProp.pl';
+
+# Since TestProp.pl explicitly exits, we will only get here if it
+# could not load.
+if (defined &DynaLoader::boot_DynaLoader # not miniperl
+ || eval 'require "unicore/Heavy.pl"' # or tables are built
+) {
+ die "Could not run lib/unicore/TestProp.pl: ", $@||$!;
+}
+else {
+ print "1..0 # Skip Unicode tables not built yet\n";
+}
+
+0
diff --git a/t/re/uniprops06.t b/t/re/uniprops06.t
new file mode 100644
index 0000000000..74e6c45d4a
--- /dev/null
+++ b/t/re/uniprops06.t
@@ -0,0 +1,40 @@
+use strict;
+use warnings;
+no warnings 'once';
+
+if ($^O eq 'dec_osf') {
+ print "1..0 # $^O cannot handle this test\n";
+ exit(0);
+}
+
+# TODO: it would be good to have watchdog(5 * 60) in here
+# for slow machines, but unfortunately we cannot trivially
+# use test.pl because the TestProp.pl avoids using that.
+
+# This is a wrapper for a generated file. Assumes being run from 't'
+# directory.
+
+# It is skipped by default under PERL_DEBUG_READONLY_COW, but you can run
+# it directly via: cd t; ./perl -I../lib ../lib/unicore/TestProp.pl
+
+require Config;
+if ($Config::Config{ccflags} =~ /(?:^|\s)-DPERL_DEBUG_READONLY_COW\b/) {
+ print "1..0 # Skip PERL_DEBUG_READONLY_COW\n";
+ exit;
+}
+
+$::TESTCHUNK=6;
+do '../lib/unicore/TestProp.pl';
+
+# Since TestProp.pl explicitly exits, we will only get here if it
+# could not load.
+if (defined &DynaLoader::boot_DynaLoader # not miniperl
+ || eval 'require "unicore/Heavy.pl"' # or tables are built
+) {
+ die "Could not run lib/unicore/TestProp.pl: ", $@||$!;
+}
+else {
+ print "1..0 # Skip Unicode tables not built yet\n";
+}
+
+0
diff --git a/t/re/uniprops07.t b/t/re/uniprops07.t
new file mode 100644
index 0000000000..fe6795498e
--- /dev/null
+++ b/t/re/uniprops07.t
@@ -0,0 +1,40 @@
+use strict;
+use warnings;
+no warnings 'once';
+
+if ($^O eq 'dec_osf') {
+ print "1..0 # $^O cannot handle this test\n";
+ exit(0);
+}
+
+# TODO: it would be good to have watchdog(5 * 60) in here
+# for slow machines, but unfortunately we cannot trivially
+# use test.pl because the TestProp.pl avoids using that.
+
+# This is a wrapper for a generated file. Assumes being run from 't'
+# directory.
+
+# It is skipped by default under PERL_DEBUG_READONLY_COW, but you can run
+# it directly via: cd t; ./perl -I../lib ../lib/unicore/TestProp.pl
+
+require Config;
+if ($Config::Config{ccflags} =~ /(?:^|\s)-DPERL_DEBUG_READONLY_COW\b/) {
+ print "1..0 # Skip PERL_DEBUG_READONLY_COW\n";
+ exit;
+}
+
+$::TESTCHUNK=7;
+do '../lib/unicore/TestProp.pl';
+
+# Since TestProp.pl explicitly exits, we will only get here if it
+# could not load.
+if (defined &DynaLoader::boot_DynaLoader # not miniperl
+ || eval 'require "unicore/Heavy.pl"' # or tables are built
+) {
+ die "Could not run lib/unicore/TestProp.pl: ", $@||$!;
+}
+else {
+ print "1..0 # Skip Unicode tables not built yet\n";
+}
+
+0
diff --git a/t/re/uniprops08.t b/t/re/uniprops08.t
new file mode 100644
index 0000000000..a9b412a903
--- /dev/null
+++ b/t/re/uniprops08.t
@@ -0,0 +1,40 @@
+use strict;
+use warnings;
+no warnings 'once';
+
+if ($^O eq 'dec_osf') {
+ print "1..0 # $^O cannot handle this test\n";
+ exit(0);
+}
+
+# TODO: it would be good to have watchdog(5 * 60) in here
+# for slow machines, but unfortunately we cannot trivially
+# use test.pl because the TestProp.pl avoids using that.
+
+# This is a wrapper for a generated file. Assumes being run from 't'
+# directory.
+
+# It is skipped by default under PERL_DEBUG_READONLY_COW, but you can run
+# it directly via: cd t; ./perl -I../lib ../lib/unicore/TestProp.pl
+
+require Config;
+if ($Config::Config{ccflags} =~ /(?:^|\s)-DPERL_DEBUG_READONLY_COW\b/) {
+ print "1..0 # Skip PERL_DEBUG_READONLY_COW\n";
+ exit;
+}
+
+$::TESTCHUNK=8;
+do '../lib/unicore/TestProp.pl';
+
+# Since TestProp.pl explicitly exits, we will only get here if it
+# could not load.
+if (defined &DynaLoader::boot_DynaLoader # not miniperl
+ || eval 'require "unicore/Heavy.pl"' # or tables are built
+) {
+ die "Could not run lib/unicore/TestProp.pl: ", $@||$!;
+}
+else {
+ print "1..0 # Skip Unicode tables not built yet\n";
+}
+
+0
diff --git a/t/re/uniprops09.t b/t/re/uniprops09.t
new file mode 100644
index 0000000000..c9b469b439
--- /dev/null
+++ b/t/re/uniprops09.t
@@ -0,0 +1,40 @@
+use strict;
+use warnings;
+no warnings 'once';
+
+if ($^O eq 'dec_osf') {
+ print "1..0 # $^O cannot handle this test\n";
+ exit(0);
+}
+
+# TODO: it would be good to have watchdog(5 * 60) in here
+# for slow machines, but unfortunately we cannot trivially
+# use test.pl because the TestProp.pl avoids using that.
+
+# This is a wrapper for a generated file. Assumes being run from 't'
+# directory.
+
+# It is skipped by default under PERL_DEBUG_READONLY_COW, but you can run
+# it directly via: cd t; ./perl -I../lib ../lib/unicore/TestProp.pl
+
+require Config;
+if ($Config::Config{ccflags} =~ /(?:^|\s)-DPERL_DEBUG_READONLY_COW\b/) {
+ print "1..0 # Skip PERL_DEBUG_READONLY_COW\n";
+ exit;
+}
+
+$::TESTCHUNK=9;
+do '../lib/unicore/TestProp.pl';
+
+# Since TestProp.pl explicitly exits, we will only get here if it
+# could not load.
+if (defined &DynaLoader::boot_DynaLoader # not miniperl
+ || eval 'require "unicore/Heavy.pl"' # or tables are built
+) {
+ die "Could not run lib/unicore/TestProp.pl: ", $@||$!;
+}
+else {
+ print "1..0 # Skip Unicode tables not built yet\n";
+}
+
+0
diff --git a/t/re/uniprops10.t b/t/re/uniprops10.t
new file mode 100644
index 0000000000..0d0e1edd22
--- /dev/null
+++ b/t/re/uniprops10.t
@@ -0,0 +1,40 @@
+use strict;
+use warnings;
+no warnings 'once';
+
+if ($^O eq 'dec_osf') {
+ print "1..0 # $^O cannot handle this test\n";
+ exit(0);
+}
+
+# TODO: it would be good to have watchdog(5 * 60) in here
+# for slow machines, but unfortunately we cannot trivially
+# use test.pl because the TestProp.pl avoids using that.
+
+# This is a wrapper for a generated file. Assumes being run from 't'
+# directory.
+
+# It is skipped by default under PERL_DEBUG_READONLY_COW, but you can run
+# it directly via: cd t; ./perl -I../lib ../lib/unicore/TestProp.pl
+
+require Config;
+if ($Config::Config{ccflags} =~ /(?:^|\s)-DPERL_DEBUG_READONLY_COW\b/) {
+ print "1..0 # Skip PERL_DEBUG_READONLY_COW\n";
+ exit;
+}
+
+$::TESTCHUNK=10;
+do '../lib/unicore/TestProp.pl';
+
+# Since TestProp.pl explicitly exits, we will only get here if it
+# could not load.
+if (defined &DynaLoader::boot_DynaLoader # not miniperl
+ || eval 'require "unicore/Heavy.pl"' # or tables are built
+) {
+ die "Could not run lib/unicore/TestProp.pl: ", $@||$!;
+}
+else {
+ print "1..0 # Skip Unicode tables not built yet\n";
+}
+
+0