Add interactive menu regression

This commit is contained in:
2026-04-17 11:09:25 +08:00
parent b5ae4a5668
commit 7b854c7a96
8 changed files with 114 additions and 18 deletions

View File

@@ -15,6 +15,17 @@ status_of() {
printf '%s\n' "${rc}"
}
prompt_tmp=$(mktemp)
trap 'rm -f "${prompt_tmp}"' EXIT
export IPF_TEST_INPUTS=$'first\nsecond\n'
prompt_input 'first prompt' '' >"${prompt_tmp}"
assert_eq 'first' "$(cat "${prompt_tmp}")" 'prompt_input should consume the first queued test input'
prompt_input 'second prompt' '' >"${prompt_tmp}"
assert_eq 'second' "$(cat "${prompt_tmp}")" 'prompt_input should consume subsequent queued test inputs'
assert_eq '' "${IPF_TEST_INPUTS}" 'prompt_input should drain queued test inputs in the current shell'
unset IPF_TEST_INPUTS
assert_status 0 "$(status_of validate_ipv4 '0.0.0.0')" 'validate_ipv4 should accept 0.0.0.0'
assert_status 0 "$(status_of validate_ipv4 '192.168.1.1')" 'validate_ipv4 should accept private address'
assert_status 0 "$(status_of validate_ipv4 '255.255.255.255')" 'validate_ipv4 should accept broadcast'