From cb6fa888755135cd1d407724f9be2a212dcf41e5 Mon Sep 17 00:00:00 2001 From: Nicholas Clark Date: Tue, 22 Feb 2011 21:06:17 +0000 Subject: [PATCH] Allow t/re/regexp.t to conditionally skip tests on miniperl Annotate that all tests for %+ and %- are to be skipped on miniperl. --- t/re/re_tests | 76 +++++++++++++++++++++++++++++------------------------------ t/re/regexp.t | 2 ++ 2 files changed, 40 insertions(+), 38 deletions(-) diff --git a/t/re/re_tests b/t/re/re_tests index c80667f..5441437 100644 --- a/t/re/re_tests +++ b/t/re/re_tests @@ -1067,35 +1067,35 @@ X(?<=foo.)[YZ] ..XfooXY.. y pos 8 ((?2)*)([fF]o+) fooFoFoo y $1-$2 fooFo-Foo (<(?:[^<>]+|(?R))*>) <<><<<><>>>> y $1 <<><<<><>>>> (?foo|bar|baz) snofooewa y $1 foo -(?foo|bar|baz) snofooewa y $+{n} foo -(?foo|bar|baz)(?[ew]+) snofooewa y $+{n} foo -(?foo|bar|baz)(?[ew]+) snofooewa y $+{m} ew -(?foo)|(?bar)|(?baz) snofooewa y $+{n} foo -(?foo)(??{ $+{n} }) snofooefoofoowaa y $+{n} foo +(?foo|bar|baz) snofooewa yM $+{n} foo miniperl cannot load Tie::Hash::NamedCapture +(?foo|bar|baz)(?[ew]+) snofooewa yM $+{n} foo miniperl cannot load Tie::Hash::NamedCapture +(?foo|bar|baz)(?[ew]+) snofooewa yM $+{m} ew miniperl cannot load Tie::Hash::NamedCapture +(?foo)|(?bar)|(?baz) snofooewa yM $+{n} foo miniperl cannot load Tie::Hash::NamedCapture +(?foo)(??{ $+{n} }) snofooefoofoowaa yM $+{n} foo miniperl cannot load Tie::Hash::NamedCapture (?Pfoo|bar|baz) snofooewa y $1 foo -(?Pfoo|bar|baz) snofooewa y $+{n} foo -(?Pfoo|bar|baz)(?P[ew]+) snofooewa y $+{n} foo -(?Pfoo|bar|baz)(?P[ew]+) snofooewa y $+{m} ew -(?Pfoo)|(?Pbar)|(?Pbaz) snofooewa y $+{n} foo -(?Pfoo)(??{ $+{n} }) snofooefoofoowaa y $+{n} foo +(?Pfoo|bar|baz) snofooewa yM $+{n} foo miniperl cannot load Tie::Hash::NamedCapture +(?Pfoo|bar|baz)(?P[ew]+) snofooewa yM $+{n} foo miniperl cannot load Tie::Hash::NamedCapture +(?Pfoo|bar|baz)(?P[ew]+) snofooewa yM $+{m} ew miniperl cannot load Tie::Hash::NamedCapture +(?Pfoo)|(?Pbar)|(?Pbaz) snofooewa yM $+{n} foo miniperl cannot load Tie::Hash::NamedCapture +(?Pfoo)(??{ $+{n} }) snofooefoofoowaa yM $+{n} foo miniperl cannot load Tie::Hash::NamedCapture (?P<=n>foo|bar|baz) snofooewa c - Sequence (?P<=...) not recognized (?Pfoo|bar|baz) snofooewa c - Sequence (?Pfoo|bar|baz) snofooewa c - Sequence (?PX<...) not recognized /(?'n'foo|bar|baz)/ snofooewa y $1 foo -/(?'n'foo|bar|baz)/ snofooewa y $+{n} foo -/(?'n'foo|bar|baz)(?'m'[ew]+)/ snofooewa y $+{n} foo -/(?'n'foo|bar|baz)(?'m'[ew]+)/ snofooewa y $+{m} ew -/(?'n'foo)|(?'n'bar)|(?baz)/ snobazewa y $+{n} baz -/(?'n'foo)(??{ $+{n} })/ snofooefoofoowaa y $+{n} foo +/(?'n'foo|bar|baz)/ snofooewa yM $+{n} foo miniperl cannot load Tie::Hash::NamedCapture +/(?'n'foo|bar|baz)(?'m'[ew]+)/ snofooewa yM $+{n} foo miniperl cannot load Tie::Hash::NamedCapture +/(?'n'foo|bar|baz)(?'m'[ew]+)/ snofooewa yM $+{m} ew miniperl cannot load Tie::Hash::NamedCapture +/(?'n'foo)|(?'n'bar)|(?baz)/ snobazewa yM $+{n} baz miniperl cannot load Tie::Hash::NamedCapture +/(?'n'foo)(??{ $+{n} })/ snofooefoofoowaa yM $+{n} foo miniperl cannot load Tie::Hash::NamedCapture /(?'n'foo)\k/ ..foofoo.. y $1 foo -/(?'n'foo)\k/ ..foofoo.. y $+{n} foo +/(?'n'foo)\k/ ..foofoo.. yM $+{n} foo miniperl cannot load Tie::Hash::NamedCapture /(?foo)\k'n'/ ..foofoo.. y $1 foo -/(?foo)\k'n'/ ..foofoo.. y $+{n} foo -/(?:(?foo)|(?bar))\k/ ..barbar.. y $+{n} bar -/^(?'main'<(?:[^<>]+|(?&crap)|(?&main))*>)(?'empty')(?'crap'!>!>!>)$/ <!>!>><>>!>!>!> y $+{main} <!>!>><>> +/(?foo)\k'n'/ ..foofoo.. yM $+{n} foo miniperl cannot load Tie::Hash::NamedCapture +/(?:(?foo)|(?bar))\k/ ..barbar.. yM $+{n} bar miniperl cannot load Tie::Hash::NamedCapture +/^(?'main'<(?:[^<>]+|(?&crap)|(?&main))*>)(?'empty')(?'crap'!>!>!>)$/ <!>!>><>>!>!>!> yM $+{main} <!>!>><>> miniperl cannot load Tie::Hash::NamedCapture /^(?'main'<(?:[^<>]+|(?&main))*>)$/ <<><<<><>>>> y $1 <<><<<><>>>> -/(?'first'(?&second)*)(?'second'[fF]o+)/ fooFoFoo y $+{first}-$+{second} fooFo-Foo -(?foo)?(?()bar|nada) foobar y $+{A} foo +/(?'first'(?&second)*)(?'second'[fF]o+)/ fooFoFoo yM $+{first}-$+{second} fooFo-Foo miniperl cannot load Tie::Hash::NamedCapture +(?foo)?(?()bar|nada) foobar yM $+{A} foo miniperl cannot load Tie::Hash::NamedCapture (?foo)?(?()bar|nada) foo-barnada y $& nada (?foo)?(?(1)bar|nada) foo-barnada y $& nada (?foo(?(R)bar))?(?1) foofoobar y $1 foo @@ -1249,15 +1249,15 @@ a*(*F) aaaab n - - # \k preceded by a literal /(?'n'foo) \k/ ..foo foo.. y $1 foo -/(?'n'foo) \k/ ..foo foo.. y $+{n} foo +/(?'n'foo) \k/ ..foo foo.. yM $+{n} foo miniperl cannot load Tie::Hash::NamedCapture /(?foo) \k'n'/ ..foo foo.. y $1 foo -/(?foo) \k'n'/ ..foo foo.. y $+{n} foo -/(?'a1'foo) \k'a1'/ ..foo foo.. y $+{a1} foo -/(?foo) \k/ ..foo foo.. y $+{a1} foo -/(?'_'foo) \k'_'/ ..foo foo.. y $+{_} foo -/(?<_>foo) \k<_>/ ..foo foo.. y $+{_} foo -/(?'_0_'foo) \k'_0_'/ ..foo foo.. y $+{_0_} foo -/(?<_0_>foo) \k<_0_>/ ..foo foo.. y $+{_0_} foo +/(?foo) \k'n'/ ..foo foo.. yM $+{n} foo miniperl cannot load Tie::Hash::NamedCapture +/(?'a1'foo) \k'a1'/ ..foo foo.. yM $+{a1} foo miniperl cannot load Tie::Hash::NamedCapture +/(?foo) \k/ ..foo foo.. yM $+{a1} foo miniperl cannot load Tie::Hash::NamedCapture +/(?'_'foo) \k'_'/ ..foo foo.. yM $+{_} foo miniperl cannot load Tie::Hash::NamedCapture +/(?<_>foo) \k<_>/ ..foo foo.. yM $+{_} foo miniperl cannot load Tie::Hash::NamedCapture +/(?'_0_'foo) \k'_0_'/ ..foo foo.. yM $+{_0_} foo miniperl cannot load Tie::Hash::NamedCapture +/(?<_0_>foo) \k<_0_>/ ..foo foo.. yM $+{_0_} foo miniperl cannot load Tie::Hash::NamedCapture /(?'0'foo) bar/ ..foo bar.. c - Sequence (?' /(?<0>foo) bar/ ..foo bar.. c - Sequence (?< /(?'12'foo) bar/ ..foo bar.. c - Sequence (?' @@ -1286,19 +1286,19 @@ a*(*F) aaaab n - - # \g{...} with a name as the argument /(?'n'foo) \g{n}/ ..foo foo.. y $1 foo -/(?'n'foo) \g{n}/ ..foo foo.. y $+{n} foo +/(?'n'foo) \g{n}/ ..foo foo.. yM $+{n} foo miniperl cannot load Tie::Hash::NamedCapture /(?foo) \g{n}/ ..foo foo.. y $1 foo -/(?foo) \g{n}/ ..foo foo.. y $+{n} foo +/(?foo) \g{n}/ ..foo foo.. yM $+{n} foo miniperl cannot load Tie::Hash::NamedCapture /(?as) (\w+) \g{as} (\w+)/ as easy as pie y $1-$2-$3 as-easy-pie # Python style named capture buffer stuff /(?Pfoo)(?P=n)/ ..foofoo.. y $1 foo -/(?Pfoo)(?P=n)/ ..foofoo.. y $+{n} foo -/(?:(?Pfoo)|(?Pbar))(?P=n)/ ..barbar.. y $+{n} bar +/(?Pfoo)(?P=n)/ ..foofoo.. yM $+{n} foo miniperl cannot load Tie::Hash::NamedCapture +/(?:(?Pfoo)|(?Pbar))(?P=n)/ ..barbar.. yM $+{n} bar miniperl cannot load Tie::Hash::NamedCapture /^(?P(?P.)((?P>PAL)|.?)(?P=CHAR))$/ madamimadam y $& madamimadam /^(?P(?P.)((?P>PAL)|.?)(?P=CHAR))$/ madamiamadam n - - /(?Pfoo) (?P=n)/ ..foo foo.. y $1 foo -/(?Pfoo) (?P=n)/ ..foo foo.. y $+{n} foo +/(?Pfoo) (?P=n)/ ..foo foo.. yM $+{n} foo miniperl cannot load Tie::Hash::NamedCapture /(?Pas) (\w+) (?P=as) (\w+)/ as easy as pie y $1-$2-$3 as-easy-pie #check that non identifiers as names are treated as the appropriate lookaround @@ -1325,10 +1325,10 @@ X(\w+)(?=\s)|X(\w+) Xab y [$1-$2] [-ab] (?|(?|(a)|(b))|(?|(c)|(d))) d y $1 d (.)(?|(.)(.)x|(.)d)(.) abcde y $1-$2-$3-$4-$5- b-c--e-- (\N)(?|(\N)(\N)x|(\N)d)(\N) abcde y $1-$2-$3-$4-$5- b-c--e-- -(?|(?x)) x y $+{foo} x -(?|(?x)|(?y)) x y $+{foo} x -(?|(?y)|(?x)) x y $+{foo} x -(?)(?|(?x)) x y $+{foo} x +(?|(?x)) x yM $+{foo} x miniperl cannot load Tie::Hash::NamedCapture +(?|(?x)|(?y)) x yM $+{foo} x miniperl cannot load Tie::Hash::NamedCapture +(?|(?y)|(?x)) x yM $+{foo} x miniperl cannot load Tie::Hash::NamedCapture +(?)(?|(?x)) x yM $+{foo} x miniperl cannot load Tie::Hash::NamedCapture #Bug #41492 (?(DEFINE)(?(?&B)+)(?a))(?&A) a y $& a diff --git a/t/re/regexp.t b/t/re/regexp.t index 56a77ae..5cb5186 100644 --- a/t/re/regexp.t +++ b/t/re/regexp.t @@ -14,6 +14,7 @@ # n expect no match # c expect an error # T the test is a TODO (can be combined with y/n/c) +# M skip test on miniperl (combine with y/n/c/T) # B test exposes a known bug in Perl, should be skipped # b test exposes a known bug in Perl, should be skipped if noamp # t test exposes a bug with threading, TODO if qr_embed_thr @@ -116,6 +117,7 @@ foreach (@tests) { $expect = $repl = '-' if $skip_amp and $input =~ /\$[&\`\']/; my $todo_qr = $qr_embed_thr && ($result =~ s/t//); my $skip = ($skip_amp ? ($result =~ s/B//i) : ($result =~ s/B//)); + ++$skip if $result =~ s/M// && !defined &DynaLoader::boot_DynaLoader; $reason = 'skipping $&' if $reason eq '' && $skip_amp; $result =~ s/B//i unless $skip; my $todo= $result =~ s/T// ? " # TODO" : ""; -- 2.7.4