do-while break/continue UTs

This commit is contained in:
John Kerl 2016-05-26 23:00:30 -07:00
parent 79e4043110
commit c7b14dfbbc
3 changed files with 308 additions and 11 deletions

View file

@ -16390,6 +16390,202 @@ zee wye 8 0.5985540091064224 0.976181385699006 8
hat wye 9 0.03144187646093577 0.7495507603507059 9
pan wye 10 0.5026260055412137 0.9526183602969864 10
mlr --opprint --from ./reg_test/input/abixy put
$j = NR;
do {
$k = NR;
$j += 1;
break;
do {
$k += 1
} while ($k < 7);
} while ($j < 4);
a b i x y j k
pan pan 1 0.3467901443380824 0.7268028627434533 2 1
eks pan 2 0.7586799647899636 0.5221511083334797 3 2
wye wye 3 0.20460330576630303 0.33831852551664776 4 3
eks wye 4 0.38139939387114097 0.13418874328430463 5 4
wye pan 5 0.5732889198020006 0.8636244699032729 6 5
zee pan 6 0.5271261600918548 0.49322128674835697 7 6
eks zee 7 0.6117840605678454 0.1878849191181694 8 7
zee wye 8 0.5985540091064224 0.976181385699006 9 8
hat wye 9 0.03144187646093577 0.7495507603507059 10 9
pan wye 10 0.5026260055412137 0.9526183602969864 11 10
mlr --opprint --from ./reg_test/input/abixy put
$j = NR;
do {
$k = NR;
$j += 1;
continue;
do {
$k += 1
} while ($k < 7);
} while ($j < 4);
a b i x y j k
pan pan 1 0.3467901443380824 0.7268028627434533 4 1
eks pan 2 0.7586799647899636 0.5221511083334797 4 2
wye wye 3 0.20460330576630303 0.33831852551664776 4 3
eks wye 4 0.38139939387114097 0.13418874328430463 5 4
wye pan 5 0.5732889198020006 0.8636244699032729 6 5
zee pan 6 0.5271261600918548 0.49322128674835697 7 6
eks zee 7 0.6117840605678454 0.1878849191181694 8 7
zee wye 8 0.5985540091064224 0.976181385699006 9 8
hat wye 9 0.03144187646093577 0.7495507603507059 10 9
pan wye 10 0.5026260055412137 0.9526183602969864 11 10
mlr --opprint --from ./reg_test/input/abixy put
$j = NR;
do {
$k = NR;
$j += 1;
do {
$k += 1;
break;
$k += 10000;
} while ($k < 7);
} while ($j < 4);
a b i x y j k
pan pan 1 0.3467901443380824 0.7268028627434533 4 2
eks pan 2 0.7586799647899636 0.5221511083334797 4 3
wye wye 3 0.20460330576630303 0.33831852551664776 4 4
eks wye 4 0.38139939387114097 0.13418874328430463 5 5
wye pan 5 0.5732889198020006 0.8636244699032729 6 6
zee pan 6 0.5271261600918548 0.49322128674835697 7 7
eks zee 7 0.6117840605678454 0.1878849191181694 8 8
zee wye 8 0.5985540091064224 0.976181385699006 9 9
hat wye 9 0.03144187646093577 0.7495507603507059 10 10
pan wye 10 0.5026260055412137 0.9526183602969864 11 11
mlr --opprint --from ./reg_test/input/abixy put
$j = NR;
do {
$k = NR;
$j += 1;
do {
$k += 1;
continue;
$k += 10000;
} while ($k < 7);
} while ($j < 4);
a b i x y j k
pan pan 1 0.3467901443380824 0.7268028627434533 4 7
eks pan 2 0.7586799647899636 0.5221511083334797 4 7
wye wye 3 0.20460330576630303 0.33831852551664776 4 7
eks wye 4 0.38139939387114097 0.13418874328430463 5 7
wye pan 5 0.5732889198020006 0.8636244699032729 6 7
zee pan 6 0.5271261600918548 0.49322128674835697 7 7
eks zee 7 0.6117840605678454 0.1878849191181694 8 8
zee wye 8 0.5985540091064224 0.976181385699006 9 9
hat wye 9 0.03144187646093577 0.7495507603507059 10 10
pan wye 10 0.5026260055412137 0.9526183602969864 11 11
mlr --opprint --from ./reg_test/input/abixy put
$j = NR;
do {
$k = NR;
$j += 1;
if (NR == 2 || NR == 8) {
break;
}
do {
$k += 1
} while ($k < 7);
} while ($j < 4);
a b i x y j k
pan pan 1 0.3467901443380824 0.7268028627434533 4 7
eks pan 2 0.7586799647899636 0.5221511083334797 3 2
wye wye 3 0.20460330576630303 0.33831852551664776 4 7
eks wye 4 0.38139939387114097 0.13418874328430463 5 7
wye pan 5 0.5732889198020006 0.8636244699032729 6 7
zee pan 6 0.5271261600918548 0.49322128674835697 7 7
eks zee 7 0.6117840605678454 0.1878849191181694 8 8
zee wye 8 0.5985540091064224 0.976181385699006 9 8
hat wye 9 0.03144187646093577 0.7495507603507059 10 10
pan wye 10 0.5026260055412137 0.9526183602969864 11 11
mlr --opprint --from ./reg_test/input/abixy put
$j = NR;
do {
$k = NR;
$j += 1;
if (NR == 2 || NR == 8) {
continue;
}
do {
$k += 1
} while ($k < 7);
} while ($j < 4);
a b i x y j k
pan pan 1 0.3467901443380824 0.7268028627434533 4 7
eks pan 2 0.7586799647899636 0.5221511083334797 4 2
wye wye 3 0.20460330576630303 0.33831852551664776 4 7
eks wye 4 0.38139939387114097 0.13418874328430463 5 7
wye pan 5 0.5732889198020006 0.8636244699032729 6 7
zee pan 6 0.5271261600918548 0.49322128674835697 7 7
eks zee 7 0.6117840605678454 0.1878849191181694 8 8
zee wye 8 0.5985540091064224 0.976181385699006 9 8
hat wye 9 0.03144187646093577 0.7495507603507059 10 10
pan wye 10 0.5026260055412137 0.9526183602969864 11 11
mlr --opprint --from ./reg_test/input/abixy put
$j = NR;
do {
$k = NR;
$j += 1;
do {
$k += 1;
if (NR == 2 || NR == 8) {
break;
}
$k += 10000;
} while ($k < 7);
} while ($j < 4);
a b i x y j k
pan pan 1 0.3467901443380824 0.7268028627434533 4 10002
eks pan 2 0.7586799647899636 0.5221511083334797 4 3
wye wye 3 0.20460330576630303 0.33831852551664776 4 10004
eks wye 4 0.38139939387114097 0.13418874328430463 5 10005
wye pan 5 0.5732889198020006 0.8636244699032729 6 10006
zee pan 6 0.5271261600918548 0.49322128674835697 7 10007
eks zee 7 0.6117840605678454 0.1878849191181694 8 10008
zee wye 8 0.5985540091064224 0.976181385699006 9 9
hat wye 9 0.03144187646093577 0.7495507603507059 10 10010
pan wye 10 0.5026260055412137 0.9526183602969864 11 10011
mlr --opprint --from ./reg_test/input/abixy put
$j = NR;
do {
$k = NR;
$j += 1;
do {
$k += 1;
if (NR == 2 || NR == 8) {
continue;
}
$k += 10000;
} while ($k < 7);
} while ($j < 4);
a b i x y j k
pan pan 1 0.3467901443380824 0.7268028627434533 4 10002
eks pan 2 0.7586799647899636 0.5221511083334797 4 7
wye wye 3 0.20460330576630303 0.33831852551664776 4 10004
eks wye 4 0.38139939387114097 0.13418874328430463 5 10005
wye pan 5 0.5732889198020006 0.8636244699032729 6 10006
zee pan 6 0.5271261600918548 0.49322128674835697 7 10007
eks zee 7 0.6117840605678454 0.1878849191181694 8 10008
zee wye 8 0.5985540091064224 0.976181385699006 9 9
hat wye 9 0.03144187646093577 0.7495507603507059 10 10010
pan wye 10 0.5026260055412137 0.9526183602969864 11 10011
================================================================
DSL BREAK/CONTINUE IN SINGLE FOR-SREC

View file

@ -1641,8 +1641,6 @@ announce DSL WHILE/DO-WHILE LOOPS
run_mlr put -v 'while($i < 5) { $i += 1}' $indir/abixy
run_mlr put -v 'do {$i += 1} while($i < 5)' $indir/abixy
# xxx test break & continue when they are operable
# ----------------------------------------------------------------
announce DSL FOR-SREC LOOPS
@ -1674,8 +1672,6 @@ run_mlr --from $indir/abixy put -S -v '
}
}'
# xxx test break & continue when they are operable
# ----------------------------------------------------------------
announce DSL FOR-OOSVAR LOOPS
@ -1918,6 +1914,117 @@ run_mlr --opprint --from $indir/abixy put '
}
'
run_mlr --opprint --from $indir/abixy put '
$j = NR;
do {
$k = NR;
$j += 1;
break;
do {
$k += 1
} while ($k < 7);
} while ($j < 4);
'
run_mlr --opprint --from $indir/abixy put '
$j = NR;
do {
$k = NR;
$j += 1;
continue;
do {
$k += 1
} while ($k < 7);
} while ($j < 4);
'
run_mlr --opprint --from $indir/abixy put '
$j = NR;
do {
$k = NR;
$j += 1;
do {
$k += 1;
break;
$k += 10000;
} while ($k < 7);
} while ($j < 4);
'
run_mlr --opprint --from $indir/abixy put '
$j = NR;
do {
$k = NR;
$j += 1;
do {
$k += 1;
continue;
$k += 10000;
} while ($k < 7);
} while ($j < 4);
'
run_mlr --opprint --from $indir/abixy put '
$j = NR;
do {
$k = NR;
$j += 1;
if (NR == 2 || NR == 8) {
break;
}
do {
$k += 1
} while ($k < 7);
} while ($j < 4);
'
run_mlr --opprint --from $indir/abixy put '
$j = NR;
do {
$k = NR;
$j += 1;
if (NR == 2 || NR == 8) {
continue;
}
do {
$k += 1
} while ($k < 7);
} while ($j < 4);
'
run_mlr --opprint --from $indir/abixy put '
$j = NR;
do {
$k = NR;
$j += 1;
do {
$k += 1;
if (NR == 2 || NR == 8) {
break;
}
$k += 10000;
} while ($k < 7);
} while ($j < 4);
'
run_mlr --opprint --from $indir/abixy put '
$j = NR;
do {
$k = NR;
$j += 1;
do {
$k += 1;
if (NR == 2 || NR == 8) {
continue;
}
$k += 10000;
} while ($k < 7);
} while ($j < 4);
'
# ----------------------------------------------------------------
announce DSL BREAK/CONTINUE IN SINGLE FOR-SREC
@ -2073,8 +2180,6 @@ run_mlr --opprint --from $indir/abixy put -q '
}
'
# ----------------------------------------------------------------
run_mlr --opprint --from $indir/abixy put -q '
for (k1, v1 in $*) {
@output1[NR][k1] = "before";
@ -2145,8 +2250,6 @@ run_mlr --opprint --from $indir/abixy put -q '
'
# ----------------------------------------------------------------
run_mlr --opprint --from $indir/abixy put -q '
for (k1, v1 in $*) {
@output1[NR][k1] = "before";
@ -2219,7 +2322,6 @@ run_mlr --opprint --from $indir/abixy put -q '
}
'
# ----------------------------------------------------------------
run_mlr --opprint --from $indir/abixy put -q '
for (k1, v1 in $*) {
@ -2581,7 +2683,6 @@ run_mlr --opprint --from $indir/abixy put -q '
'
# ----------------------------------------------------------------
announce DSL BREAK/CONTINUE IN NESTED FOR-OOSVAR

View file

@ -16,7 +16,7 @@ TOP-OF-LIST SUMMARY
* eliminate the need for semicolon after curly brace. for now, highlighted faqent.
* CST-build-time invalidations:
! propagate-back to caller
! propagate back to caller
! filter is oosless
- $stuff inside begin/end
- break/continue outside for/while/do-while