Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(77)

Unified Diff: third_party/sqlite/src/test/json101.test

Issue 2751253002: [sql] Import SQLite 3.17.0. (Closed)
Patch Set: also clang on Linux i386 Created 3 years, 9 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
« no previous file with comments | « third_party/sqlite/src/test/journal2.test ('k') | third_party/sqlite/src/test/json103.test » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
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
« no previous file with comments | « third_party/sqlite/src/test/journal2.test ('k') | third_party/sqlite/src/test/json103.test » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698