
On 05/09/2013 06:18 AM, Ján Tomko wrote:
Currently, using an invalid XML in tests fails, because the schema test expects all of them to be valid.
Treat files with -invalid.xml suffix as invalid and expect them to fail validation. --- tests/schematestutils.sh | 12 ++++++++++++ 1 file changed, 12 insertions(+)
diff --git a/tests/schematestutils.sh b/tests/schematestutils.sh index 4361221..e739b99 100644 --- a/tests/schematestutils.sh +++ b/tests/schematestutils.sh @@ -20,6 +20,18 @@ do result=`$cmd 2>&1` ret=$?
+ grep -- '-invalid.xml$' <<< "$xml" 2>&1 >/dev/null
<<< is not portable shell, but this script wants to use /bin/sh. You need to either rewrite the script to use /bin/bash, or avoid <<<. And I think it's easier to just use portable shell: invalid=false case $xml in *-invalid.xml) invalid=: ;; esac
+ 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
Or even make the case statement check invalid and exit status all at the same time. I see you already pushed, so I'll write the followup. -- Eric Blake eblake redhat com +1-919-301-3266 Libvirt virtualization library http://libvirt.org