]> git.vpit.fr Git - perl/modules/autovivification.git/blobdiff - t/43-peep.t
Also mark the unstack ops in our peephole optimizer
[perl/modules/autovivification.git] / t / 43-peep.t
index a91b5f4632b6abc237eba4ff86ef610912d9a33b..88d2afd7082c8d77ddb33e4b7ebb21570b6b1512 100644 (file)
@@ -8,7 +8,7 @@ use Test::More;
 use lib 't/lib';
 use VPIT::TestHelpers;
 
-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,6 +124,36 @@ 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) {