diff options
author | Patrick 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) |
commit | ce5af6ac1c69602d0d7135b307dcca0c753d32f1 (patch) | |
tree | 01728b89bfe03023a10bdc422cb6c94a2c297ebc /tests | |
parent | ca5344ff4205e572f7acad6abf0af7f4b80d9b73 (diff) |
itests/aux/common.sh: New file
Diffstat (limited to 'tests')
-rw-r--r-- | tests/aux/common.sh | 71 |
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 +} |