Gemini Gemtext blog engine and to HTML + Markdown converter
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 

59 lines
1.4 KiB

# Unit test for whether 2 given strings equal.
assert::equals () {
local -r result="$1"; shift
local -r expected="$1"; shift
local -r callee=${FUNCNAME[1]}
if [[ "$result" != "$expected" ]]; then
cat <<ERROR | log::pipe ERROR
In $callee expected
'$expected'
But got
'$result'
ERROR
exit 2
fi
log VERBOSE "Result in $callee as expected: '$expected'"
}
# Unit test for whether a given string is not empty.
assert::not_empty () {
local -r name="$1"; shift
local -r content="$1"; shift
local -r callee=${FUNCNAME[1]}
if [ -z "$content" ]; then
log ERROR "In $callee expected '$name' not to be empty!"
exit 2
fi
log VERBOSE "Result in $callee as expected not empty"
}
# Unit test for whether a given string matches a regex.
assert::matches () {
local -r name="$1"; shift
local -r content="$1"; shift
local -r regex="$1"; shift
local -r callee=${FUNCNAME[1]}
if ! $GREP -q -E "$regex" <<< "$content"; then
log ERROR "In $callee expected '$name' to match '$regex'"
exit 2
fi
log VERBOSE "Matching in $callee as expected"
}
# Checks if all the Bash scripts here are good.
assert::shellcheck () {
set -e
shellcheck \
--norc \
--external-sources \
--check-sourced \
--exclude=SC2155,SC2010,SC2154,SC1090,SC2012,SC2016 \
./"$0"
set +e
}