summaryrefslogtreecommitdiffstats
path: root/test/units/assert.sh
diff options
context:
space:
mode:
Diffstat (limited to '')
-rwxr-xr-xtest/units/assert.sh58
1 files changed, 58 insertions, 0 deletions
diff --git a/test/units/assert.sh b/test/units/assert.sh
new file mode 100755
index 0000000..2f4d93a
--- /dev/null
+++ b/test/units/assert.sh
@@ -0,0 +1,58 @@
+#!/usr/bin/env bash
+# SPDX-License-Identifier: LGPL-2.1-or-later
+
+# utility functions for shell tests
+
+assert_true() {(
+ set +ex
+
+ local rc
+
+ "$@"
+ rc=$?
+ if [[ $rc -ne 0 ]]; then
+ echo "FAIL: command '$*' failed with exit code $rc" >&2
+ exit 1
+ fi
+)}
+
+
+assert_eq() {(
+ set +ex
+
+ if [[ "${1?}" != "${2?}" ]]; then
+ echo "FAIL: expected: '$2' actual: '$1'" >&2
+ exit 1
+ fi
+)}
+
+assert_in() {(
+ set +ex
+
+ if ! [[ "${2?}" =~ ${1?} ]]; then
+ echo "FAIL: '$1' not found in:" >&2
+ echo "$2" >&2
+ exit 1
+ fi
+)}
+
+assert_not_in() {(
+ set +ex
+
+ if [[ "${2?}" =~ ${1?} ]]; then
+ echo "FAIL: '$1' found in:" >&2
+ echo "$2" >&2
+ exit 1
+ fi
+)}
+
+assert_rc() {(
+ set +ex
+
+ local rc exp="${1?}"
+
+ shift
+ "$@"
+ rc=$?
+ assert_eq "$rc" "$exp"
+)}