1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45
|
#!/bin/bash
fail=0
testcount=0
EXPECT_success() {
(( ++testcount ))
if ! "$@"; then
(( ++fail ))
printf 'expectation failed: did not succeed: %s\n' "$*" >&2
fi
}
EXPECT_failure() {
(( ++testcount ))
if "$@"; then
(( ++fail ))
printf 'expectation failed: did not fail: %s\n' "$*" >&2
fi
}
TEST_exit() {
local result
trap -- EXIT
(( fail == 0 )) && result=PASS || result=FAIL
printf '%s: %s\n' "$result" "$1"
exit $(( fail != 0 ))
}
ASSERT_streq() {
if [[ $1 != "$2" ]]; then
printf 'assertion failed [line %d]: [[ %s = "%s" ]]\n' "$BASH_LINENO" "$1" "$2" >&2
fi
}
TEST_start() {
trap "TEST_exit '$1'" EXIT
}
TEST_start "${0##*/test_}"
|