Files
nucleic-brush/brush-shell/tests/cases/compat/compound_cmds/if.yaml
T

100 lines
2.0 KiB
YAML
Raw Normal View History

name: "Compound commands: if"
cases:
- name: "Basic if"
stdin: |
if false; then echo 1; else echo 2; fi
if false; then echo 3; elif false; then echo 4; else echo 5; fi
if true; then echo 6; else echo 7; fi
if false; then echo 8; elif true; then echo 10; else echo 11; fi
- name: "Multi-line if"
test_files:
- path: "script.sh"
contents: |
if false; then
echo 1
else
echo 2
fi
if false; then
echo 3
elif false; then
echo 4
else
echo 5
fi
if true; then
echo 6
else
echo 7
fi
if false; then
echo 8
elif true; then
echo 10
else
echo 11
fi
args: ["./script.sh"]
- name: "If with return in condition"
stdin: |
f() {
if return 42; then
echo "Then branch"
else
echo "Else branch"
fi
echo "After if"
}
f
echo "Exit code: $?"
- name: "If with exit in condition"
stdin: |
if exit 42; then
echo "Then branch"
else
echo "Else branch"
fi
echo "After if"
- name: "If with return in elif condition"
stdin: |
f() {
if false; then
echo "Then branch"
elif return 42; then
echo "Elif then branch"
else
echo "Else branch"
fi
echo "After if"
}
f
echo "Exit code: $?"
- name: "If with break in condition inside loop"
stdin: |
for i in 1 2 3; do
if break; then
echo "Then branch"
fi
echo "After if"
done
echo "After loop"
- name: "If with continue in condition inside loop"
stdin: |
for i in 1 2 3; do
echo "Iteration $i"
if continue; then
echo "Then branch"
fi
echo "After if"
done
echo "After loop"