From 1d21b884a3603d0a776d365e3ba311ffc6960445 Mon Sep 17 00:00:00 2001 From: Eric Blake Date: Thu, 9 May 2013 11:36:58 -0600 Subject: [PATCH] tests: use portable shell code 'make check' fails since commit 470d5c46 on any system with dash as /bin/sh, because '<<<' is a bash extension. For example: nwfilterschematest: 23: /home/eblake/libvirt/tests/schematestutils.sh: Syntax error: redirection unexpected Also, there is no need to spawn a grep process when shell globbing can do the same. * tests/schematestutils.sh: Replace bashism and subprocess with a faster and portable construct. Signed-off-by: Eric Blake --- tests/schematestutils.sh | 16 +++++----------- 1 file changed, 5 insertions(+), 11 deletions(-) diff --git a/tests/schematestutils.sh b/tests/schematestutils.sh index e739b991dd..e594f04cec 100644 --- a/tests/schematestutils.sh +++ b/tests/schematestutils.sh @@ -20,18 +20,12 @@ do result=`$cmd 2>&1` ret=$? - grep -- '-invalid.xml$' <<< "$xml" 2>&1 >/dev/null - invalid=$? + # Alter ret if error was expected. + case $xml:$ret in + *-invalid.xml:[34]) ret=0 ;; + *-invalid.xml:0) ret=3 ;; + esac - # per xmllint man page, the return codes for validation error - # are 3 and 4 - if test $invalid -eq 0; then - if test $ret -eq 4 || test $ret -eq 3; then - ret=0 - elif test $ret -eq 0; then - ret=3 - fi - fi test_result $n $(basename $(dirname $xml))"/"$(basename $xml) $ret if test "$verbose" = "1" && test $ret != 0 ; then printf '%s\n' "$cmd" "$result"