]> xenbits.xensource.com Git - libvirt.git/commitdiff
tests: use portable shell code
authorEric Blake <eblake@redhat.com>
Thu, 9 May 2013 17:36:58 +0000 (11:36 -0600)
committerEric Blake <eblake@redhat.com>
Thu, 9 May 2013 17:46:45 +0000 (11:46 -0600)
'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 <eblake@redhat.com>
tests/schematestutils.sh

index e739b991dd1359a375965ce71af5eff643ca73cb..e594f04cecb42a6737a6355e0c63d9d8ec3ffd1d 100644 (file)
@@ -20,18 +20,12 @@ do
     result=`$cmd 2>&1`
     ret=$?
 
-    grep -- '-invalid.xml$' <<< "$xml" 2>&1 >/dev/null
-    invalid=$?
-
-    # 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
+    # Alter ret if error was expected.
+    case $xml:$ret in
+        *-invalid.xml:[34]) ret=0 ;;
+        *-invalid.xml:0)    ret=3 ;;
+    esac
+
     test_result $n $(basename $(dirname $xml))"/"$(basename $xml) $ret
     if test "$verbose" = "1" && test $ret != 0 ; then
         printf '%s\n' "$cmd" "$result"