summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorYves Orton <demerphq@gmail.com>2009-09-10 20:39:13 +0200
committerYves Orton <demerphq@gmail.com>2009-09-10 20:39:13 +0200
commita4499558ecf2e75d73756479898bf8c8dbe8a6f6 (patch)
tree5d59ba9723d6b5d114e1a72d97eccc3723799565
parent2c2969659ae1c534e7f3fac9e7a7d186defd9943 (diff)
downloadperl-a4499558ecf2e75d73756479898bf8c8dbe8a6f6.tar.gz
move regex related tests out of t/op/ into t/re/
-rw-r--r--MANIFEST66
-rw-r--r--Makefile.SH4
-rw-r--r--pod/perlhack.pod5
-rwxr-xr-xt/TEST2
-rw-r--r--t/harness2
-rw-r--r--t/op/regexp_noamp.t10
-rw-r--r--t/op/regexp_qr.t10
-rw-r--r--t/op/regexp_qr_embed.t11
-rw-r--r--t/op/regexp_qr_embed_thr.t11
-rw-r--r--t/op/substT.t9
-rw-r--r--t/op/subst_wamp.t11
-rw-r--r--t/re/pat.t (renamed from t/op/pat.t)0
-rw-r--r--t/re/pat_thr.t (renamed from t/op/pat_thr.t)0
-rw-r--r--t/re/qr.t (renamed from t/op/qr.t)0
-rw-r--r--t/re/qr_gc.t (renamed from t/op/qr_gc.t)0
-rw-r--r--t/re/qrstack.t (renamed from t/op/qrstack.t)0
-rw-r--r--t/re/re.t (renamed from t/op/re.t)0
-rw-r--r--t/re/re_tests (renamed from t/op/re_tests)0
-rw-r--r--t/re/reg_60508.t (renamed from t/op/reg_60508.t)0
-rw-r--r--t/re/reg_email.t (renamed from t/op/reg_email.t)0
-rw-r--r--t/re/reg_email_thr.t (renamed from t/op/reg_email_thr.t)0
-rw-r--r--t/re/reg_fold.t (renamed from t/op/reg_fold.t)0
-rw-r--r--t/re/reg_mesg.t (renamed from t/op/reg_mesg.t)0
-rw-r--r--t/re/reg_namedcapture.t (renamed from t/op/reg_namedcapture.t)0
-rw-r--r--t/re/reg_nc_tie.t (renamed from t/op/reg_nc_tie.t)0
-rw-r--r--t/re/reg_pmod.t (renamed from t/op/reg_pmod.t)0
-rw-r--r--t/re/reg_posixcc.t (renamed from t/op/reg_posixcc.t)0
-rw-r--r--t/re/reg_unsafe.t (renamed from t/op/reg_unsafe.t)0
-rw-r--r--t/re/regexp.t (renamed from t/op/regexp.t)4
-rw-r--r--t/re/regexp_noamp.t10
-rw-r--r--t/re/regexp_notrie.t (renamed from t/op/regexp_notrie.t)4
-rw-r--r--t/re/regexp_qr.t10
-rw-r--r--t/re/regexp_qr_embed.t11
-rw-r--r--t/re/regexp_qr_embed_thr.t11
-rw-r--r--t/re/regexp_trielist.t (renamed from t/op/regexp_trielist.t)4
-rw-r--r--t/re/regexp_unicode_prop.t (renamed from t/op/regexp_unicode_prop.t)0
-rw-r--r--t/re/regexp_unicode_prop_thr.t (renamed from t/op/regexp_unicode_prop_thr.t)0
-rw-r--r--t/re/rxcode.t (renamed from t/op/rxcode.t)0
-rw-r--r--t/re/subst.t (renamed from t/op/subst.t)0
-rw-r--r--t/re/substT.t9
-rw-r--r--t/re/subst_amp.t (renamed from t/op/subst_amp.t)0
-rw-r--r--t/re/subst_wamp.t11
-rw-r--r--t/re/substr.t (renamed from t/op/substr.t)0
-rw-r--r--t/re/substr_thr.t (renamed from t/op/substr_thr.t)0
-rw-r--r--win32/Makefile2
-rw-r--r--win32/makefile.mk2
46 files changed, 112 insertions, 107 deletions
diff --git a/MANIFEST b/MANIFEST
index e555b62b37..6bf33128c3 100644
--- a/MANIFEST
+++ b/MANIFEST
@@ -4314,16 +4314,16 @@ t/op/or.t See if || works in weird situations
t/op/overload_integer.t See if overload::constant for integer works after "use".
t/op/override.t See if operator overriding works
t/op/pack.t See if pack and unpack work
-t/op/pat.t See if esoteric patterns work
-t/op/pat_thr.t See if esoteric patterns work in another thread
+t/re/pat.t See if esoteric patterns work
+t/re/pat_thr.t See if esoteric patterns work in another thread
t/op/pos.t See if pos works
t/op/pow.t See if ** works
t/op/push.t See if push and pop work
t/op/pwent.t See if getpw*() functions work
t/op/qq.t See if qq works
-t/op/qr_gc.t See if qr doesn't leak
-t/op/qrstack.t See if qr expands the stack properly
-t/op/qr.t See if qr works
+t/re/qr_gc.t See if qr doesn't leak
+t/re/qrstack.t See if qr expands the stack properly
+t/re/qr.t See if qr works
t/op/quotemeta.t See if quotemeta works
t/op/rand.t See if rand works
t/op/range.t See if .. works
@@ -4332,32 +4332,32 @@ t/op/readline.t See if <> / readline / rcatline work
t/op/read.t See if read() works
t/op/recurse.t See if deep recursion works
t/op/ref.t See if refs and objects work
-t/op/reg_60508.t See if bug #60508 is fixed
-t/op/reg_email.t See if regex recursion works by parsing email addresses
-t/op/reg_email_thr.t See if regex recursion works by parsing email addresses in another thread
-t/op/regexp_noamp.t See if regular expressions work with optimizations
-t/op/regexp_notrie.t See if regular expressions work without trie optimisation
-t/op/regexp_qr_embed.t See if regular expressions work with embedded qr//
-t/op/regexp_qr_embed_thr.t See if regular expressions work with embedded qr// in another thread
-t/op/regexp_qr.t See if regular expressions work as qr//
-t/op/regexp.t See if regular expressions work
-t/op/regexp_trielist.t See if regular expressions work with trie optimisation
-t/op/regexp_unicode_prop.t See if unicode properties work in regular expressions as expected
-t/op/regexp_unicode_prop_thr.t See if unicode properties work in regular expressions as expected under threads
-t/op/reg_fold.t See if case folding works properly
-t/op/reg_mesg.t See if one can get regular expression errors
-t/op/reg_namedcapture.t Make sure glob assignment doesn't break named capture
-t/op/reg_nc_tie.t Test the tied methods of Tie::Hash::NamedCapture
-t/op/reg_pmod.t See if regexp /p modifier works as expected
-t/op/reg_posixcc.t See if posix character classes behave consistantly
-t/op/reg_unsafe.t Check for unsafe match vars
+t/re/reg_60508.t See if bug #60508 is fixed
+t/re/reg_email.t See if regex recursion works by parsing email addresses
+t/re/reg_email_thr.t See if regex recursion works by parsing email addresses in another thread
+t/re/regexp_noamp.t See if regular expressions work with optimizations
+t/re/regexp_notrie.t See if regular expressions work without trie optimisation
+t/re/regexp_qr_embed.t See if regular expressions work with embedded qr//
+t/re/regexp_qr_embed_thr.t See if regular expressions work with embedded qr// in another thread
+t/re/regexp_qr.t See if regular expressions work as qr//
+t/re/regexp.t See if regular expressions work
+t/re/regexp_trielist.t See if regular expressions work with trie optimisation
+t/re/regexp_unicode_prop.t See if unicode properties work in regular expressions as expected
+t/re/regexp_unicode_prop_thr.t See if unicode properties work in regular expressions as expected under threads
+t/re/reg_fold.t See if case folding works properly
+t/re/reg_mesg.t See if one can get regular expression errors
+t/re/reg_namedcapture.t Make sure glob assignment doesn't break named capture
+t/re/reg_nc_tie.t Test the tied methods of Tie::Hash::NamedCapture
+t/re/reg_pmod.t See if regexp /p modifier works as expected
+t/re/reg_posixcc.t See if posix character classes behave consistantly
+t/re/reg_unsafe.t Check for unsafe match vars
t/op/repeat.t See if x operator works
t/op/reset.t See if reset operator works
-t/op/re.t See if exportable 're' funcs in universal.c work
-t/op/re_tests Regular expressions for regexp.t
+t/re/re.t See if exportable 're' funcs in universal.c work
+t/re/re_tests Regular expressions for regexp.t
t/op/reverse.t See if reverse operator works
t/op/runlevel.t See if die() works from perl_call_*()
-t/op/rxcode.t See if /(?{ code })/ works
+t/re/rxcode.t See if /(?{ code })/ works
t/op/setpgrpstack.t See if setpgrp works
t/op/sleep.t See if sleep works
t/op/smartmatch.t See if the ~~ operator works
@@ -4374,12 +4374,12 @@ t/op/stat.t See if stat works
t/op/study.t See if study works
t/op/studytied.t See if study works with tied scalars
t/op/sub_lval.t See if lvalue subroutines work
-t/op/subst_amp.t See if $&-related substitution works
-t/op/substr.t See if substr works
-t/op/substr_thr.t See if substr works in another thread
-t/op/subst.t See if substitution works
-t/op/substT.t See if substitution works with -T
-t/op/subst_wamp.t See if substitution works with $& present
+t/re/subst_amp.t See if $&-related substitution works
+t/re/substr.t See if substr works
+t/re/substr_thr.t See if substr works in another thread
+t/re/subst.t See if substitution works
+t/re/substT.t See if substitution works with -T
+t/re/subst_wamp.t See if substitution works with $& present
t/op/sub.t See if subroutines work
t/op/switch.t See if switches (given/when) work
t/op/symbolcache.t See if undef/delete works on stashes with functions
diff --git a/Makefile.SH b/Makefile.SH
index 1ab2d22e95..76c5aba464 100644
--- a/Makefile.SH
+++ b/Makefile.SH
@@ -1438,7 +1438,7 @@ minitest.prep:
# is crashing.
minitest: miniperl$(EXE_EXT) lib/re.pm minitest.prep
- cd t && (rm -f perl$(EXE_EXT); $(LNS) ../miniperl$(EXE_EXT) perl$(EXE_EXT)) \
- && $(LDLIBPTH) $(RUN) ./perl TEST -minitest base/*.t comp/*.t cmd/*.t run/*.t io/*.t op/*.t uni/*.t </dev/tty
+ && $(LDLIBPTH) $(RUN) ./perl TEST -minitest base/*.t comp/*.t cmd/*.t run/*.t io/*.t re/*.t op/*.t uni/*.t </dev/tty
# Test via harness
@@ -1449,7 +1449,7 @@ test_harness_notty: test_prep
PERL=./perl HARNESS_NOTTY=1 $(MAKE) TESTFILE=harness _test
test-reonly: test_prep
- PERL=./perl TEST_ARGS='-re \\bpat\\b \\breg \\bre\b \\bsubst \\brxcode' $(MAKE) TESTFILE=harness _test
+ PERL=./perl TEST_ARGS='-re \\bre\\/' $(MAKE) TESTFILE=harness _test
# Handy way to run perlbug -ok without having to install and run the
# installed perlbug. We don't re-run the tests here - we trust the user.
diff --git a/pod/perlhack.pod b/pod/perlhack.pod
index 2e5c30841c..be860eea9c 100644
--- a/pod/perlhack.pod
+++ b/pod/perlhack.pod
@@ -1802,6 +1802,11 @@ other directories.
Tests for POD directives. There are still some tests for the Pod
modules hanging around in here that need to be moved out into F<lib/>.
+=item F<t/re/>
+
+Tests for regex related functions or behaviour. (These used to live
+in t/op).
+
=item F<t/run/>
Testing features of how perl actually runs, including exit codes and
diff --git a/t/TEST b/t/TEST
index 42f1d209c7..2aefc3e18c 100755
--- a/t/TEST
+++ b/t/TEST
@@ -356,7 +356,7 @@ unless (@ARGV) {
# then comp, to validate that require works
# then run, to validate that -M works
# then we know we can -MTestInit for everything else, making life simpler
- foreach my $dir (qw(base comp run cmd io op uni mro)) {
+ foreach my $dir (qw(base comp run cmd io re op uni mro)) {
_find_tests($dir);
}
_find_tests("lib") unless $::core;
diff --git a/t/harness b/t/harness
index 51de53a00b..a70c8be311 100644
--- a/t/harness
+++ b/t/harness
@@ -127,7 +127,7 @@ if (@ARGV) {
unless (@tests) {
my @seq = <base/*.t>;
- my @next = qw(comp run cmd io op uni mro lib porting);
+ my @next = qw(comp run cmd io re op uni mro lib porting);
push @next, 'japh' if $torture;
push @next, 'win32' if $^O eq 'MSWin32';
push @next, 'benchmark' if $ENV{PERL_BENCHMARK};
diff --git a/t/op/regexp_noamp.t b/t/op/regexp_noamp.t
deleted file mode 100644
index 9aa00b50a9..0000000000
--- a/t/op/regexp_noamp.t
+++ /dev/null
@@ -1,10 +0,0 @@
-#!./perl
-
-$skip_amp = 1;
-for $file ('./op/regexp.t', './t/op/regexp.t', ':op:regexp.t') {
- if (-r $file) {
- do $file or die $@;
- exit;
- }
-}
-die "Cannot find ./op/regexp.t or ./t/op/regexp.t\n";
diff --git a/t/op/regexp_qr.t b/t/op/regexp_qr.t
deleted file mode 100644
index 81ba14c6fe..0000000000
--- a/t/op/regexp_qr.t
+++ /dev/null
@@ -1,10 +0,0 @@
-#!./perl
-
-$qr = 1;
-for $file ('./op/regexp.t', './t/op/regexp.t', ':op:regexp.t') {
- if (-r $file) {
- do $file or die $@;
- exit;
- }
-}
-die "Cannot find ./op/regexp.t or ./t/op/regexp.t\n";
diff --git a/t/op/regexp_qr_embed.t b/t/op/regexp_qr_embed.t
deleted file mode 100644
index d5f0844acc..0000000000
--- a/t/op/regexp_qr_embed.t
+++ /dev/null
@@ -1,11 +0,0 @@
-#!./perl
-
-$qr = 1;
-$qr_embed = 1;
-for $file ('./op/regexp.t', './t/op/regexp.t', ':op:regexp.t') {
- if (-r $file) {
- do $file or die $@;
- exit;
- }
-}
-die "Cannot find ./op/regexp.t or ./t/op/regexp.t\n";
diff --git a/t/op/regexp_qr_embed_thr.t b/t/op/regexp_qr_embed_thr.t
deleted file mode 100644
index 4f91bd4f2c..0000000000
--- a/t/op/regexp_qr_embed_thr.t
+++ /dev/null
@@ -1,11 +0,0 @@
-#!./perl
-
-$qr = 1;
-$qr_embed_thr = 1;
-for $file ('./op/regexp.t', './t/op/regexp.t', ':op:regexp.t') {
- if (-r $file) {
- do $file or die $@;
- exit;
- }
-}
-die "Cannot find ./op/regexp.t or ./t/op/regexp.t\n";
diff --git a/t/op/substT.t b/t/op/substT.t
deleted file mode 100644
index 5d02692246..0000000000
--- a/t/op/substT.t
+++ /dev/null
@@ -1,9 +0,0 @@
-#!perl -wT
-
-for $file ('op/subst.t', 't/op/subst.t', ':op:subst.t') {
- if (-r $file) {
- do "./$file";
- exit;
- }
-}
-die "Cannot find op/subst.t or t/op/subst.t\n";
diff --git a/t/op/subst_wamp.t b/t/op/subst_wamp.t
deleted file mode 100644
index 1207343bf1..0000000000
--- a/t/op/subst_wamp.t
+++ /dev/null
@@ -1,11 +0,0 @@
-#!./perl
-
-$dummy = defined $&; # Now we have it...
-for $file ('op/subst.t', 't/op/subst.t', ':op:subst.t') {
- if (-r $file) {
- do "./$file";
- exit;
- }
-}
-die "Cannot find op/subst.t or t/op/subst.t\n";
-
diff --git a/t/op/pat.t b/t/re/pat.t
index c610a6a9b5..c610a6a9b5 100644
--- a/t/op/pat.t
+++ b/t/re/pat.t
diff --git a/t/op/pat_thr.t b/t/re/pat_thr.t
index 3228b33a65..3228b33a65 100644
--- a/t/op/pat_thr.t
+++ b/t/re/pat_thr.t
diff --git a/t/op/qr.t b/t/re/qr.t
index ff9449e759..ff9449e759 100644
--- a/t/op/qr.t
+++ b/t/re/qr.t
diff --git a/t/op/qr_gc.t b/t/re/qr_gc.t
index db2e96ed2c..db2e96ed2c 100644
--- a/t/op/qr_gc.t
+++ b/t/re/qr_gc.t
diff --git a/t/op/qrstack.t b/t/re/qrstack.t
index 47d190d055..47d190d055 100644
--- a/t/op/qrstack.t
+++ b/t/re/qrstack.t
diff --git a/t/op/re.t b/t/re/re.t
index 8c1c1f8db0..8c1c1f8db0 100644
--- a/t/op/re.t
+++ b/t/re/re.t
diff --git a/t/op/re_tests b/t/re/re_tests
index b9177e92ca..b9177e92ca 100644
--- a/t/op/re_tests
+++ b/t/re/re_tests
diff --git a/t/op/reg_60508.t b/t/re/reg_60508.t
index e370ca0071..e370ca0071 100644
--- a/t/op/reg_60508.t
+++ b/t/re/reg_60508.t
diff --git a/t/op/reg_email.t b/t/re/reg_email.t
index 6255ee3d72..6255ee3d72 100644
--- a/t/op/reg_email.t
+++ b/t/re/reg_email.t
diff --git a/t/op/reg_email_thr.t b/t/re/reg_email_thr.t
index 8eafc0588d..8eafc0588d 100644
--- a/t/op/reg_email_thr.t
+++ b/t/re/reg_email_thr.t
diff --git a/t/op/reg_fold.t b/t/re/reg_fold.t
index 25144521a5..25144521a5 100644
--- a/t/op/reg_fold.t
+++ b/t/re/reg_fold.t
diff --git a/t/op/reg_mesg.t b/t/re/reg_mesg.t
index 4e8f3c4924..4e8f3c4924 100644
--- a/t/op/reg_mesg.t
+++ b/t/re/reg_mesg.t
diff --git a/t/op/reg_namedcapture.t b/t/re/reg_namedcapture.t
index e3a837459d..e3a837459d 100644
--- a/t/op/reg_namedcapture.t
+++ b/t/re/reg_namedcapture.t
diff --git a/t/op/reg_nc_tie.t b/t/re/reg_nc_tie.t
index 7a79a8e6da..7a79a8e6da 100644
--- a/t/op/reg_nc_tie.t
+++ b/t/re/reg_nc_tie.t
diff --git a/t/op/reg_pmod.t b/t/re/reg_pmod.t
index 301aeefc6d..301aeefc6d 100644
--- a/t/op/reg_pmod.t
+++ b/t/re/reg_pmod.t
diff --git a/t/op/reg_posixcc.t b/t/re/reg_posixcc.t
index 8b25d7de52..8b25d7de52 100644
--- a/t/op/reg_posixcc.t
+++ b/t/re/reg_posixcc.t
diff --git a/t/op/reg_unsafe.t b/t/re/reg_unsafe.t
index 6b19108bdc..6b19108bdc 100644
--- a/t/op/reg_unsafe.t
+++ b/t/re/reg_unsafe.t
diff --git a/t/op/regexp.t b/t/re/regexp.t
index ba5da62b65..e970ba9f84 100644
--- a/t/op/regexp.t
+++ b/t/re/regexp.t
@@ -73,8 +73,8 @@ use vars qw($qr $skip_amp $qr_embed $qr_embed_thr); # set by our callers
if (!defined $file) {
- open(TESTS,'op/re_tests') || open(TESTS,'t/op/re_tests')
- || open(TESTS,':op:re_tests') || die "Can't open re_tests";
+ open(TESTS,'re/re_tests') || open(TESTS,'t/re/re_tests')
+ || open(TESTS,':re:re_tests') || die "Can't open re_tests";
}
my @tests = <TESTS>;
diff --git a/t/re/regexp_noamp.t b/t/re/regexp_noamp.t
new file mode 100644
index 0000000000..6b2952d3f5
--- /dev/null
+++ b/t/re/regexp_noamp.t
@@ -0,0 +1,10 @@
+#!./perl
+
+$skip_amp = 1;
+for $file ('./re/regexp.t', './t/re/regexp.t', ':re:regexp.t') {
+ if (-r $file) {
+ do $file or die $@;
+ exit;
+ }
+}
+die "Cannot find ./re/regexp.t or ./t/re/regexp.t\n";
diff --git a/t/op/regexp_notrie.t b/t/re/regexp_notrie.t
index beada13054..9ace6ed13d 100644
--- a/t/op/regexp_notrie.t
+++ b/t/re/regexp_notrie.t
@@ -6,10 +6,10 @@ BEGIN {
}
$qr = 1;
-for $file ('./op/regexp.t', './t/op/regexp.t', ':op:regexp.t') {
+for $file ('./re/regexp.t', './t/re/regexp.t', ':re:regexp.t') {
if (-r $file) {
do $file or die $@;
exit;
}
}
-die "Cannot find ./op/regexp.t or ./t/op/regexp.t\n";
+die "Cannot find ./re/regexp.t or ./t/re/regexp.t\n";
diff --git a/t/re/regexp_qr.t b/t/re/regexp_qr.t
new file mode 100644
index 0000000000..18b1cf802a
--- /dev/null
+++ b/t/re/regexp_qr.t
@@ -0,0 +1,10 @@
+#!./perl
+
+$qr = 1;
+for $file ('./re/regexp.t', './t/re/regexp.t', ':re:regexp.t') {
+ if (-r $file) {
+ do $file or die $@;
+ exit;
+ }
+}
+die "Cannot find ./re/regexp.t or ./t/re/regexp.t\n";
diff --git a/t/re/regexp_qr_embed.t b/t/re/regexp_qr_embed.t
new file mode 100644
index 0000000000..f0366ca645
--- /dev/null
+++ b/t/re/regexp_qr_embed.t
@@ -0,0 +1,11 @@
+#!./perl
+
+$qr = 1;
+$qr_embed = 1;
+for $file ('./re/regexp.t', './t/re/regexp.t', ':re:regexp.t') {
+ if (-r $file) {
+ do $file or die $@;
+ exit;
+ }
+}
+die "Cannot find ./re/regexp.t or ./t/re/regexp.t\n";
diff --git a/t/re/regexp_qr_embed_thr.t b/t/re/regexp_qr_embed_thr.t
new file mode 100644
index 0000000000..db89c1a461
--- /dev/null
+++ b/t/re/regexp_qr_embed_thr.t
@@ -0,0 +1,11 @@
+#!./perl
+
+$qr = 1;
+$qr_embed_thr = 1;
+for $file ('./re/regexp.t', './t/re/regexp.t', ':re:regexp.t') {
+ if (-r $file) {
+ do $file or die $@;
+ exit;
+ }
+}
+die "Cannot find ./re/regexp.t or ./t/re/regexp.t\n";
diff --git a/t/op/regexp_trielist.t b/t/re/regexp_trielist.t
index 214e80bf79..55379e86d8 100644
--- a/t/op/regexp_trielist.t
+++ b/t/re/regexp_trielist.t
@@ -6,10 +6,10 @@ BEGIN {
}
$qr = 1;
-for $file ('./op/regexp.t', './t/op/regexp.t', ':op:regexp.t') {
+for $file ('./re/regexp.t', './t/re/regexp.t', ':re:regexp.t') {
if (-r $file) {
do $file or die $@;
exit;
}
}
-die "Cannot find ./op/regexp.t or ./t/op/regexp.t\n";
+die "Cannot find ./re/regexp.t or ./t/re/regexp.t\n";
diff --git a/t/op/regexp_unicode_prop.t b/t/re/regexp_unicode_prop.t
index 8cc09f1ade..8cc09f1ade 100644
--- a/t/op/regexp_unicode_prop.t
+++ b/t/re/regexp_unicode_prop.t
diff --git a/t/op/regexp_unicode_prop_thr.t b/t/re/regexp_unicode_prop_thr.t
index ae40d43af1..ae40d43af1 100644
--- a/t/op/regexp_unicode_prop_thr.t
+++ b/t/re/regexp_unicode_prop_thr.t
diff --git a/t/op/rxcode.t b/t/re/rxcode.t
index eb144f9807..eb144f9807 100644
--- a/t/op/rxcode.t
+++ b/t/re/rxcode.t
diff --git a/t/op/subst.t b/t/re/subst.t
index 2f6e759287..2f6e759287 100644
--- a/t/op/subst.t
+++ b/t/re/subst.t
diff --git a/t/re/substT.t b/t/re/substT.t
new file mode 100644
index 0000000000..22c3c504ef
--- /dev/null
+++ b/t/re/substT.t
@@ -0,0 +1,9 @@
+#!perl -wT
+
+for $file ('re/subst.t', 't/re/subst.t', ':re:subst.t') {
+ if (-r $file) {
+ do "./$file";
+ exit;
+ }
+}
+die "Cannot find re/subst.t or t/re/subst.t\n";
diff --git a/t/op/subst_amp.t b/t/re/subst_amp.t
index 71895720f7..71895720f7 100644
--- a/t/op/subst_amp.t
+++ b/t/re/subst_amp.t
diff --git a/t/re/subst_wamp.t b/t/re/subst_wamp.t
new file mode 100644
index 0000000000..286141cfcd
--- /dev/null
+++ b/t/re/subst_wamp.t
@@ -0,0 +1,11 @@
+#!./perl
+
+$dummy = defined $&; # Now we have it...
+for $file ('re/subst.t', 't/re/subst.t', ':re:subst.t') {
+ if (-r $file) {
+ do "./$file";
+ exit;
+ }
+}
+die "Cannot find re/subst.t or t/re/subst.t\n";
+
diff --git a/t/op/substr.t b/t/re/substr.t
index c3fa6e10e7..c3fa6e10e7 100644
--- a/t/op/substr.t
+++ b/t/re/substr.t
diff --git a/t/op/substr_thr.t b/t/re/substr_thr.t
index babb48d8ec..babb48d8ec 100644
--- a/t/op/substr_thr.t
+++ b/t/re/substr_thr.t
diff --git a/win32/Makefile b/win32/Makefile
index 057089dd8c..332b8ca2ca 100644
--- a/win32/Makefile
+++ b/win32/Makefile
@@ -1289,7 +1289,7 @@ test-reonly : reonly utils
$(XCOPY) $(PERLDLL) ..\t\$(NULL)
$(XCOPY) $(GLOBEXE) ..\t\$(NULL)
cd ..\t
- $(PERLEXE) -I..\lib harness $(OPT) -re \bpat\b \breg \bre\b \bsubst \brxcode $(EXTRA)
+ $(PERLEXE) -I..\lib harness $(OPT) -re \bre\\/ $(EXTRA)
cd ..\win32
regen :
diff --git a/win32/makefile.mk b/win32/makefile.mk
index 1d1c51accb..002d5c53c2 100644
--- a/win32/makefile.mk
+++ b/win32/makefile.mk
@@ -1620,7 +1620,7 @@ test-reonly : reonly utils
$(XCOPY) $(PERLDLL) ..\t\$(NULL)
$(XCOPY) $(GLOBEXE) ..\t\$(NULL)
cd ..\t && \
- $(PERLEXE) -I..\lib harness $(OPT) -re \bpat\b \breg \bre\b \bsubst \brxcode $(EXTRA) && \
+ $(PERLEXE) -I..\lib harness $(OPT) -re \bpat\\/ $(EXTRA) && \
cd ..\win32
regen :