update
This commit is contained in:
@@ -0,0 +1,48 @@
|
||||
#!/usr/bin/env bash
|
||||
|
||||
TEST_ASSERTIONS=0
|
||||
TEST_FAILURES=0
|
||||
|
||||
test_fail() {
|
||||
printf 'FAIL: %s\n' "$1" >&2
|
||||
(( TEST_FAILURES += 1 ))
|
||||
}
|
||||
|
||||
assert_equal() {
|
||||
local expected="$1"
|
||||
local actual="$2"
|
||||
local label="$3"
|
||||
|
||||
(( TEST_ASSERTIONS += 1 ))
|
||||
if [[ "$actual" != "$expected" ]]; then
|
||||
test_fail "${label}: expected '${expected}', received '${actual}'"
|
||||
fi
|
||||
}
|
||||
|
||||
assert_success() {
|
||||
local label="$1"
|
||||
shift
|
||||
|
||||
(( TEST_ASSERTIONS += 1 ))
|
||||
"$@" || test_fail "${label}: expected success"
|
||||
}
|
||||
|
||||
assert_failure() {
|
||||
local label="$1"
|
||||
shift
|
||||
|
||||
(( TEST_ASSERTIONS += 1 ))
|
||||
if "$@"; then
|
||||
test_fail "${label}: expected failure"
|
||||
fi
|
||||
}
|
||||
|
||||
finish_tests() {
|
||||
if (( TEST_FAILURES > 0 )); then
|
||||
printf '%d assertion(s), %d failure(s)\n' \
|
||||
"$TEST_ASSERTIONS" "$TEST_FAILURES" >&2
|
||||
return 1
|
||||
fi
|
||||
|
||||
printf '%d assertion(s) passed\n' "$TEST_ASSERTIONS"
|
||||
}
|
||||
Reference in New Issue
Block a user