diff options
Diffstat (limited to 'tests/aux')
-rw-r--r-- | tests/aux/common.sh | 36 |
1 files changed, 35 insertions, 1 deletions
diff --git a/tests/aux/common.sh b/tests/aux/common.sh index fce9d07..0561b21 100644 --- a/tests/aux/common.sh +++ b/tests/aux/common.sh @@ -1,6 +1,6 @@ # Functions common to tests # -# Copyright (C) 2018 Patrick McDermott +# Copyright (C) 2018, 2019 Patrick McDermott # # This file is part of opkbuild. # @@ -33,3 +33,37 @@ is() 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 + read -r got <&3 || eof=$((${eof} + 1)) + 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 +} |