diff options
Diffstat (limited to 'tests/aux')
-rw-r--r-- | tests/aux/common.sh | 69 |
1 files changed, 69 insertions, 0 deletions
diff --git a/tests/aux/common.sh b/tests/aux/common.sh new file mode 100644 index 0000000..9f9edcc --- /dev/null +++ b/tests/aux/common.sh @@ -0,0 +1,69 @@ +# Functions common to tests +# +# Copyright (C) 2018, 2019 Patrick McDermott +# +# This file is part of opkg-opk. +# +# opkg-opk 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. +# +# opkg-opk 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 opkg-opk. If not, see <http://www.gnu.org/licenses/>. + +is() +{ + local description="${1}" + local got="${2}" + local expected="${3}" + shift 3 + + if [ "x${got}" = "x${expected}" ]; then + ok_ -- "${description}" + else + not_ok_ -- "${description}" + diag_ " Failed test '${description}'" + diag_ " got: '${got}'" + diag_ " expected: '${expected}'" + fi +} + +cmd_is() +{ + local description="${1}" + shift 1 + local ok= + local eof= + local got= + local exp= + + ok=true + exec 3<<-EOF + $("${@}") + EOF + while :; do + eof=0 + IFS='' read -r got <&3 || eof=$((${eof} + 1)) + IFS='' read -r exp <&0 || eof=$((${eof} + 2)) + [ ${eof} -eq 3 ] && break + [ x"${got}" = x"${exp}" ] && continue + if ${ok}; then + not_ok_ -- "${description}" + diag_ " Failed test '${description}'" + ok=false + fi + diag_ " got: '${got}'" + diag_ " expected: '${exp}'" + done + exec 3<&- + + if ${ok}; then + ok_ -- "${description}" + fi +} |