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 <eblake@redhat.com>
This commit is contained in:
Eric Blake 2013-05-09 11:36:58 -06:00
parent 0454a7cd3d
commit 1d21b884a3
1 changed files with 5 additions and 11 deletions

View File

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