From ce5af6ac1c69602d0d7135b307dcca0c753d32f1 Mon Sep 17 00:00:00 2001 From: Patrick McDermott Date: Sun, 21 Apr 2019 21:41:59 -0400 Subject: itests/aux/common.sh: New file --- (limited to 'tests') 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 +# . + +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 +} -- cgit v0.9.1