From: Hugo van der Sanden Date: Tue, 19 Jun 2001 12:37:30 +0000 (+0100) Subject: Re: [ID 20010618.006] some end-anchored regexps hang when using study X-Git-Url: http://git.shadowcat.co.uk/gitweb/gitweb.cgi?a=commitdiff_plain;h=4870b8cdda36a1b698c7fb131f1c51662c718f74;p=p5sagit%2Fp5-mst-13.2.git Re: [ID 20010618.006] some end-anchored regexps hang when using study Message-Id: <200106191137.MAA15185@crypt.compulink.co.uk> p4raw-id: //depot/perl@10725 --- diff --git a/t/op/study.t b/t/op/study.t index ea3b366..d08b890 100755 --- a/t/op/study.t +++ b/t/op/study.t @@ -2,7 +2,7 @@ # $RCSfile: study.t,v $$Revision: 4.1 $$Date: 92/08/07 18:28:30 $ -print "1..24\n"; +print "1..26\n"; $x = "abc\ndef\n"; study($x); @@ -67,3 +67,26 @@ if (/^$_$/) {print "ok 23\n";} else {print "not ok 23\n";} $* = 1; # test 3 only tested the optimized version--this one is for real if ("ab\ncd\n" =~ /^cd/) {print "ok 24\n";} else {print "not ok 24\n";} + +# [ID 20010618.006] these two may loop +{ + local $SIG{ALRM} = sub { die "timeout\n" }; + $_ = 'FGF'; + study; + my $ok = eval { alarm(2); my $match = /G.F$/; alarm(0); !$match }; + if ($ok && !$@) { + print "ok 25\n"; + } elsif ($@) { + print "not ok 25\t# $@"; + } else { + print "not ok 25\t# should not match\n"; + } + $ok = eval { alarm(2); my $match = /[F]F$/; alarm(0); !$match }; + if ($ok && !$@) { + print "ok 26\n"; + } elsif ($@) { + print "not ok 26\t# $@"; + } else { + print "not ok 26\t# should not match\n"; + } +}