31 lines
1.4 KiB
Bash
Executable File
31 lines
1.4 KiB
Bash
Executable File
#!/usr/bin/env bash
|
|
set -Eeuo pipefail
|
|
command_name=${0##*/}
|
|
: "${TEST_MOCK_LOG:?TEST_MOCK_LOG must identify the isolated test log}"
|
|
allow_empty=${MOCK_ALLOW_EMPTY_INVOCATION:-}
|
|
printf '%q' "$command_name" >>"$TEST_MOCK_LOG"; for argument in "$@"; do printf ' %q' "$argument" >>"$TEST_MOCK_LOG"; done; printf '\n' >>"$TEST_MOCK_LOG"
|
|
if [[ -n "$allow_empty" && "$allow_empty" != "$command_name" ]]; then
|
|
printf 'Unexpected mock invocation: %s does not allow empty calls for %s\n' "$command_name" "$allow_empty" >&2
|
|
exit 99
|
|
fi
|
|
if [[ $# == 0 && "$allow_empty" == "$command_name" ]]; then
|
|
exit 0
|
|
fi
|
|
if [[ $# == 4 && $1 == link && $2 == show && $3 == dev ]]; then
|
|
[[ $4 == ${WG_MOCK_INTERFACE:-wg0} ]] || exit 99
|
|
[[ ${DIAG_IP_LINK_FAIL:-0} == 1 ]] && exit 98
|
|
printf '%s\n' "${DIAG_IP_LINK_OUTPUT:-$4: <UP> mtu 1420}"; exit 0
|
|
fi
|
|
if [[ $# == 5 && $1 == -o && $2 == addr && $3 == show && $4 == dev ]]; then
|
|
[[ $5 == ${WG_MOCK_INTERFACE:-wg0} ]] || exit 99
|
|
[[ ${DIAG_IP_ADDR_FAIL:-0} == 1 ]] && exit 98
|
|
printf '%s\n' "${DIAG_IP_ADDR_OUTPUT:-}"; exit 0
|
|
fi
|
|
if [[ $# == 6 && $1 == -o && $2 == route && $3 == show && $5 == dev ]]; then
|
|
[[ $6 == ${WG_MOCK_INTERFACE:-wg0} ]] || exit 99
|
|
[[ ${DIAG_IP_ROUTE_FAIL:-0} == 1 ]] && exit 98
|
|
printf '%s\n' "${DIAG_IP_ROUTE_OUTPUT:-}"; exit 0
|
|
fi
|
|
printf 'Unexpected mock invocation: %s received arguments\n' "$command_name" >&2
|
|
exit 99
|