90 lines
2.2 KiB
YAML
90 lines
2.2 KiB
YAML
name: "CLI tests"
|
|
cases:
|
|
- name: "Basic echo"
|
|
stdin: "echo hello world"
|
|
expected_exit_code: 0
|
|
expected_stdout: "hello world\n"
|
|
|
|
- name: "Exit code propagates"
|
|
stdin: "exit 42"
|
|
expected_exit_code: 42
|
|
# WASI 0.2's wasi-cli/exit interface only models success/failure, so any
|
|
# non-zero exit code is clamped to 1 by the host (e.g., wasmtime).
|
|
incompatible_platforms: ["wasi"]
|
|
|
|
- name: "Echo via args"
|
|
args:
|
|
- "-c"
|
|
- "echo from args"
|
|
expected_exit_code: 0
|
|
expected_stdout: "from args\n"
|
|
|
|
- name: "Version flag succeeds"
|
|
args:
|
|
- "--version"
|
|
expected_exit_code: 0
|
|
# Note: can't easily check stdout content as it varies
|
|
|
|
- name: "Help flag succeeds"
|
|
args:
|
|
- "--help"
|
|
expected_exit_code: 0
|
|
|
|
- name: "Invalid option fails"
|
|
args:
|
|
- "--unknown-argument-here"
|
|
expected_exit_code: 2
|
|
# Exit code 2 for argument parsing errors.
|
|
# WASI 0.2's wasi-cli/exit interface only models success/failure, so any
|
|
# non-zero exit code is clamped to 1 by the host (e.g., wasmtime).
|
|
incompatible_platforms: ["wasi"]
|
|
|
|
- name: "Explicit config file not found fails"
|
|
removed_default_args:
|
|
- "--no-config"
|
|
args:
|
|
- "--config"
|
|
- "/nonexistent/path/to/config.toml"
|
|
- "-c"
|
|
- "echo should_not_run"
|
|
expected_exit_code: 1
|
|
|
|
- name: "Explicit config file valid"
|
|
removed_default_args:
|
|
- "--no-config"
|
|
test_files:
|
|
- path: "config.toml"
|
|
contents: |
|
|
[ui]
|
|
syntax-highlighting = false
|
|
|
|
[experimental]
|
|
zsh-hooks = false
|
|
args:
|
|
- "--config"
|
|
- "config.toml"
|
|
- "-c"
|
|
- "echo config_loaded"
|
|
expected_exit_code: 0
|
|
expected_stdout: "config_loaded\n"
|
|
|
|
- name: "Config file with unknown fields succeeds"
|
|
removed_default_args:
|
|
- "--no-config"
|
|
test_files:
|
|
- path: "config.toml"
|
|
contents: |
|
|
[ui]
|
|
syntax-highlighting = true
|
|
future-setting = "ignored"
|
|
|
|
[unknown-section]
|
|
foo = "bar"
|
|
args:
|
|
- "--config"
|
|
- "config.toml"
|
|
- "-c"
|
|
- "echo forward_compat"
|
|
expected_exit_code: 0
|
|
expected_stdout: "forward_compat\n"
|