diff --git a/tests/test.sh b/tests/test.sh index 279dec6..06e9aa8 100755 --- a/tests/test.sh +++ b/tests/test.sh @@ -28,6 +28,8 @@ fi rm -rf "$OUTPUT" mkdir -p "$OUTPUT" +tests/test_grammars.sh "$PROG" "$OUTPUT" || (echo "Testing aborted" ; exit 1) + for i in tests/ixml_grammar_[0-9][0-9][0-9]_*.test do if [ -n $FILTER ] && [[ ! "$i" =~ $FILTER ]]; then continue; fi diff --git a/tests/test_grammars.sh b/tests/test_grammars.sh new file mode 100755 index 0000000..923b50d --- /dev/null +++ b/tests/test_grammars.sh @@ -0,0 +1,23 @@ +#!/bin/sh +# libxmq - Copyright 2024 Fredrik Öhrström (spdx: MIT) + +PROG=$1 +OUTPUT=$2 + +if [ -z "$OUTPUT" ] || [ -z "$PROG" ] +then + echo "Usage: tests/test_grammars.sh [XMQ_BINARY] [OUTPUT_DIR]" + exit 1 +fi + +mkdir -p $OUTPUT + +$PROG --ixml=grammars/core/ixml.ixml grammars/core/ixml.ixml > $OUTPUT/ixml.output 2>/dev/null +$PROG grammars/core/ixml.xml > $OUTPUT/ixml.expected 2>/dev/null +if diff $OUTPUT/ixml.output $OUTPUT/ixml.expected +then + echo "OK: test ixml.ixml" +else + echo "ERR: Failed to parse ixml.ixml" + exit 1 +fi