X-Git-Url: http://git.onelab.eu/?a=blobdiff_plain;f=tests%2Fjson.at;h=56329ed2554b8c8f8e523b03cf0be52b2b7f5f82;hb=991559357f6a03c3a5b70c053c8c2554aa8d5ee4;hp=af53d76f47add413c12fe9b7e19614f63d1f94aa;hpb=d1b680c61626595b2777f4bf25997a9178acb60c;p=sliver-openvswitch.git diff --git a/tests/json.at b/tests/json.at index af53d76f4..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,13 +106,22 @@ 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], [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 + AT_BANNER([JSON -- objects]) JSON_CHECK_POSITIVE([empty object], [[{ }]], [[{}]])