X-Git-Url: http://git.onelab.eu/?a=blobdiff_plain;f=tests%2Fjson.at;h=56329ed2554b8c8f8e523b03cf0be52b2b7f5f82;hb=856081f683d3e7d5b5fa07af4233d285eb205c47;hp=0449e0361dabffae0e13ce20f7ebf9be5b9b0c47;hpb=02dd3123a0e312f1d33403e744af52dd6096f12d;p=sliver-openvswitch.git diff --git a/tests/json.at b/tests/json.at index 0449e0361..56329ed25 100644 --- a/tests/json.at +++ b/tests/json.at @@ -1,4 +1,4 @@ -m4_define([JSON_CHECK_POSITIVE], +m4_define([JSON_CHECK_POSITIVE_C], [AT_SETUP([$1]) AT_KEYWORDS([json positive]) AT_CHECK([printf %s "AS_ESCAPE([$2])" > input]) @@ -8,7 +8,22 @@ m4_define([JSON_CHECK_POSITIVE], ]) AT_CLEANUP]) -m4_define([JSON_CHECK_NEGATIVE], +m4_define([JSON_CHECK_POSITIVE_PY], + [AT_SETUP([$1]) + AT_KEYWORDS([json positive Python]) + AT_SKIP_IF([test $HAVE_PYTHON = no]) + AT_CHECK([printf %s "AS_ESCAPE([$2])" > input]) + AT_CAPTURE_FILE([input]) + AT_CHECK([$PYTHON $srcdir/test-json.py $4 input], [0], [stdout], []) + AT_CHECK([cat stdout], [0], [$3 +]) + AT_CLEANUP]) + +m4_define([JSON_CHECK_POSITIVE], + [JSON_CHECK_POSITIVE_C([$1 - C], [$2], [$3], [$4]) + JSON_CHECK_POSITIVE_PY([$1 - Python], [$2], [$3], [$4])]) + +m4_define([JSON_CHECK_NEGATIVE_C], [AT_SETUP([$1]) AT_KEYWORDS([json negative]) AT_CHECK([printf %s "AS_ESCAPE([$2])" > input]) @@ -18,6 +33,21 @@ m4_define([JSON_CHECK_NEGATIVE], ]) AT_CLEANUP]) +m4_define([JSON_CHECK_NEGATIVE_PY], + [AT_SETUP([$1]) + AT_KEYWORDS([json negative Python]) + AT_SKIP_IF([test $HAVE_PYTHON = no]) + AT_CHECK([printf %s "AS_ESCAPE([$2])" > input]) + AT_CAPTURE_FILE([input]) + AT_CHECK([$PYTHON $srcdir/test-json.py $4 input], [1], [stdout], []) + AT_CHECK([[sed 's/^error: [^:]*:/error:/' < stdout]], [0], [$3 +]) + AT_CLEANUP]) + +m4_define([JSON_CHECK_NEGATIVE], + [JSON_CHECK_NEGATIVE_C([$1 - C], [$2], [$3], [$4]) + JSON_CHECK_NEGATIVE_PY([$1 - Python], [$2], [$3], [$4])]) + AT_BANNER([JSON -- arrays]) JSON_CHECK_POSITIVE([empty array], [[ [ ] ]], [[[]]]) @@ -76,9 +106,18 @@ JSON_CHECK_NEGATIVE([null bytes not allowed], [[["\u0000"]]], [error: null bytes not supported in quoted strings]) -AT_SETUP([end of input in quoted string]) +AT_SETUP([end of input in quoted string - C]) AT_KEYWORDS([json negative]) -AT_CHECK([printf '\"xxx' | test-json -], [1], +AT_CHECK([printf '"xxx' | test-json -], [1], + [error: line 0, column 4, byte 4: unexpected end of input in quoted string +]) +AT_CLEANUP + +AT_SETUP([end of input in quoted string - Python]) +AT_KEYWORDS([json negative Python]) +AT_SKIP_IF([test $HAVE_PYTHON = no]) +AT_CHECK([printf '"xxx' > input +$PYTHON $srcdir/test-json.py input], [1], [error: line 0, column 4, byte 4: unexpected end of input in quoted string ]) AT_CLEANUP