diff --git a/tools/smokes/v2/profiles/quick/core/vm_loop_phi_multi_carriers.sh b/tools/smokes/v2/profiles/quick/core/vm_loop_phi_multi_carriers.sh new file mode 100644 index 00000000..d3431c65 --- /dev/null +++ b/tools/smokes/v2/profiles/quick/core/vm_loop_phi_multi_carriers.sh @@ -0,0 +1,17 @@ +#!/bin/bash +# vm_loop_phi_multi_carriers.sh — two loop carriers (fibonacci-like) + +source "$(dirname "$0")/../../../lib/test_runner.sh" +require_env || exit 2 +preflight_plugins || exit 2 + +test_multi_carriers_fib6() { + # Fibonacci with 6 steps starting a=0,b=1 => b ends at 13 + local code='i=0; a=0; b=1; loop(i<6) { t=a+b; a=b; b=t; i=i+1 }; print(b)' + local out + out=$(run_nyash_vm -c "$code") + [ "$out" = "13" ] +} + +run_test "loop_phi_multi_carriers" test_multi_carriers_fib6 + diff --git a/tools/smokes/v2/profiles/quick/core/vm_loop_phi_multi_continue.sh b/tools/smokes/v2/profiles/quick/core/vm_loop_phi_multi_continue.sh new file mode 100644 index 00000000..b8b51e9d --- /dev/null +++ b/tools/smokes/v2/profiles/quick/core/vm_loop_phi_multi_continue.sh @@ -0,0 +1,21 @@ +#!/bin/bash +# vm_loop_phi_multi_continue.sh — multi-continue paths with single loop carrier + +source "$(dirname "$0")/../../../lib/test_runner.sh" +require_env || exit 2 +preflight_plugins || exit 2 + +test_multi_continue_sum() { + # Expect: sum of odd numbers 1..9 except 7 -> 1+3+5+9 = 18 + local code='i=0; sum=0; loop(i<10) { + if i%2==0 { i=i+1; continue } + if i==7 { i=i+1; continue } + sum=sum+i; i=i+1 + }; print(sum)' + local out + out=$(run_nyash_vm -c "$code") + [ "$out" = "18" ] +} + +run_test "loop_phi_multi_continue" test_multi_continue_sum + diff --git a/tools/smokes/v2/profiles/quick/core/vm_nested_mixed_break_continue.sh b/tools/smokes/v2/profiles/quick/core/vm_nested_mixed_break_continue.sh new file mode 100644 index 00000000..54c5cd8a --- /dev/null +++ b/tools/smokes/v2/profiles/quick/core/vm_nested_mixed_break_continue.sh @@ -0,0 +1,24 @@ +#!/bin/bash +# vm_nested_mixed_break_continue.sh — nested loops with mixed break/continue + +source "$(dirname "$0")/../../../lib/test_runner.sh" +require_env || exit 2 +preflight_plugins || exit 2 + +test_nested_mixed() { + # Outer i=0..4, inner j=0..4, skip j==2 (continue), break inner entirely when i==3. + # Counts per i: 0->4, 1->4, 2->4, 3->0 (break), 4->4 => total 16 + local code='i=0; sum=0; loop(i<5) { + j=0; loop(j<5) { + if j==2 { j=j+1; continue } + if i==3 { break } + sum=sum+1; j=j+1 + }; i=i+1 + }; print(sum)' + local out + out=$(run_nyash_vm -c "$code") + [ "$out" = "16" ] +} + +run_test "nested_mixed_break_continue" test_nested_mixed +