133 lines
3.1 KiB
YAML
133 lines
3.1 KiB
YAML
name: "Basic tests"
|
|
cases:
|
|
- name: "Basic -c usage"
|
|
args:
|
|
- "-c"
|
|
- "echo hi"
|
|
|
|
- name: "Basic -c usage: output"
|
|
stdin: |
|
|
# Capture raw output of command
|
|
raw_output=$($0 -c 'echo hi')
|
|
|
|
# Dump raw output as characters
|
|
echo "[Character output]"
|
|
for ((i = 0; i < ${#raw_output}; i++)); do
|
|
char="${raw_output:i:1}"
|
|
printf '%c' "$char"
|
|
done
|
|
printf '\n\n'
|
|
|
|
# Dump raw output as hex
|
|
echo "[Hex output]"
|
|
for ((i = 0; i < ${#raw_output}; i++)); do
|
|
if (( i % 16 == 0 )); then
|
|
printf '%04x: ' "$i"
|
|
fi
|
|
|
|
char="${raw_output:i:1}"
|
|
printf '%02x ' "'$char"
|
|
|
|
if (( (i + 1) % 16 == 0 )); then
|
|
printf '\n'
|
|
fi
|
|
done
|
|
|
|
printf '\n'
|
|
|
|
- name: "Basic stdin usage"
|
|
stdin: |
|
|
echo hi
|
|
|
|
- name: "Basic sequence"
|
|
stdin: |
|
|
echo 'hi'; echo 'there'
|
|
|
|
- name: "Basic -s usage with -c"
|
|
args: ["-s", "-c", "echo hi1 hi2"]
|
|
stdin: |
|
|
[[ $(type -P $0) == $(type -P $BASH) ]] && echo '$0 matches $BASH'
|
|
echo "\$1: $1"
|
|
echo "\$2: $2"
|
|
echo "\$3: $3"
|
|
|
|
- name: "Basic -s usage with positional args"
|
|
args: ["-s", "arg1", "arg2", "arg3"]
|
|
stdin: |
|
|
[[ $(type -P $0) == $(type -P $BASH) ]] && echo '$0 matches $BASH'
|
|
echo "\$1: $1"
|
|
echo "\$2: $2"
|
|
echo "\$3: $3"
|
|
|
|
- name: "Basic -i usage with commands via stdin"
|
|
args: ["-i"]
|
|
ignore_stderr: true
|
|
stdin: |
|
|
echo hi
|
|
echo there
|
|
|
|
- name: "Basic script execution"
|
|
test_files:
|
|
- path: "script.sh"
|
|
contents: |
|
|
echo "ARGS: $@"
|
|
exit 22
|
|
args: ["./script.sh", 1, 2, 3]
|
|
|
|
- name: "Passing option-like arg to script"
|
|
test_files:
|
|
- path: "script.sh"
|
|
contents: |
|
|
echo "ARGS: $@"
|
|
exit 22
|
|
args: ["./script.sh", "-v"]
|
|
|
|
- name: "Ensure ~ is resolvable"
|
|
stdin: "test ~"
|
|
|
|
- name: "Rc file loading (interactive)"
|
|
ignore_stderr: true
|
|
removed_default_args: ["--norc"] # Need to cancel this out so we can override
|
|
args: ["--rcfile", "testrc", "-i"]
|
|
env:
|
|
PS1: ""
|
|
test_files:
|
|
- path: "testrc"
|
|
contents: |
|
|
echo "Executing in rc file"
|
|
stdin: |
|
|
echo "Executing in main script body"
|
|
|
|
- name: "Rc file loading (non-interactive)"
|
|
ignore_stderr: true
|
|
removed_default_args: ["--norc"] # Need to cancel this out so we can override
|
|
args: ["--rcfile", "testrc"]
|
|
env:
|
|
PS1: ""
|
|
test_files:
|
|
- path: "testrc"
|
|
contents: |
|
|
echo "Executing in rc file"
|
|
stdin: |
|
|
echo "Executing in main script body"
|
|
|
|
- name: "Missing rc file"
|
|
ignore_stderr: true
|
|
removed_default_args: ["--norc"] # Need to cancel this out so we can override
|
|
args: ["--rcfile", "non-existent-file", "-i"]
|
|
env:
|
|
PS1: ""
|
|
stdin: |
|
|
echo "Executing in main script body"
|
|
|
|
- name: "Unknown option"
|
|
ignore_stderr: true
|
|
args: ["--unknown-option", "-c", "echo hi"]
|
|
|
|
- name: "-f on the command line"
|
|
args: ["-f"]
|
|
stdin: |
|
|
touch abc
|
|
touch abd
|
|
echo a*
|