diff --git a/MANIFEST b/MANIFEST index 533f5a6a1c7a..4c2530274c11 100644 --- a/MANIFEST +++ b/MANIFEST @@ -6328,6 +6328,20 @@ 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/re/uniprops11.t Test unicode \p{} regex constructs +t/re/uniprops12.t Test unicode \p{} regex constructs +t/re/uniprops13.t Test unicode \p{} regex constructs +t/re/uniprops14.t Test unicode \p{} regex constructs +t/re/uniprops15.t Test unicode \p{} regex constructs +t/re/uniprops16.t Test unicode \p{} regex constructs +t/re/uniprops17.t Test unicode \p{} regex constructs +t/re/uniprops18.t Test unicode \p{} regex constructs +t/re/uniprops19.t Test unicode \p{} regex constructs +t/re/uniprops20.t Test unicode \p{} regex constructs +t/re/uniprops21.t Test unicode \p{} regex constructs +t/re/uniprops22.t Test unicode \p{} regex constructs +t/re/uniprops23.t Test unicode \p{} regex constructs +t/re/uniprops24.t Test unicode \p{} regex constructs t/re/user_prop_race_thr.t Test races in user-defined \p{} under threads t/README Instructions for regression tests t/run/cloexec.t Test close-on-exec. diff --git a/charclass_invlists.h b/charclass_invlists.h index 209681ac1aa7..756629c43e89 100644 --- a/charclass_invlists.h +++ b/charclass_invlists.h @@ -436078,7 +436078,7 @@ static const U8 WB_table[23][23] = { * 3f4f32ed2a577344a508114527e721d7a8b633d32f38945d47fe0c743650c585 lib/unicore/extracted/DLineBreak.txt * 710abf2d581ac9c57f244c0834f9d9969d9781e0396adccd330eaae658ac7d6b lib/unicore/extracted/DNumType.txt * 6bd30f385f3baf3ab5d5308c111a81de87bea5f494ba0ba69e8ab45263b8c34d lib/unicore/extracted/DNumValues.txt - * f7265069b38ba9a0675a18600e241b1ec6fc8c55fd806fe4c13bc5d8cb0dc508 lib/unicore/mktables + * edc16ae96214bb0827922d8788b06fad7b664c1b7add30006076d1ae0372623b lib/unicore/mktables * 55d90fdc3f902e5c0b16b3378f9eaa36e970a1c09723c33de7d47d0370044012 lib/unicore/version * 0a6b5ab33bb1026531f816efe81aea1a8ffcd34a27cbea37dd6a70a63d73c844 regen/charset_translations.pl * c7ff8e0d207d3538c7feb4a1a152b159e5e902d20293b303569ea8323e84633e regen/mk_PL_charclass.pl diff --git a/lib/unicore/mktables b/lib/unicore/mktables index ffa38c31756c..a1e9282bc215 100644 --- a/lib/unicore/mktables +++ b/lib/unicore/mktables @@ -19083,7 +19083,7 @@ EOF_CODE # Cause there to be 'if' statements to only execute a portion of this # long-running test each time, so that we can have a bunch of .t's running # in parallel - my $chunks = 10 # Number of test files + my $chunks = 24 # Number of test files - 1 # For GCB & SB - 1 # For WB - 4; # LB split into this many files diff --git a/lib/unicore/uni_keywords.pl b/lib/unicore/uni_keywords.pl index 4a9a72d043a8..47a84a84486e 100644 --- a/lib/unicore/uni_keywords.pl +++ b/lib/unicore/uni_keywords.pl @@ -1331,7 +1331,7 @@ # 3f4f32ed2a577344a508114527e721d7a8b633d32f38945d47fe0c743650c585 lib/unicore/extracted/DLineBreak.txt # 710abf2d581ac9c57f244c0834f9d9969d9781e0396adccd330eaae658ac7d6b lib/unicore/extracted/DNumType.txt # 6bd30f385f3baf3ab5d5308c111a81de87bea5f494ba0ba69e8ab45263b8c34d lib/unicore/extracted/DNumValues.txt -# f7265069b38ba9a0675a18600e241b1ec6fc8c55fd806fe4c13bc5d8cb0dc508 lib/unicore/mktables +# edc16ae96214bb0827922d8788b06fad7b664c1b7add30006076d1ae0372623b lib/unicore/mktables # 55d90fdc3f902e5c0b16b3378f9eaa36e970a1c09723c33de7d47d0370044012 lib/unicore/version # 0a6b5ab33bb1026531f816efe81aea1a8ffcd34a27cbea37dd6a70a63d73c844 regen/charset_translations.pl # c7ff8e0d207d3538c7feb4a1a152b159e5e902d20293b303569ea8323e84633e regen/mk_PL_charclass.pl diff --git a/regcharclass.h b/regcharclass.h index 4d39ab2417b6..f5c147eddbd2 100644 --- a/regcharclass.h +++ b/regcharclass.h @@ -3850,7 +3850,7 @@ * 3f4f32ed2a577344a508114527e721d7a8b633d32f38945d47fe0c743650c585 lib/unicore/extracted/DLineBreak.txt * 710abf2d581ac9c57f244c0834f9d9969d9781e0396adccd330eaae658ac7d6b lib/unicore/extracted/DNumType.txt * 6bd30f385f3baf3ab5d5308c111a81de87bea5f494ba0ba69e8ab45263b8c34d lib/unicore/extracted/DNumValues.txt - * f7265069b38ba9a0675a18600e241b1ec6fc8c55fd806fe4c13bc5d8cb0dc508 lib/unicore/mktables + * edc16ae96214bb0827922d8788b06fad7b664c1b7add30006076d1ae0372623b lib/unicore/mktables * 55d90fdc3f902e5c0b16b3378f9eaa36e970a1c09723c33de7d47d0370044012 lib/unicore/version * 0a6b5ab33bb1026531f816efe81aea1a8ffcd34a27cbea37dd6a70a63d73c844 regen/charset_translations.pl * acc94e4afc339fe2cf2ae74d6e1cbcf2c396328d78e56236ad314eadbfc84125 regen/regcharclass.pl diff --git a/t/re/uniprops11.t b/t/re/uniprops11.t new file mode 100644 index 000000000000..0b78d358b1b7 --- /dev/null +++ b/t/re/uniprops11.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/UCD.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/uniprops12.t b/t/re/uniprops12.t new file mode 100644 index 000000000000..0b78d358b1b7 --- /dev/null +++ b/t/re/uniprops12.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/UCD.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/uniprops13.t b/t/re/uniprops13.t new file mode 100644 index 000000000000..0b78d358b1b7 --- /dev/null +++ b/t/re/uniprops13.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/UCD.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/uniprops14.t b/t/re/uniprops14.t new file mode 100644 index 000000000000..0b78d358b1b7 --- /dev/null +++ b/t/re/uniprops14.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/UCD.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/uniprops15.t b/t/re/uniprops15.t new file mode 100644 index 000000000000..0b78d358b1b7 --- /dev/null +++ b/t/re/uniprops15.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/UCD.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/uniprops16.t b/t/re/uniprops16.t new file mode 100644 index 000000000000..0b78d358b1b7 --- /dev/null +++ b/t/re/uniprops16.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/UCD.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/uniprops17.t b/t/re/uniprops17.t new file mode 100644 index 000000000000..0b78d358b1b7 --- /dev/null +++ b/t/re/uniprops17.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/UCD.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/uniprops18.t b/t/re/uniprops18.t new file mode 100644 index 000000000000..0b78d358b1b7 --- /dev/null +++ b/t/re/uniprops18.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/UCD.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/uniprops19.t b/t/re/uniprops19.t new file mode 100644 index 000000000000..0b78d358b1b7 --- /dev/null +++ b/t/re/uniprops19.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/UCD.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/uniprops20.t b/t/re/uniprops20.t new file mode 100644 index 000000000000..0b78d358b1b7 --- /dev/null +++ b/t/re/uniprops20.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/UCD.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/uniprops21.t b/t/re/uniprops21.t new file mode 100644 index 000000000000..0b78d358b1b7 --- /dev/null +++ b/t/re/uniprops21.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/UCD.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/uniprops22.t b/t/re/uniprops22.t new file mode 100644 index 000000000000..0b78d358b1b7 --- /dev/null +++ b/t/re/uniprops22.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/UCD.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/uniprops23.t b/t/re/uniprops23.t new file mode 100644 index 000000000000..0b78d358b1b7 --- /dev/null +++ b/t/re/uniprops23.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/UCD.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/uniprops24.t b/t/re/uniprops24.t new file mode 100644 index 000000000000..0b78d358b1b7 --- /dev/null +++ b/t/re/uniprops24.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/UCD.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/uni_keywords.h b/uni_keywords.h index 91ae731962fe..9b6634523d8e 100644 --- a/uni_keywords.h +++ b/uni_keywords.h @@ -7756,7 +7756,7 @@ match_uniprop( const unsigned char * const key, const U16 key_len ) { * 3f4f32ed2a577344a508114527e721d7a8b633d32f38945d47fe0c743650c585 lib/unicore/extracted/DLineBreak.txt * 710abf2d581ac9c57f244c0834f9d9969d9781e0396adccd330eaae658ac7d6b lib/unicore/extracted/DNumType.txt * 6bd30f385f3baf3ab5d5308c111a81de87bea5f494ba0ba69e8ab45263b8c34d lib/unicore/extracted/DNumValues.txt - * f7265069b38ba9a0675a18600e241b1ec6fc8c55fd806fe4c13bc5d8cb0dc508 lib/unicore/mktables + * edc16ae96214bb0827922d8788b06fad7b664c1b7add30006076d1ae0372623b lib/unicore/mktables * 55d90fdc3f902e5c0b16b3378f9eaa36e970a1c09723c33de7d47d0370044012 lib/unicore/version * 0a6b5ab33bb1026531f816efe81aea1a8ffcd34a27cbea37dd6a70a63d73c844 regen/charset_translations.pl * c7ff8e0d207d3538c7feb4a1a152b159e5e902d20293b303569ea8323e84633e regen/mk_PL_charclass.pl