X-Git-Url: http://git.vpit.fr/?a=blobdiff_plain;f=t%2F43-peep.t;h=2499656584a67793510fc50bd8b8ea0a502156be;hb=HEAD;hp=a91b5f4632b6abc237eba4ff86ef610912d9a33b;hpb=c2237219516974eb5eba3b1a71a4b1e49d72c4e0;p=perl%2Fmodules%2Fautovivification.git diff --git a/t/43-peep.t b/t/43-peep.t index a91b5f4..2499656 100644 --- a/t/43-peep.t +++ b/t/43-peep.t @@ -6,9 +6,9 @@ use warnings; use Test::More; use lib 't/lib'; -use VPIT::TestHelpers; +use VPIT::TestHelpers 'run_perl'; -plan tests => 11 + 1 * 2 + 5 * 3; +plan tests => 11 + 5 * 2 + 5 * 3; { my $desc = 'peephole optimization of conditionals'; @@ -113,8 +113,9 @@ plan tests => 11 + 1 * 2 + 5 * 3; } { + my $base_desc = 'peephole optimization of infinite'; my %infinite_tests = ( - 'peephole optimization of infinite for loops (RT #64435)' => <<' TESTCASE', + "$base_desc for loops (RT #64435)" => <<' TESTCASE', no autovivification; my $ret = 0; for (;;) { @@ -123,15 +124,48 @@ plan tests => 11 + 1 * 2 + 5 * 3; } exit $ret; TESTCASE + "$base_desc while loops" => <<' TESTCASE', + no autovivification; + my $ret = 0; + while (1) { + ++$ret; + exit $ret; + } + exit $ret; + TESTCASE + "$base_desc postfix while (RT #99458)" => <<' TESTCASE', + no autovivification; + my $ret = 0; + ++$ret && exit $ret while 1; + exit $ret; + TESTCASE + "$base_desc until loops" => <<' TESTCASE', + no autovivification; + my $ret = 0; + until (0) { + ++$ret; + exit $ret; + } + exit $ret; + TESTCASE + "$base_desc postfix until" => <<' TESTCASE', + no autovivification; + my $ret = 0; + ++$ret && exit $ret until 0; + exit $ret; + TESTCASE ); for my $desc (keys %infinite_tests) { my $code = $infinite_tests{$desc}; my $ret = run_perl $code; - my $stat = $ret & 255; - $ret >>= 8; - is $stat, 0, "$desc testcase did not crash"; - is $ret, 1, "$desc compiled fine"; + SKIP: { + skip RUN_PERL_FAILED() => 2 unless defined $ret; + my $stat = $ret & 255; + $ret >>= 8; + is $stat, 0, "$desc testcase did not crash"; + is $ret, 1, "$desc compiled fine"; + } } }