summaryrefslogtreecommitdiffstats
path: root/tests
diff options
context:
space:
mode:
authorP. J. McDermott <pjm@nac.net>2012-09-08 21:54:37 (EDT)
committer P. J. McDermott <pjm@nac.net>2012-09-08 21:56:16 (EDT)
commitcda2e38a28e8236fc5d18fcbd817f2812aa161cd (patch)
treeb47726e37b66fc2308017be8b2e4a1fe6e7cc212 /tests
parent97cc51a5feff0b56e425d67e2239a3adbe886a79 (diff)
Implement functions common to all unit tests.
Diffstat (limited to 'tests')
-rw-r--r--tests/common.sh50
1 files changed, 50 insertions, 0 deletions
diff --git a/tests/common.sh b/tests/common.sh
new file mode 100644
index 0000000..55334e6
--- /dev/null
+++ b/tests/common.sh
@@ -0,0 +1,50 @@
+# opkbuild
+# tests/common
+# Common functions for unit tests.
+#
+# Copyright (C) 2012 Patrick "P. J." McDermott
+#
+# This program is free software: you can redistribute it and/or modify
+# it under the terms of the GNU General Public License as published by
+# the Free Software Foundation, either version 3 of the License, or
+# (at your option) any later version.
+#
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+# GNU General Public License for more details.
+#
+# You should have received a copy of the GNU General Public License
+# along with this program. If not, see <http://www.gnu.org/licenses/>.
+
+# The "common" module is used by all library modules.
+# We have to manually load the "common" module so we can use it in ob_use.
+. "${DESTDIR}/lib/common.sm"
+
+ob_use()
+{
+ _ob_local _obu_module
+
+ if [ "${#}" -eq 1 ]; then
+ _obu_module="${1}"
+ else
+ return $(_ob_return 125)
+ fi
+
+ _obu_module="${DESTDIR}/lib/${_obu_module}.sm"
+ if [ -r "${_obu_module}" ]; then
+ . "${_obu_module}"
+ else
+ return $(_ob_return 1)
+ fi
+
+ return $(_ob_return 0)
+}
+
+test_assert()
+{
+ if ! $(eval "${@}"); then
+ printf 'Assertion failed with exit status %d:\n %s\n' \
+ "${?}" "${@}"
+ fi
+}