From: Jarkko Hietaniemi Date: Wed, 20 Jun 2001 13:57:27 +0000 (+0000) Subject: Reinstate #10725 (with probe for alarm()). X-Git-Url: http://git.shadowcat.co.uk/gitweb/gitweb.cgi?a=commitdiff_plain;h=0dec986a3fdc9a52abdf7d1390936c6b308b8643;p=p5sagit%2Fp5-mst-13.2.git Reinstate #10725 (with probe for alarm()). p4raw-id: //depot/perl@10751 --- diff --git a/t/op/study.t b/t/op/study.t index ea3b366..a7f24f6 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,33 @@ 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 +{ + use Config; + if ($Config{d_alarm}) { + 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"; + } + } else { + for (25..26) { + print "ok $_ # Skip: no alarm\n"; + } + } +}