diff options
Diffstat (limited to 'tests/test_util_json.sh')
-rwxr-xr-x | tests/test_util_json.sh | 39 |
1 files changed, 39 insertions, 0 deletions
diff --git a/tests/test_util_json.sh b/tests/test_util_json.sh new file mode 100755 index 00000000..bbbd132b --- /dev/null +++ b/tests/test_util_json.sh @@ -0,0 +1,39 @@ +#!/bin/bash + +export LUA_PATH="../?.lua;;" +export LUA_CPATH="../?.so;;" + +#set -x + +if ! which "$RUNWITH"; then + echo "Unable to find interpreter $RUNWITH"; + exit 1; +fi + +if ! $RUNWITH -e 'assert(require"util.json")' 2>/dev/null; then + echo "Unable to find util.json"; + exit 1; +fi + +FAIL=0 + +for f in json/pass*.json; do + if ! $RUNWITH -e 'local j=require"util.json" assert(j.decode(io.read("*a"))~=nil)' <"$f" 2>/dev/null; then + echo "Failed to decode valid JSON: $f"; + FAIL=1 + fi +done + +for f in json/fail*.json; do + if ! $RUNWITH -e 'local j=require"util.json" assert(j.decode(io.read("*a"))==nil)' <"$f" 2>/dev/null; then + echo "Invalid JSON decoded without error: $f"; + FAIL=1 + fi +done + +if [ "$FAIL" == "1" ]; then + echo "JSON tests failed" + exit 1; +fi + +exit 0; |