Surface runtime health in menu
This commit is contained in:
@@ -40,6 +40,27 @@ export NETFILTER_PERSISTENT_BIN="${ROOT_DIR}/tests/mocks/persist-mock.sh"
|
||||
export PERSIST_MOCK_LOG="${TMP_DIR}/persist.log"
|
||||
export IPF_SKIP_ENV_CHECK=1
|
||||
export IPF_FORCE_PLAIN_UI=1
|
||||
|
||||
# shellcheck source=lib/common.sh
|
||||
source "${ROOT_DIR}/lib/common.sh"
|
||||
# shellcheck source=lib/storage.sh
|
||||
source "${ROOT_DIR}/lib/storage.sh"
|
||||
# shellcheck source=lib/persist.sh
|
||||
source "${ROOT_DIR}/lib/persist.sh"
|
||||
# shellcheck source=lib/iptables_ops.sh
|
||||
source "${ROOT_DIR}/lib/iptables_ops.sh"
|
||||
# shellcheck source=lib/rules_mgr.sh
|
||||
source "${ROOT_DIR}/lib/rules_mgr.sh"
|
||||
|
||||
reset_mock_state() {
|
||||
rm -rf "${IPTABLES_MOCK_DIR}" "${IPF_STORAGE_DIR}"
|
||||
mkdir -p "${IPTABLES_MOCK_DIR}" "${IPF_STORAGE_DIR}"
|
||||
: >"${IPTABLES_MOCK_LOG}"
|
||||
: >"${PERSIST_MOCK_LOG}"
|
||||
storage_init
|
||||
}
|
||||
|
||||
reset_mock_state
|
||||
export IPF_TEST_INPUTS=$'4\n2\n1\n8080\n1\n127.0.0.1\n80\ninteractive web\ny\n5\n1\n3\n1\ny\n0\n'
|
||||
|
||||
output=$("${ROOT_DIR}/iptables-forward.sh" 2>&1)
|
||||
@@ -59,4 +80,17 @@ assert_eq '4' "$(grep -Ec ' -A ' "${IPTABLES_MOCK_LOG}")" 'interactive add flow
|
||||
assert_eq '4' "$(grep -Ec ' -D ' "${IPTABLES_MOCK_LOG}")" 'interactive delete should emit four delete commands'
|
||||
assert_eq '3' "$(grep -Ec 'persist-mock\.sh save' "${PERSIST_MOCK_LOG}")" 'interactive add/menu-save/delete flow should persist three times'
|
||||
|
||||
reset_mock_state
|
||||
uuid=$(cmd_add_batch tcp 8081 127.0.0.1 81 4 'degraded menu' 2>/dev/null)
|
||||
"${IPTABLES_BIN}" -D FORWARD \
|
||||
-p tcp -s 127.0.0.1 --sport 81 \
|
||||
-m conntrack --ctstate ESTABLISHED,RELATED \
|
||||
-j ACCEPT \
|
||||
-m comment --comment "MGMT:${uuid}"
|
||||
export IPF_TEST_INPUTS=$'0\n'
|
||||
|
||||
degraded_output=$("${ROOT_DIR}/iptables-forward.sh" 2>&1)
|
||||
assert_contains "${degraded_output}" '运行态: [!]' 'main menu should surface degraded runtime status'
|
||||
assert_contains "${degraded_output}" '规则数: 1' 'main menu should still show current rule count'
|
||||
|
||||
pass 'test_interactive.sh'
|
||||
|
||||
Reference in New Issue
Block a user