summaryrefslogtreecommitdiffstats
path: root/tests
diff options
context:
space:
mode:
authorPatrick McDermott <patrick.mcdermott@libiquity.com>2019-04-21 21:41:59 (EDT)
committer Patrick McDermott <patrick.mcdermott@libiquity.com>2019-04-21 21:41:59 (EDT)
commitce5af6ac1c69602d0d7135b307dcca0c753d32f1 (patch)
tree01728b89bfe03023a10bdc422cb6c94a2c297ebc /tests
parentca5344ff4205e572f7acad6abf0af7f4b80d9b73 (diff)
itests/aux/common.sh: New file
Diffstat (limited to 'tests')
-rw-r--r--tests/aux/common.sh71
1 files changed, 71 insertions, 0 deletions
diff --git a/tests/aux/common.sh b/tests/aux/common.sh
new file mode 100644
index 0000000..27db133
--- /dev/null
+++ b/tests/aux/common.sh
@@ -0,0 +1,71 @@
+# Common testsuite functions
+#
+# Copyright (C) 2019 Patrick McDermott
+#
+# This file is part of the ProteanOS Development Kit.
+#
+# The ProteanOS Development Kit 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.
+#
+# The ProteanOS Development Kit 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 the ProteanOS Development Kit. If not, see
+# <http://www.gnu.org/licenses/>.
+
+LF='
+'
+
+# is_diff() is based on cmd_is() from opkbuild 4.0.2, with test results passed
+# by argument and context added to the diagnostic output.
+is_diff()
+{
+ local description="${1}"
+ local got="${2}"
+ local exp="${3}"
+ shift 3
+ local ok=
+ local diag=
+ local eof=
+
+ ok=true
+ diag=''
+ exec 3<<-EOF
+ ${got}
+ EOF
+ exec 4<<-EOF
+ ${exp}
+ EOF
+ while :; do
+ eof=0
+ read -r got 0<&3 || eof=$((${eof} + 1))
+ read -r exp 0<&4 || eof=$((${eof} + 2))
+ [ ${eof} -eq 3 ] && break
+ if [ x"${got}" = x"${exp}" ]; then
+ diag="${diag} '${got}'${LF}"
+ else
+ ok=false
+ diag="${diag} got: '${got}'${LF}"
+ diag="${diag} expected: '${exp}'${LF}"
+ fi
+ done
+ exec 3<&-
+ exec 4<&-
+
+ if ${ok}; then
+ ok_ -- "${description}"
+ else
+ not_ok_ -- "${description}"
+ diag_ " Failed test '${description}'"
+ while IFS='' read -r diag; do
+ diag_ "${diag}"
+ done <<-EOF
+ ${diag}
+ EOF
+ fi
+}