Merge nucleic/sleek-thistle-egret-fyej into dev
This commit is contained in:
@@ -0,0 +1,110 @@
|
||||
name: "Compound commands: arithmetic for"
|
||||
cases:
|
||||
- name: "Single-line arithmetic for loop"
|
||||
stdin: |
|
||||
for ((i = 0; i < 5; i++)); do echo $i; done
|
||||
echo "Result: $?"
|
||||
|
||||
- name: "Arithmetic for loop without separator"
|
||||
stdin: |
|
||||
for ((i = 0; i < 5; i++)) do echo $i; done
|
||||
echo "Result: $?"
|
||||
|
||||
- name: "Arithmetic for loop with empty condition"
|
||||
stdin: |
|
||||
for (( ; ; )); do
|
||||
echo "In loop; status: $?"
|
||||
break
|
||||
done
|
||||
echo "Result: $?"
|
||||
|
||||
- name: "Arithmetic for loop with ;;"
|
||||
known_failure: true
|
||||
stdin: |
|
||||
for ((;;)); do
|
||||
echo "In loop; status: $?"
|
||||
break
|
||||
done
|
||||
echo "Result: $?"
|
||||
|
||||
- name: "Break in arithmetic for loop"
|
||||
stdin: |
|
||||
for ((i = 0; i < 5; i++)); do
|
||||
echo $i
|
||||
break
|
||||
done
|
||||
echo "Result: $?"
|
||||
|
||||
- name: "Continue in arithmetic for loop"
|
||||
stdin: |
|
||||
for ((i = 0; i < 5; i++)); do
|
||||
continue
|
||||
echo "Should not print"
|
||||
done
|
||||
echo "Result: $?"
|
||||
|
||||
- name: "Arithmetic for with break in condition inside outer loop"
|
||||
stdin: |
|
||||
for j in 1 2 3; do
|
||||
echo "Outer iteration $j"
|
||||
for ((i = 0; break; i++)); do
|
||||
echo "Inner body"
|
||||
done
|
||||
echo "After inner for"
|
||||
done
|
||||
echo "After outer loop"
|
||||
|
||||
- name: "Arithmetic for with continue in condition inside outer loop"
|
||||
stdin: |
|
||||
for j in 1 2 3; do
|
||||
echo "Outer iteration $j"
|
||||
for ((i = 0; continue; i++)); do
|
||||
echo "Inner body"
|
||||
done
|
||||
echo "After inner for"
|
||||
done
|
||||
echo "After outer loop"
|
||||
|
||||
- name: "Arithmetic for with return in body"
|
||||
stdin: |
|
||||
f() {
|
||||
for ((i = 0; i < 5; i++)); do
|
||||
echo "Iteration $i"
|
||||
if [ $i -eq 2 ]; then
|
||||
return 42
|
||||
fi
|
||||
done
|
||||
echo "After for"
|
||||
}
|
||||
f
|
||||
echo "Exit code: $?"
|
||||
|
||||
- name: "Arithmetic for with exit in body"
|
||||
stdin: |
|
||||
for ((i = 0; i < 5; i++)); do
|
||||
echo "Iteration $i"
|
||||
if [ $i -eq 2 ]; then
|
||||
exit 42
|
||||
fi
|
||||
done
|
||||
echo "After for"
|
||||
|
||||
- name: "Arithmetic for with alternate syntax"
|
||||
stdin: |
|
||||
for ((i = 0; i < 5; i++)) {
|
||||
echo "Iteration $i"
|
||||
}
|
||||
|
||||
- name: "Arithmetic for with alternate syntax (one line)"
|
||||
stdin: |
|
||||
for ((i = 0; i < 5; i++)) { echo "Iteration $i"; }
|
||||
|
||||
- name: "Arithmetic for loop with nameref"
|
||||
known_failure: true
|
||||
stdin: |
|
||||
target=0
|
||||
declare -n ref=target
|
||||
for ((ref=1; ref<=3; ref++)); do
|
||||
echo "ref=$ref target=$target"
|
||||
done
|
||||
echo "final target=$target"
|
||||
Reference in New Issue
Block a user