Re: [ID 20010618.006] some end-anchored regexps hang when using study
Hugo van der Sanden [Tue, 19 Jun 2001 12:37:30 +0000 (13:37 +0100)]
Message-Id: <200106191137.MAA15185@crypt.compulink.co.uk>

p4raw-id: //depot/perl@10725

t/op/study.t

index ea3b366..d08b890 100755 (executable)
@@ -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";
+    }
+}