X-Git-Url: http://git.onelab.eu/?a=blobdiff_plain;f=tests%2Fjson.at;h=86ae5fad9007f190989f3d9f0672969626e6657e;hb=cfc50ae514f805dcd9c14589f21158185424daf6;hp=0449e0361dabffae0e13ce20f7ebf9be5b9b0c47;hpb=a4af00400a835eb87569ba40e21874c05e872c0f;p=sliver-openvswitch.git diff --git a/tests/json.at b/tests/json.at index 0449e0361..86ae5fad9 100644 --- a/tests/json.at +++ b/tests/json.at @@ -1,23 +1,65 @@ -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]) AT_CAPTURE_FILE([input]) - AT_CHECK([test-json $4 input], [0], [stdout], []) + AT_CHECK([ovstest test-json $4 input], [0], [stdout], []) AT_CHECK([cat stdout], [0], [$3 ]) 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_UCS4PY], + [AT_SETUP([$1]) + AT_KEYWORDS([json positive Python]) + AT_SKIP_IF([test $HAVE_PYTHON = no]) + AT_XFAIL_IF([$PYTHON -c "exit(len(u'\U00010800'))"; test $? -ne 1]) + 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]) AT_CAPTURE_FILE([input]) - AT_CHECK([test-json $4 input], [1], [stdout], []) + AT_CHECK([ovstest test-json $4 input], [1], [stdout], []) AT_CHECK([[sed 's/^error: [^:]*:/error:/' < stdout]], [0], [$3 ]) 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], [[ [ ] ]], [[[]]]) @@ -45,7 +87,10 @@ JSON_CHECK_POSITIVE([escape sequences], JSON_CHECK_POSITIVE([Unicode escape sequences], [[[ " \u0022 \u005c \u002F \u0008 \u000c \u000A \u000d \u0009" ]]], [[[" \" \\ / \b \f \n \r \t"]]]) -JSON_CHECK_POSITIVE([surrogate pairs], +JSON_CHECK_POSITIVE_C([surrogate pairs - C], + [[["\ud834\udd1e"]]], + [[["𝄞"]]]) +JSON_CHECK_POSITIVE_UCS4PY([surrogate pairs - Python], [[["\ud834\udd1e"]]], [[["𝄞"]]]) JSON_CHECK_NEGATIVE([a string by itself is not valid JSON], ["xxx"], @@ -76,9 +121,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' | ovstest 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 @@ -274,7 +328,7 @@ JSON_CHECK_NEGATIVE([objects nesting too deep], AT_SETUP([input may not be empty]) AT_KEYWORDS([json negative]) -AT_CHECK([test-json /dev/null], [1], [error: line 0, column 0, byte 0: empty input stream +AT_CHECK([ovstest test-json /dev/null], [1], [error: line 0, column 0, byte 0: empty input stream ]) AT_CLEANUP