X-Git-Url: https://pintos-os.org/cgi-bin/gitweb.cgi?a=blobdiff_plain;f=tests%2Fjson.at;h=0449e0361dabffae0e13ce20f7ebf9be5b9b0c47;hb=79c9f2ee7883b52860c76c3730725f5731402874;hp=54d4f8cf1ba1d08fe2c285b6e1ca2a311cdc9ffd;hpb=58fda1dab104041fc693032475ec4662c1a52849;p=openvswitch diff --git a/tests/json.at b/tests/json.at index 54d4f8cf..0449e036 100644 --- a/tests/json.at +++ b/tests/json.at @@ -2,15 +2,19 @@ m4_define([JSON_CHECK_POSITIVE], [AT_SETUP([$1]) AT_KEYWORDS([json positive]) AT_CHECK([printf %s "AS_ESCAPE([$2])" > input]) - OVS_CHECK_LCOV([test-json $4 input], [0], [$3 -], []) + AT_CAPTURE_FILE([input]) + AT_CHECK([test-json $4 input], [0], [stdout], []) + AT_CHECK([cat stdout], [0], [$3 +]) AT_CLEANUP]) m4_define([JSON_CHECK_NEGATIVE], [AT_SETUP([$1]) AT_KEYWORDS([json negative]) AT_CHECK([printf %s "AS_ESCAPE([$2])" > input]) - OVS_CHECK_LCOV([test-json $4 input], [1], [$3 + AT_CAPTURE_FILE([input]) + AT_CHECK([test-json $4 input], [1], [stdout], []) + AT_CHECK([[sed 's/^error: [^:]*:/error:/' < stdout]], [0], [$3 ]) AT_CLEANUP]) @@ -56,8 +60,11 @@ JSON_CHECK_NEGATIVE([formfeed in quoted string], JSON_CHECK_NEGATIVE([bad escape in quoted string], [[["\x12"]]], [error: bad escape \x]) -JSON_CHECK_NEGATIVE([\u must be followed by 4 hex digits], +JSON_CHECK_NEGATIVE([\u must be followed by 4 hex digits (1)], [[["\u1x"]]], + [error: quoted string ends within \u escape]) +JSON_CHECK_NEGATIVE([\u must be followed by 4 hex digits (2)], + [[["\u1xyz"]]], [error: malformed \u escape]) JSON_CHECK_NEGATIVE([isolated leading surrogate not allowed], [[["\ud834xxx"]]], @@ -72,7 +79,7 @@ JSON_CHECK_NEGATIVE([null bytes not allowed], AT_SETUP([end of input in quoted string]) AT_KEYWORDS([json negative]) AT_CHECK([printf '\"xxx' | test-json -], [1], - [error: unexpected end of input in quoted string + [error: line 0, column 4, byte 4: unexpected end of input in quoted string ]) AT_CLEANUP @@ -154,6 +161,14 @@ JSON_CHECK_POSITIVE( [scientific notation], [[[1e3, 1E3, 2.5E2, 1e+3, 125e-3, 3.125e-2, 3125e-05, 1.525878906e-5]]], [[[1000,1000,250,1000,0.125,0.03125,0.03125,1.525878906e-05]]]) +# It seems likely that the following test will fail on some system that +# rounds slightly differently in arithmetic or in printf, but I'd like +# to keep it this way until we run into such a system. +JSON_CHECK_POSITIVE( + [+/- DBL_MAX], + [[[1.7976931348623157e+308, -1.7976931348623157e+308]]], + [[[1.79769313486232e+308,-1.79769313486232e+308]]]) + JSON_CHECK_POSITIVE( [negative reals], [[[-0, -1.0, -2.0, -3.0, -3.5, -8.1250]]], @@ -259,7 +274,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: empty input stream +AT_CHECK([test-json /dev/null], [1], [error: line 0, column 0, byte 0: empty input stream ]) AT_CLEANUP