| Index: third_party/sqlite/src/test/json101.test
|
| diff --git a/third_party/sqlite/src/test/json101.test b/third_party/sqlite/src/test/json101.test
|
| index 8c62c8b16c6410eed41dd24ae901230b1c3e7f8f..37123eef1d7d0e866b4cdab778a946af4805f272 100644
|
| --- a/third_party/sqlite/src/test/json101.test
|
| +++ b/third_party/sqlite/src/test/json101.test
|
| @@ -342,4 +342,351 @@ foreach {tn isvalid ws} {
|
| $isvalid
|
| }
|
|
|
| +# Ticket https://www.sqlite.org/src/info/ad2559db380abf8e
|
| +# Control characters must be escaped in JSON strings.
|
| +#
|
| +do_execsql_test json-8.1 {
|
| + DROP TABLE IF EXISTS t8;
|
| + CREATE TABLE t8(a,b);
|
| + INSERT INTO t8(a) VALUES('abc' || char(1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35) || 'xyz');
|
| + UPDATE t8 SET b=json_array(a);
|
| + SELECT b FROM t8;
|
| +} {{["abc\u0001\u0002\u0003\u0004\u0005\u0006\u0007\b\t\n\u000b\f\r\u000e\u000f\u0010\u0011\u0012\u0013\u0014\u0015\u0016\u0017\u0018\u0019\u001a\u001b\u001c\u001d\u001e\u001f !\"#xyz"]}}
|
| +do_execsql_test json-8.2 {
|
| + SELECT a=json_extract(b,'$[0]') FROM t8;
|
| +} {1}
|
| +
|
| +# The json_quote() function transforms an SQL value into a JSON value.
|
| +# String values are quoted and interior quotes are escaped. NULL values
|
| +# are rendered as the unquoted string "null".
|
| +#
|
| +do_execsql_test json-9.1 {
|
| + SELECT json_quote('abc"xyz');
|
| +} {{"abc\"xyz"}}
|
| +do_execsql_test json-9.2 {
|
| + SELECT json_quote(3.14159);
|
| +} {3.14159}
|
| +do_execsql_test json-9.3 {
|
| + SELECT json_quote(12345);
|
| +} {12345}
|
| +do_execsql_test json-9.4 {
|
| + SELECT json_quote(null);
|
| +} {"null"}
|
| +do_catchsql_test json-9.5 {
|
| + SELECT json_quote(x'30313233');
|
| +} {1 {JSON cannot hold BLOB values}}
|
| +do_catchsql_test json-9.6 {
|
| + SELECT json_quote(123,456)
|
| +} {1 {wrong number of arguments to function json_quote()}}
|
| +do_catchsql_test json-9.7 {
|
| + SELECT json_quote()
|
| +} {1 {wrong number of arguments to function json_quote()}}
|
| +
|
| +# Make sure only valid backslash-escapes are accepted.
|
| +#
|
| +do_execsql_test json-10.1 {
|
| + SELECT json_valid('" \ "');
|
| +} {0}
|
| +do_execsql_test json-10.2 {
|
| + SELECT json_valid('" \! "');
|
| +} {0}
|
| +do_execsql_test json-10.3 {
|
| + SELECT json_valid('" \" "');
|
| +} {1}
|
| +do_execsql_test json-10.4 {
|
| + SELECT json_valid('" \# "');
|
| +} {0}
|
| +do_execsql_test json-10.5 {
|
| + SELECT json_valid('" \$ "');
|
| +} {0}
|
| +do_execsql_test json-10.6 {
|
| + SELECT json_valid('" \% "');
|
| +} {0}
|
| +do_execsql_test json-10.7 {
|
| + SELECT json_valid('" \& "');
|
| +} {0}
|
| +do_execsql_test json-10.8 {
|
| + SELECT json_valid('" \'' "');
|
| +} {0}
|
| +do_execsql_test json-10.9 {
|
| + SELECT json_valid('" \( "');
|
| +} {0}
|
| +do_execsql_test json-10.10 {
|
| + SELECT json_valid('" \) "');
|
| +} {0}
|
| +do_execsql_test json-10.11 {
|
| + SELECT json_valid('" \* "');
|
| +} {0}
|
| +do_execsql_test json-10.12 {
|
| + SELECT json_valid('" \+ "');
|
| +} {0}
|
| +do_execsql_test json-10.13 {
|
| + SELECT json_valid('" \, "');
|
| +} {0}
|
| +do_execsql_test json-10.14 {
|
| + SELECT json_valid('" \- "');
|
| +} {0}
|
| +do_execsql_test json-10.15 {
|
| + SELECT json_valid('" \. "');
|
| +} {0}
|
| +do_execsql_test json-10.16 {
|
| + SELECT json_valid('" \/ "');
|
| +} {1}
|
| +do_execsql_test json-10.17 {
|
| + SELECT json_valid('" \0 "');
|
| +} {0}
|
| +do_execsql_test json-10.18 {
|
| + SELECT json_valid('" \1 "');
|
| +} {0}
|
| +do_execsql_test json-10.19 {
|
| + SELECT json_valid('" \2 "');
|
| +} {0}
|
| +do_execsql_test json-10.20 {
|
| + SELECT json_valid('" \3 "');
|
| +} {0}
|
| +do_execsql_test json-10.21 {
|
| + SELECT json_valid('" \4 "');
|
| +} {0}
|
| +do_execsql_test json-10.22 {
|
| + SELECT json_valid('" \5 "');
|
| +} {0}
|
| +do_execsql_test json-10.23 {
|
| + SELECT json_valid('" \6 "');
|
| +} {0}
|
| +do_execsql_test json-10.24 {
|
| + SELECT json_valid('" \7 "');
|
| +} {0}
|
| +do_execsql_test json-10.25 {
|
| + SELECT json_valid('" \8 "');
|
| +} {0}
|
| +do_execsql_test json-10.26 {
|
| + SELECT json_valid('" \9 "');
|
| +} {0}
|
| +do_execsql_test json-10.27 {
|
| + SELECT json_valid('" \: "');
|
| +} {0}
|
| +do_execsql_test json-10.28 {
|
| + SELECT json_valid('" \; "');
|
| +} {0}
|
| +do_execsql_test json-10.29 {
|
| + SELECT json_valid('" \< "');
|
| +} {0}
|
| +do_execsql_test json-10.30 {
|
| + SELECT json_valid('" \= "');
|
| +} {0}
|
| +do_execsql_test json-10.31 {
|
| + SELECT json_valid('" \> "');
|
| +} {0}
|
| +do_execsql_test json-10.32 {
|
| + SELECT json_valid('" \? "');
|
| +} {0}
|
| +do_execsql_test json-10.33 {
|
| + SELECT json_valid('" \@ "');
|
| +} {0}
|
| +do_execsql_test json-10.34 {
|
| + SELECT json_valid('" \A "');
|
| +} {0}
|
| +do_execsql_test json-10.35 {
|
| + SELECT json_valid('" \B "');
|
| +} {0}
|
| +do_execsql_test json-10.36 {
|
| + SELECT json_valid('" \C "');
|
| +} {0}
|
| +do_execsql_test json-10.37 {
|
| + SELECT json_valid('" \D "');
|
| +} {0}
|
| +do_execsql_test json-10.38 {
|
| + SELECT json_valid('" \E "');
|
| +} {0}
|
| +do_execsql_test json-10.39 {
|
| + SELECT json_valid('" \F "');
|
| +} {0}
|
| +do_execsql_test json-10.40 {
|
| + SELECT json_valid('" \G "');
|
| +} {0}
|
| +do_execsql_test json-10.41 {
|
| + SELECT json_valid('" \H "');
|
| +} {0}
|
| +do_execsql_test json-10.42 {
|
| + SELECT json_valid('" \I "');
|
| +} {0}
|
| +do_execsql_test json-10.43 {
|
| + SELECT json_valid('" \J "');
|
| +} {0}
|
| +do_execsql_test json-10.44 {
|
| + SELECT json_valid('" \K "');
|
| +} {0}
|
| +do_execsql_test json-10.45 {
|
| + SELECT json_valid('" \L "');
|
| +} {0}
|
| +do_execsql_test json-10.46 {
|
| + SELECT json_valid('" \M "');
|
| +} {0}
|
| +do_execsql_test json-10.47 {
|
| + SELECT json_valid('" \N "');
|
| +} {0}
|
| +do_execsql_test json-10.48 {
|
| + SELECT json_valid('" \O "');
|
| +} {0}
|
| +do_execsql_test json-10.49 {
|
| + SELECT json_valid('" \P "');
|
| +} {0}
|
| +do_execsql_test json-10.50 {
|
| + SELECT json_valid('" \Q "');
|
| +} {0}
|
| +do_execsql_test json-10.51 {
|
| + SELECT json_valid('" \R "');
|
| +} {0}
|
| +do_execsql_test json-10.52 {
|
| + SELECT json_valid('" \S "');
|
| +} {0}
|
| +do_execsql_test json-10.53 {
|
| + SELECT json_valid('" \T "');
|
| +} {0}
|
| +do_execsql_test json-10.54 {
|
| + SELECT json_valid('" \U "');
|
| +} {0}
|
| +do_execsql_test json-10.55 {
|
| + SELECT json_valid('" \V "');
|
| +} {0}
|
| +do_execsql_test json-10.56 {
|
| + SELECT json_valid('" \W "');
|
| +} {0}
|
| +do_execsql_test json-10.57 {
|
| + SELECT json_valid('" \X "');
|
| +} {0}
|
| +do_execsql_test json-10.58 {
|
| + SELECT json_valid('" \Y "');
|
| +} {0}
|
| +do_execsql_test json-10.59 {
|
| + SELECT json_valid('" \Z "');
|
| +} {0}
|
| +do_execsql_test json-10.60 {
|
| + SELECT json_valid('" \[ "');
|
| +} {0}
|
| +do_execsql_test json-10.61 {
|
| + SELECT json_valid('" \\ "');
|
| +} {1}
|
| +do_execsql_test json-10.62 {
|
| + SELECT json_valid('" \] "');
|
| +} {0}
|
| +do_execsql_test json-10.63 {
|
| + SELECT json_valid('" \^ "');
|
| +} {0}
|
| +do_execsql_test json-10.64 {
|
| + SELECT json_valid('" \_ "');
|
| +} {0}
|
| +do_execsql_test json-10.65 {
|
| + SELECT json_valid('" \` "');
|
| +} {0}
|
| +do_execsql_test json-10.66 {
|
| + SELECT json_valid('" \a "');
|
| +} {0}
|
| +do_execsql_test json-10.67 {
|
| + SELECT json_valid('" \b "');
|
| +} {1}
|
| +do_execsql_test json-10.68 {
|
| + SELECT json_valid('" \c "');
|
| +} {0}
|
| +do_execsql_test json-10.69 {
|
| + SELECT json_valid('" \d "');
|
| +} {0}
|
| +do_execsql_test json-10.70 {
|
| + SELECT json_valid('" \e "');
|
| +} {0}
|
| +do_execsql_test json-10.71 {
|
| + SELECT json_valid('" \f "');
|
| +} {1}
|
| +do_execsql_test json-10.72 {
|
| + SELECT json_valid('" \g "');
|
| +} {0}
|
| +do_execsql_test json-10.73 {
|
| + SELECT json_valid('" \h "');
|
| +} {0}
|
| +do_execsql_test json-10.74 {
|
| + SELECT json_valid('" \i "');
|
| +} {0}
|
| +do_execsql_test json-10.75 {
|
| + SELECT json_valid('" \j "');
|
| +} {0}
|
| +do_execsql_test json-10.76 {
|
| + SELECT json_valid('" \k "');
|
| +} {0}
|
| +do_execsql_test json-10.77 {
|
| + SELECT json_valid('" \l "');
|
| +} {0}
|
| +do_execsql_test json-10.78 {
|
| + SELECT json_valid('" \m "');
|
| +} {0}
|
| +do_execsql_test json-10.79 {
|
| + SELECT json_valid('" \n "');
|
| +} {1}
|
| +do_execsql_test json-10.80 {
|
| + SELECT json_valid('" \o "');
|
| +} {0}
|
| +do_execsql_test json-10.81 {
|
| + SELECT json_valid('" \p "');
|
| +} {0}
|
| +do_execsql_test json-10.82 {
|
| + SELECT json_valid('" \q "');
|
| +} {0}
|
| +do_execsql_test json-10.83 {
|
| + SELECT json_valid('" \r "');
|
| +} {1}
|
| +do_execsql_test json-10.84 {
|
| + SELECT json_valid('" \s "');
|
| +} {0}
|
| +do_execsql_test json-10.85 {
|
| + SELECT json_valid('" \t "');
|
| +} {1}
|
| +do_execsql_test json-10.86.0 {
|
| + SELECT json_valid('" \u "');
|
| +} {0}
|
| +do_execsql_test json-10.86.1 {
|
| + SELECT json_valid('" \ua "');
|
| +} {0}
|
| +do_execsql_test json-10.86.2 {
|
| + SELECT json_valid('" \uab "');
|
| +} {0}
|
| +do_execsql_test json-10.86.3 {
|
| + SELECT json_valid('" \uabc "');
|
| +} {0}
|
| +do_execsql_test json-10.86.4 {
|
| + SELECT json_valid('" \uabcd "');
|
| +} {1}
|
| +do_execsql_test json-10.86.5 {
|
| + SELECT json_valid('" \uFEDC "');
|
| +} {1}
|
| +do_execsql_test json-10.86.6 {
|
| + SELECT json_valid('" \u1234 "');
|
| +} {1}
|
| +do_execsql_test json-10.87 {
|
| + SELECT json_valid('" \v "');
|
| +} {0}
|
| +do_execsql_test json-10.88 {
|
| + SELECT json_valid('" \w "');
|
| +} {0}
|
| +do_execsql_test json-10.89 {
|
| + SELECT json_valid('" \x "');
|
| +} {0}
|
| +do_execsql_test json-10.90 {
|
| + SELECT json_valid('" \y "');
|
| +} {0}
|
| +do_execsql_test json-10.91 {
|
| + SELECT json_valid('" \z "');
|
| +} {0}
|
| +do_execsql_test json-10.92 {
|
| + SELECT json_valid('" \{ "');
|
| +} {0}
|
| +do_execsql_test json-10.93 {
|
| + SELECT json_valid('" \| "');
|
| +} {0}
|
| +do_execsql_test json-10.94 {
|
| + SELECT json_valid('" \} "');
|
| +} {0}
|
| +do_execsql_test json-10.95 {
|
| + SELECT json_valid('" \~ "');
|
| +} {0}
|
| +
|
| +
|
| finish_test
|
|
|