. "$BST_LIB" require xmlwf expat/present tmp=${TMPDIR:-/tmp}/bst-expat.$$ mkdir -p "$tmp" # well-formed document: xmlwf is silent and exits 0 printf '\ntext\n' > "$tmp/ok.xml" out=$(xmlwf "$tmp/ok.xml" 2>&1); rc=$? if [ "$rc" -eq 0 ] && [ -z "$out" ]; then bst_ok expat/wellformed-silent else bst_notok expat/wellformed-silent "rc=$rc out=$(_bst_1line "$out")" fi # malformed document (mismatched tag): the report names file:line and rc is non-zero printf '\n\n\n' > "$tmp/bad.xml" out=$(xmlwf "$tmp/bad.xml" 2>&1); rc=$? case "$out" in *bad.xml:*[0-9]:*) bst_ok expat/malformed-line ;; *) bst_notok expat/malformed-line "no file:line in: $(_bst_1line "$out")" ;; esac if [ "$rc" -ne 0 ]; then bst_ok expat/malformed-rc else bst_notok expat/malformed-rc "rc=0 on malformed input" fi rm -rf "$tmp"