最后活跃于 1 month ago

nuno 修订了这个 Gist 1 month ago. 转到此修订

1 file changed, 46 insertions

gistfile1.txt(文件已创建)

@@ -0,0 +1,46 @@
1 + function cmd::test::run_cmd() {
2 + local desc="$1" expected="${2:-}"
3 + shift 2
4 +
5 + local tmp exit_code
6 + tmp=$(mktemp)
7 +
8 + set +e
9 + timeout 30 "$WGCTL_BINARY" "$@" > "$tmp" 2>&1
10 + exit_code=$?
11 + set -e
12 +
13 + # Reset terminal color in case command output left ANSI state dirty
14 + printf "\033[0m" >&2
15 +
16 + if [[ $exit_code -eq 124 ]]; then
17 + test::warn "${desc} (timed out after 30s)"
18 + rm -f "$tmp"
19 + return 1
20 + fi
21 +
22 + local clean
23 + clean=$(cmd::test::_strip_ansi < "$tmp")
24 +
25 + if [[ $exit_code -ne 0 ]]; then
26 + local msg="${desc}"
27 + [[ -n "$expected" ]] && msg="${desc} (expected '${expected}', command failed)"
28 + test::fail "$msg"
29 + if [[ "${WGCTL_TEST_VERBOSE:-false}" == "true" ]]; then
30 + printf " Output: %s\n" "$(echo "$clean" | head -3 | tr '\n' ' ')"
31 + fi
32 + rm -f "$tmp"
33 + return 1
34 + fi
35 +
36 + if [[ -n "$expected" ]] && ! echo "$clean" | grep -qF "$expected"; then
37 + local actual
38 + actual=$(echo "$clean" | head -3 | tr '\n' ' ' | sed 's/ */ /g' | cut -c1-100)
39 + test::fail "${desc} (expected '${expected}', got: '${actual}')"
40 + rm -f "$tmp"
41 + return 1
42 + fi
43 +
44 + test::pass "$desc"
45 + rm -f "$tmp"
46 + }
上一页 下一页