aboutsummaryrefslogtreecommitdiffstats
path: root/libtests/qtest/json_parse
diff options
context:
space:
mode:
authorJay Berkenbilt <ejb@ql.org>2022-01-18 00:40:38 +0100
committerJay Berkenbilt <ejb@ql.org>2022-01-30 19:11:03 +0100
commite8e8f6f43c760523520dfe7a5c76d88c959599f6 (patch)
treea000bcb5cbbde3e2833a57a28e761449b62165b2 /libtests/qtest/json_parse
parentb9af421ef788b94fcbf18ecf702cec3ba9a018b7 (diff)
downloadqpdf-e8e8f6f43c760523520dfe7a5c76d88c959599f6.tar.zst
Add JSON::parse
Diffstat (limited to 'libtests/qtest/json_parse')
-rw-r--r--libtests/qtest/json_parse/bad-01.json1
-rw-r--r--libtests/qtest/json_parse/bad-01.out1
-rw-r--r--libtests/qtest/json_parse/bad-02.json1
-rw-r--r--libtests/qtest/json_parse/bad-02.out1
-rw-r--r--libtests/qtest/json_parse/bad-03.json1
-rw-r--r--libtests/qtest/json_parse/bad-03.out1
-rw-r--r--libtests/qtest/json_parse/bad-04.json2
-rw-r--r--libtests/qtest/json_parse/bad-04.out1
-rw-r--r--libtests/qtest/json_parse/bad-05.json1
-rw-r--r--libtests/qtest/json_parse/bad-05.out1
-rw-r--r--libtests/qtest/json_parse/bad-06.json1
-rw-r--r--libtests/qtest/json_parse/bad-06.out1
-rw-r--r--libtests/qtest/json_parse/bad-07.json1
-rw-r--r--libtests/qtest/json_parse/bad-07.out1
-rw-r--r--libtests/qtest/json_parse/bad-08.json1
-rw-r--r--libtests/qtest/json_parse/bad-08.out1
-rw-r--r--libtests/qtest/json_parse/bad-09.json1
-rw-r--r--libtests/qtest/json_parse/bad-09.out1
-rw-r--r--libtests/qtest/json_parse/bad-10.json1
-rw-r--r--libtests/qtest/json_parse/bad-10.out1
-rw-r--r--libtests/qtest/json_parse/bad-11.json1
-rw-r--r--libtests/qtest/json_parse/bad-11.out1
-rw-r--r--libtests/qtest/json_parse/bad-12.json1
-rw-r--r--libtests/qtest/json_parse/bad-12.out1
-rw-r--r--libtests/qtest/json_parse/bad-13.json1
-rw-r--r--libtests/qtest/json_parse/bad-13.out1
-rw-r--r--libtests/qtest/json_parse/bad-14.json1
-rw-r--r--libtests/qtest/json_parse/bad-14.out1
-rw-r--r--libtests/qtest/json_parse/bad-15.json1
-rw-r--r--libtests/qtest/json_parse/bad-15.out1
-rw-r--r--libtests/qtest/json_parse/bad-16.json1
-rw-r--r--libtests/qtest/json_parse/bad-16.out1
-rw-r--r--libtests/qtest/json_parse/bad-17.json1
-rw-r--r--libtests/qtest/json_parse/bad-17.out1
-rw-r--r--libtests/qtest/json_parse/bad-18.jsonbin0 -> 9 bytes
-rw-r--r--libtests/qtest/json_parse/bad-18.out1
-rw-r--r--libtests/qtest/json_parse/bad-19.json1
-rw-r--r--libtests/qtest/json_parse/bad-19.out1
-rw-r--r--libtests/qtest/json_parse/bad-20.json1
-rw-r--r--libtests/qtest/json_parse/bad-20.out1
-rw-r--r--libtests/qtest/json_parse/bad-21.json1
-rw-r--r--libtests/qtest/json_parse/bad-21.out1
-rw-r--r--libtests/qtest/json_parse/bad-22.json1
-rw-r--r--libtests/qtest/json_parse/bad-22.out1
-rw-r--r--libtests/qtest/json_parse/bad-23.json1
-rw-r--r--libtests/qtest/json_parse/bad-23.out1
-rw-r--r--libtests/qtest/json_parse/bad-24.json1
-rw-r--r--libtests/qtest/json_parse/bad-24.out1
-rw-r--r--libtests/qtest/json_parse/bad-25.json1
-rw-r--r--libtests/qtest/json_parse/bad-25.out1
-rw-r--r--libtests/qtest/json_parse/bad-26.json1
-rw-r--r--libtests/qtest/json_parse/bad-26.out1
-rw-r--r--libtests/qtest/json_parse/bad-27.json1
-rw-r--r--libtests/qtest/json_parse/bad-27.out1
-rw-r--r--libtests/qtest/json_parse/bad-28.json1
-rw-r--r--libtests/qtest/json_parse/bad-28.out1
-rw-r--r--libtests/qtest/json_parse/bad-29.json1
-rw-r--r--libtests/qtest/json_parse/bad-29.out1
-rw-r--r--libtests/qtest/json_parse/bad-30.json1
-rw-r--r--libtests/qtest/json_parse/bad-30.out1
-rw-r--r--libtests/qtest/json_parse/bad-31.json1
-rw-r--r--libtests/qtest/json_parse/bad-31.out1
-rw-r--r--libtests/qtest/json_parse/bad-32.json1
-rw-r--r--libtests/qtest/json_parse/bad-32.out1
-rw-r--r--libtests/qtest/json_parse/bad-33.json1
-rw-r--r--libtests/qtest/json_parse/bad-33.out1
-rw-r--r--libtests/qtest/json_parse/bad-34.json1
-rw-r--r--libtests/qtest/json_parse/bad-34.out1
-rw-r--r--libtests/qtest/json_parse/bad-35.json1
-rw-r--r--libtests/qtest/json_parse/bad-35.out1
-rw-r--r--libtests/qtest/json_parse/good-01.json3
-rw-r--r--libtests/qtest/json_parse/good-02.json1
-rw-r--r--libtests/qtest/json_parse/good-03.json1
-rw-r--r--libtests/qtest/json_parse/good-04.json1
-rw-r--r--libtests/qtest/json_parse/good-05.json1
-rw-r--r--libtests/qtest/json_parse/good-06.json1
-rw-r--r--libtests/qtest/json_parse/good-07.json1
-rw-r--r--libtests/qtest/json_parse/good-08.json1
-rw-r--r--libtests/qtest/json_parse/good-09.json1
-rw-r--r--libtests/qtest/json_parse/save-01.json17
-rw-r--r--libtests/qtest/json_parse/save-02.json1
-rw-r--r--libtests/qtest/json_parse/save-03.json1
-rw-r--r--libtests/qtest/json_parse/save-04.json10
-rw-r--r--libtests/qtest/json_parse/save-05.json1
-rw-r--r--libtests/qtest/json_parse/save-06.json1
-rw-r--r--libtests/qtest/json_parse/save-07.json1
-rw-r--r--libtests/qtest/json_parse/save-08.json10
-rw-r--r--libtests/qtest/json_parse/save-09.json7
88 files changed, 130 insertions, 0 deletions
diff --git a/libtests/qtest/json_parse/bad-01.json b/libtests/qtest/json_parse/bad-01.json
new file mode 100644
index 00000000..be8f5206
--- /dev/null
+++ b/libtests/qtest/json_parse/bad-01.json
@@ -0,0 +1 @@
+"a" junk
diff --git a/libtests/qtest/json_parse/bad-01.out b/libtests/qtest/json_parse/bad-01.out
new file mode 100644
index 00000000..a4254cff
--- /dev/null
+++ b/libtests/qtest/json_parse/bad-01.out
@@ -0,0 +1 @@
+exception: bad-01.json: JSON: offset 9: material follows end of object: junk
diff --git a/libtests/qtest/json_parse/bad-02.json b/libtests/qtest/json_parse/bad-02.json
new file mode 100644
index 00000000..63dffebd
--- /dev/null
+++ b/libtests/qtest/json_parse/bad-02.json
@@ -0,0 +1 @@
+["a"] junk
diff --git a/libtests/qtest/json_parse/bad-02.out b/libtests/qtest/json_parse/bad-02.out
new file mode 100644
index 00000000..485c9658
--- /dev/null
+++ b/libtests/qtest/json_parse/bad-02.out
@@ -0,0 +1 @@
+exception: bad-02.json: JSON: offset 11: material follows end of object: junk
diff --git a/libtests/qtest/json_parse/bad-03.json b/libtests/qtest/json_parse/bad-03.json
new file mode 100644
index 00000000..20769389
--- /dev/null
+++ b/libtests/qtest/json_parse/bad-03.json
@@ -0,0 +1 @@
+{"a": "b"} junk
diff --git a/libtests/qtest/json_parse/bad-03.out b/libtests/qtest/json_parse/bad-03.out
new file mode 100644
index 00000000..38f35119
--- /dev/null
+++ b/libtests/qtest/json_parse/bad-03.out
@@ -0,0 +1 @@
+exception: bad-03.json: JSON: offset 16: material follows end of object: junk
diff --git a/libtests/qtest/json_parse/bad-04.json b/libtests/qtest/json_parse/bad-04.json
new file mode 100644
index 00000000..cb5c9145
--- /dev/null
+++ b/libtests/qtest/json_parse/bad-04.json
@@ -0,0 +1,2 @@
+[1, .]
+
diff --git a/libtests/qtest/json_parse/bad-04.out b/libtests/qtest/json_parse/bad-04.out
new file mode 100644
index 00000000..7fe71693
--- /dev/null
+++ b/libtests/qtest/json_parse/bad-04.out
@@ -0,0 +1 @@
+exception: bad-04.json: JSON: offset 5: decimal point with no digits
diff --git a/libtests/qtest/json_parse/bad-05.json b/libtests/qtest/json_parse/bad-05.json
new file mode 100644
index 00000000..632b1ab2
--- /dev/null
+++ b/libtests/qtest/json_parse/bad-05.json
@@ -0,0 +1 @@
+[true, potato]
diff --git a/libtests/qtest/json_parse/bad-05.out b/libtests/qtest/json_parse/bad-05.out
new file mode 100644
index 00000000..d94b4e62
--- /dev/null
+++ b/libtests/qtest/json_parse/bad-05.out
@@ -0,0 +1 @@
+exception: bad-05.json: JSON: offset 13: invalid keyword potato
diff --git a/libtests/qtest/json_parse/bad-06.json b/libtests/qtest/json_parse/bad-06.json
new file mode 100644
index 00000000..de355688
--- /dev/null
+++ b/libtests/qtest/json_parse/bad-06.json
@@ -0,0 +1 @@
+{"x" "y"}
diff --git a/libtests/qtest/json_parse/bad-06.out b/libtests/qtest/json_parse/bad-06.out
new file mode 100644
index 00000000..8ed262ce
--- /dev/null
+++ b/libtests/qtest/json_parse/bad-06.out
@@ -0,0 +1 @@
+exception: bad-06.json: JSON: offset 8: expected ':'
diff --git a/libtests/qtest/json_parse/bad-07.json b/libtests/qtest/json_parse/bad-07.json
new file mode 100644
index 00000000..b24dc391
--- /dev/null
+++ b/libtests/qtest/json_parse/bad-07.json
@@ -0,0 +1 @@
+{"x": 3 "y"}
diff --git a/libtests/qtest/json_parse/bad-07.out b/libtests/qtest/json_parse/bad-07.out
new file mode 100644
index 00000000..06774722
--- /dev/null
+++ b/libtests/qtest/json_parse/bad-07.out
@@ -0,0 +1 @@
+exception: bad-07.json: JSON: offset 11: expected ',' or '}'
diff --git a/libtests/qtest/json_parse/bad-08.json b/libtests/qtest/json_parse/bad-08.json
new file mode 100644
index 00000000..b15acc57
--- /dev/null
+++ b/libtests/qtest/json_parse/bad-08.json
@@ -0,0 +1 @@
+["x" "y"]
diff --git a/libtests/qtest/json_parse/bad-08.out b/libtests/qtest/json_parse/bad-08.out
new file mode 100644
index 00000000..c597e60e
--- /dev/null
+++ b/libtests/qtest/json_parse/bad-08.out
@@ -0,0 +1 @@
+exception: bad-08.json: JSON: offset 8: expected ',' or ']'
diff --git a/libtests/qtest/json_parse/bad-09.json b/libtests/qtest/json_parse/bad-09.json
new file mode 100644
index 00000000..d82de610
--- /dev/null
+++ b/libtests/qtest/json_parse/bad-09.json
@@ -0,0 +1 @@
+{5 : 5}
diff --git a/libtests/qtest/json_parse/bad-09.out b/libtests/qtest/json_parse/bad-09.out
new file mode 100644
index 00000000..21d2f1c1
--- /dev/null
+++ b/libtests/qtest/json_parse/bad-09.out
@@ -0,0 +1 @@
+exception: bad-09.json: JSON: offset 3: expect string as dictionary key
diff --git a/libtests/qtest/json_parse/bad-10.json b/libtests/qtest/json_parse/bad-10.json
new file mode 100644
index 00000000..f5cc41b6
--- /dev/null
+++ b/libtests/qtest/json_parse/bad-10.json
@@ -0,0 +1 @@
+["a"}
diff --git a/libtests/qtest/json_parse/bad-10.out b/libtests/qtest/json_parse/bad-10.out
new file mode 100644
index 00000000..d725d492
--- /dev/null
+++ b/libtests/qtest/json_parse/bad-10.out
@@ -0,0 +1 @@
+exception: bad-10.json: JSON: offset 5: unexpected dictionary end delimiter
diff --git a/libtests/qtest/json_parse/bad-11.json b/libtests/qtest/json_parse/bad-11.json
new file mode 100644
index 00000000..5c34318c
--- /dev/null
+++ b/libtests/qtest/json_parse/bad-11.json
@@ -0,0 +1 @@
+}
diff --git a/libtests/qtest/json_parse/bad-11.out b/libtests/qtest/json_parse/bad-11.out
new file mode 100644
index 00000000..ae8fd636
--- /dev/null
+++ b/libtests/qtest/json_parse/bad-11.out
@@ -0,0 +1 @@
+exception: bad-11.json: JSON: offset 1: unexpected dictionary end delimiter
diff --git a/libtests/qtest/json_parse/bad-12.json b/libtests/qtest/json_parse/bad-12.json
new file mode 100644
index 00000000..c9c9b68f
--- /dev/null
+++ b/libtests/qtest/json_parse/bad-12.json
@@ -0,0 +1 @@
+{""}
diff --git a/libtests/qtest/json_parse/bad-12.out b/libtests/qtest/json_parse/bad-12.out
new file mode 100644
index 00000000..0ff371a1
--- /dev/null
+++ b/libtests/qtest/json_parse/bad-12.out
@@ -0,0 +1 @@
+exception: bad-12.json: JSON: offset 4: unexpected dictionary end delimiter
diff --git a/libtests/qtest/json_parse/bad-13.json b/libtests/qtest/json_parse/bad-13.json
new file mode 100644
index 00000000..70312269
--- /dev/null
+++ b/libtests/qtest/json_parse/bad-13.json
@@ -0,0 +1 @@
+{"": "x"]
diff --git a/libtests/qtest/json_parse/bad-13.out b/libtests/qtest/json_parse/bad-13.out
new file mode 100644
index 00000000..8a53bd3f
--- /dev/null
+++ b/libtests/qtest/json_parse/bad-13.out
@@ -0,0 +1 @@
+exception: bad-13.json: JSON: offset 9: unexpected array end delimiter
diff --git a/libtests/qtest/json_parse/bad-14.json b/libtests/qtest/json_parse/bad-14.json
new file mode 100644
index 00000000..079b5796
--- /dev/null
+++ b/libtests/qtest/json_parse/bad-14.json
@@ -0,0 +1 @@
+]
diff --git a/libtests/qtest/json_parse/bad-14.out b/libtests/qtest/json_parse/bad-14.out
new file mode 100644
index 00000000..8f619ef8
--- /dev/null
+++ b/libtests/qtest/json_parse/bad-14.out
@@ -0,0 +1 @@
+exception: bad-14.json: JSON: offset 1: unexpected array end delimiter
diff --git a/libtests/qtest/json_parse/bad-15.json b/libtests/qtest/json_parse/bad-15.json
new file mode 100644
index 00000000..aaac6657
--- /dev/null
+++ b/libtests/qtest/json_parse/bad-15.json
@@ -0,0 +1 @@
+["a": ]
diff --git a/libtests/qtest/json_parse/bad-15.out b/libtests/qtest/json_parse/bad-15.out
new file mode 100644
index 00000000..68153212
--- /dev/null
+++ b/libtests/qtest/json_parse/bad-15.out
@@ -0,0 +1 @@
+exception: bad-15.json: JSON: offset 5: unexpected colon
diff --git a/libtests/qtest/json_parse/bad-16.json b/libtests/qtest/json_parse/bad-16.json
new file mode 100644
index 00000000..12684fdb
--- /dev/null
+++ b/libtests/qtest/json_parse/bad-16.json
@@ -0,0 +1 @@
+[,]
diff --git a/libtests/qtest/json_parse/bad-16.out b/libtests/qtest/json_parse/bad-16.out
new file mode 100644
index 00000000..1553e0b6
--- /dev/null
+++ b/libtests/qtest/json_parse/bad-16.out
@@ -0,0 +1 @@
+exception: bad-16.json: JSON: offset 2: unexpected comma
diff --git a/libtests/qtest/json_parse/bad-17.json b/libtests/qtest/json_parse/bad-17.json
new file mode 100644
index 00000000..0617cad4
--- /dev/null
+++ b/libtests/qtest/json_parse/bad-17.json
@@ -0,0 +1 @@
+[1, 2,
diff --git a/libtests/qtest/json_parse/bad-17.out b/libtests/qtest/json_parse/bad-17.out
new file mode 100644
index 00000000..d2bf40e2
--- /dev/null
+++ b/libtests/qtest/json_parse/bad-17.out
@@ -0,0 +1 @@
+exception: bad-17.json: JSON: premature end of input
diff --git a/libtests/qtest/json_parse/bad-18.json b/libtests/qtest/json_parse/bad-18.json
new file mode 100644
index 00000000..a0c81001
--- /dev/null
+++ b/libtests/qtest/json_parse/bad-18.json
Binary files differ
diff --git a/libtests/qtest/json_parse/bad-18.out b/libtests/qtest/json_parse/bad-18.out
new file mode 100644
index 00000000..0428b64f
--- /dev/null
+++ b/libtests/qtest/json_parse/bad-18.out
@@ -0,0 +1 @@
+exception: bad-18.json: JSON: null character at offset 5
diff --git a/libtests/qtest/json_parse/bad-19.json b/libtests/qtest/json_parse/bad-19.json
new file mode 100644
index 00000000..b498fd49
--- /dev/null
+++ b/libtests/qtest/json_parse/bad-19.json
@@ -0,0 +1 @@
+/
diff --git a/libtests/qtest/json_parse/bad-19.out b/libtests/qtest/json_parse/bad-19.out
new file mode 100644
index 00000000..534ff943
--- /dev/null
+++ b/libtests/qtest/json_parse/bad-19.out
@@ -0,0 +1 @@
+exception: bad-19.json: JSON: offset 0: unexpected character /
diff --git a/libtests/qtest/json_parse/bad-20.json b/libtests/qtest/json_parse/bad-20.json
new file mode 100644
index 00000000..fb5264eb
--- /dev/null
+++ b/libtests/qtest/json_parse/bad-20.json
@@ -0,0 +1 @@
+3.14e5.6
diff --git a/libtests/qtest/json_parse/bad-20.out b/libtests/qtest/json_parse/bad-20.out
new file mode 100644
index 00000000..e761bf0c
--- /dev/null
+++ b/libtests/qtest/json_parse/bad-20.out
@@ -0,0 +1 @@
+exception: bad-20.json: JSON: offset 6: numeric literal: decimal point after e
diff --git a/libtests/qtest/json_parse/bad-21.json b/libtests/qtest/json_parse/bad-21.json
new file mode 100644
index 00000000..bd87886b
--- /dev/null
+++ b/libtests/qtest/json_parse/bad-21.json
@@ -0,0 +1 @@
+3.14.159
diff --git a/libtests/qtest/json_parse/bad-21.out b/libtests/qtest/json_parse/bad-21.out
new file mode 100644
index 00000000..697fb0e3
--- /dev/null
+++ b/libtests/qtest/json_parse/bad-21.out
@@ -0,0 +1 @@
+exception: bad-21.json: JSON: offset 4: numeric literal: decimal point already seen
diff --git a/libtests/qtest/json_parse/bad-22.json b/libtests/qtest/json_parse/bad-22.json
new file mode 100644
index 00000000..38860be1
--- /dev/null
+++ b/libtests/qtest/json_parse/bad-22.json
@@ -0,0 +1 @@
+3e4e5
diff --git a/libtests/qtest/json_parse/bad-22.out b/libtests/qtest/json_parse/bad-22.out
new file mode 100644
index 00000000..bb48715b
--- /dev/null
+++ b/libtests/qtest/json_parse/bad-22.out
@@ -0,0 +1 @@
+exception: bad-22.json: JSON: offset 3: numeric literal: e already seen
diff --git a/libtests/qtest/json_parse/bad-23.json b/libtests/qtest/json_parse/bad-23.json
new file mode 100644
index 00000000..60def52f
--- /dev/null
+++ b/libtests/qtest/json_parse/bad-23.json
@@ -0,0 +1 @@
+3+4
diff --git a/libtests/qtest/json_parse/bad-23.out b/libtests/qtest/json_parse/bad-23.out
new file mode 100644
index 00000000..18872df5
--- /dev/null
+++ b/libtests/qtest/json_parse/bad-23.out
@@ -0,0 +1 @@
+exception: bad-23.json: JSON: offset 1: numeric literal: unexpected sign
diff --git a/libtests/qtest/json_parse/bad-24.json b/libtests/qtest/json_parse/bad-24.json
new file mode 100644
index 00000000..c863fc63
--- /dev/null
+++ b/libtests/qtest/json_parse/bad-24.json
@@ -0,0 +1 @@
+12x
diff --git a/libtests/qtest/json_parse/bad-24.out b/libtests/qtest/json_parse/bad-24.out
new file mode 100644
index 00000000..7d539267
--- /dev/null
+++ b/libtests/qtest/json_parse/bad-24.out
@@ -0,0 +1 @@
+exception: bad-24.json: JSON: offset 2: numeric literal: unexpected character x
diff --git a/libtests/qtest/json_parse/bad-25.json b/libtests/qtest/json_parse/bad-25.json
new file mode 100644
index 00000000..6fede091
--- /dev/null
+++ b/libtests/qtest/json_parse/bad-25.json
@@ -0,0 +1 @@
+abc1
diff --git a/libtests/qtest/json_parse/bad-25.out b/libtests/qtest/json_parse/bad-25.out
new file mode 100644
index 00000000..f2572b25
--- /dev/null
+++ b/libtests/qtest/json_parse/bad-25.out
@@ -0,0 +1 @@
+exception: bad-25.json: JSON: offset 3: keyword: unexpected character 1
diff --git a/libtests/qtest/json_parse/bad-26.json b/libtests/qtest/json_parse/bad-26.json
new file mode 100644
index 00000000..5c62a2f2
--- /dev/null
+++ b/libtests/qtest/json_parse/bad-26.json
@@ -0,0 +1 @@
+"abc\yd"
diff --git a/libtests/qtest/json_parse/bad-26.out b/libtests/qtest/json_parse/bad-26.out
new file mode 100644
index 00000000..33f536c1
--- /dev/null
+++ b/libtests/qtest/json_parse/bad-26.out
@@ -0,0 +1 @@
+exception: bad-26.json: JSON: offset 5: invalid character after backslash: y
diff --git a/libtests/qtest/json_parse/bad-27.json b/libtests/qtest/json_parse/bad-27.json
new file mode 100644
index 00000000..083d193e
--- /dev/null
+++ b/libtests/qtest/json_parse/bad-27.json
@@ -0,0 +1 @@
+"abcd
diff --git a/libtests/qtest/json_parse/bad-27.out b/libtests/qtest/json_parse/bad-27.out
new file mode 100644
index 00000000..2c2df076
--- /dev/null
+++ b/libtests/qtest/json_parse/bad-27.out
@@ -0,0 +1 @@
+exception: bad-27.json: JSON: offset 6: unterminated string
diff --git a/libtests/qtest/json_parse/bad-28.json b/libtests/qtest/json_parse/bad-28.json
new file mode 100644
index 00000000..9b571f08
--- /dev/null
+++ b/libtests/qtest/json_parse/bad-28.json
@@ -0,0 +1 @@
+"abc-no-newline\ \ No newline at end of file
diff --git a/libtests/qtest/json_parse/bad-28.out b/libtests/qtest/json_parse/bad-28.out
new file mode 100644
index 00000000..d7db2aea
--- /dev/null
+++ b/libtests/qtest/json_parse/bad-28.out
@@ -0,0 +1 @@
+exception: bad-28.json: JSON: offset 16: unterminated string
diff --git a/libtests/qtest/json_parse/bad-29.json b/libtests/qtest/json_parse/bad-29.json
new file mode 100644
index 00000000..c367cd81
--- /dev/null
+++ b/libtests/qtest/json_parse/bad-29.json
@@ -0,0 +1 @@
++123.
diff --git a/libtests/qtest/json_parse/bad-29.out b/libtests/qtest/json_parse/bad-29.out
new file mode 100644
index 00000000..b7ee83fb
--- /dev/null
+++ b/libtests/qtest/json_parse/bad-29.out
@@ -0,0 +1 @@
+exception: bad-29.json: JSON: offset 0: unexpected character +
diff --git a/libtests/qtest/json_parse/bad-30.json b/libtests/qtest/json_parse/bad-30.json
new file mode 100644
index 00000000..b8db69c7
--- /dev/null
+++ b/libtests/qtest/json_parse/bad-30.json
@@ -0,0 +1 @@
+123.
diff --git a/libtests/qtest/json_parse/bad-30.out b/libtests/qtest/json_parse/bad-30.out
new file mode 100644
index 00000000..bff961af
--- /dev/null
+++ b/libtests/qtest/json_parse/bad-30.out
@@ -0,0 +1 @@
+exception: bad-30.json: JSON: offset 5: decimal point with no digits
diff --git a/libtests/qtest/json_parse/bad-31.json b/libtests/qtest/json_parse/bad-31.json
new file mode 100644
index 00000000..39cdd0de
--- /dev/null
+++ b/libtests/qtest/json_parse/bad-31.json
@@ -0,0 +1 @@
+-
diff --git a/libtests/qtest/json_parse/bad-31.out b/libtests/qtest/json_parse/bad-31.out
new file mode 100644
index 00000000..344f42e8
--- /dev/null
+++ b/libtests/qtest/json_parse/bad-31.out
@@ -0,0 +1 @@
+exception: bad-31.json: JSON: offset 2: number with no digits
diff --git a/libtests/qtest/json_parse/bad-32.json b/libtests/qtest/json_parse/bad-32.json
new file mode 100644
index 00000000..40381e26
--- /dev/null
+++ b/libtests/qtest/json_parse/bad-32.json
@@ -0,0 +1 @@
+0123
diff --git a/libtests/qtest/json_parse/bad-32.out b/libtests/qtest/json_parse/bad-32.out
new file mode 100644
index 00000000..4372e0cf
--- /dev/null
+++ b/libtests/qtest/json_parse/bad-32.out
@@ -0,0 +1 @@
+exception: bad-32.json: JSON: offset 5: number with leading zero
diff --git a/libtests/qtest/json_parse/bad-33.json b/libtests/qtest/json_parse/bad-33.json
new file mode 100644
index 00000000..2e7a4b45
--- /dev/null
+++ b/libtests/qtest/json_parse/bad-33.json
@@ -0,0 +1 @@
+-0123
diff --git a/libtests/qtest/json_parse/bad-33.out b/libtests/qtest/json_parse/bad-33.out
new file mode 100644
index 00000000..ae41e48b
--- /dev/null
+++ b/libtests/qtest/json_parse/bad-33.out
@@ -0,0 +1 @@
+exception: bad-33.json: JSON: offset 6: number with leading zero
diff --git a/libtests/qtest/json_parse/bad-34.json b/libtests/qtest/json_parse/bad-34.json
new file mode 100644
index 00000000..fdefd9af
--- /dev/null
+++ b/libtests/qtest/json_parse/bad-34.json
@@ -0,0 +1 @@
+"a\u123 \ No newline at end of file
diff --git a/libtests/qtest/json_parse/bad-34.out b/libtests/qtest/json_parse/bad-34.out
new file mode 100644
index 00000000..f9db587a
--- /dev/null
+++ b/libtests/qtest/json_parse/bad-34.out
@@ -0,0 +1 @@
+exception: bad-34.json: JSON: offset 3: \u must be followed by four characters
diff --git a/libtests/qtest/json_parse/bad-35.json b/libtests/qtest/json_parse/bad-35.json
new file mode 100644
index 00000000..b7bea102
--- /dev/null
+++ b/libtests/qtest/json_parse/bad-35.json
@@ -0,0 +1 @@
+"a\u123qx"
diff --git a/libtests/qtest/json_parse/bad-35.out b/libtests/qtest/json_parse/bad-35.out
new file mode 100644
index 00000000..dabd6571
--- /dev/null
+++ b/libtests/qtest/json_parse/bad-35.out
@@ -0,0 +1 @@
+exception: bad-35.json: JSON: offset 3: \u must be followed by four hex digits
diff --git a/libtests/qtest/json_parse/good-01.json b/libtests/qtest/json_parse/good-01.json
new file mode 100644
index 00000000..3d6ce297
--- /dev/null
+++ b/libtests/qtest/json_parse/good-01.json
@@ -0,0 +1,3 @@
+{"a": "bcd", "e": [1,
+ 2, 3,4,"five", {"six": 7, "8": 9}, null, true,
+ false]}
diff --git a/libtests/qtest/json_parse/good-02.json b/libtests/qtest/json_parse/good-02.json
new file mode 100644
index 00000000..0967ef42
--- /dev/null
+++ b/libtests/qtest/json_parse/good-02.json
@@ -0,0 +1 @@
+{}
diff --git a/libtests/qtest/json_parse/good-03.json b/libtests/qtest/json_parse/good-03.json
new file mode 100644
index 00000000..fe51488c
--- /dev/null
+++ b/libtests/qtest/json_parse/good-03.json
@@ -0,0 +1 @@
+[]
diff --git a/libtests/qtest/json_parse/good-04.json b/libtests/qtest/json_parse/good-04.json
new file mode 100644
index 00000000..d6144800
--- /dev/null
+++ b/libtests/qtest/json_parse/good-04.json
@@ -0,0 +1 @@
+[[[{}], {"": {}}]]
diff --git a/libtests/qtest/json_parse/good-05.json b/libtests/qtest/json_parse/good-05.json
new file mode 100644
index 00000000..92232f69
--- /dev/null
+++ b/libtests/qtest/json_parse/good-05.json
@@ -0,0 +1 @@
+"x"
diff --git a/libtests/qtest/json_parse/good-06.json b/libtests/qtest/json_parse/good-06.json
new file mode 100644
index 00000000..190a1803
--- /dev/null
+++ b/libtests/qtest/json_parse/good-06.json
@@ -0,0 +1 @@
+123
diff --git a/libtests/qtest/json_parse/good-07.json b/libtests/qtest/json_parse/good-07.json
new file mode 100644
index 00000000..3a437cdb
--- /dev/null
+++ b/libtests/qtest/json_parse/good-07.json
@@ -0,0 +1 @@
+-123
diff --git a/libtests/qtest/json_parse/good-08.json b/libtests/qtest/json_parse/good-08.json
new file mode 100644
index 00000000..5708ac7f
--- /dev/null
+++ b/libtests/qtest/json_parse/good-08.json
@@ -0,0 +1 @@
+[1, -2, 3.4, -5.6, -9e1, 10e2, 12.3e5, 12.6e-7]
diff --git a/libtests/qtest/json_parse/good-09.json b/libtests/qtest/json_parse/good-09.json
new file mode 100644
index 00000000..91db9d20
--- /dev/null
+++ b/libtests/qtest/json_parse/good-09.json
@@ -0,0 +1 @@
+["aπb", "a\b\f\n\r\tc", "a\u03c0b\u03C0c", "\u03c0", "a\u0018b\u02acc"]
diff --git a/libtests/qtest/json_parse/save-01.json b/libtests/qtest/json_parse/save-01.json
new file mode 100644
index 00000000..2a9e3c20
--- /dev/null
+++ b/libtests/qtest/json_parse/save-01.json
@@ -0,0 +1,17 @@
+{
+ "a": "bcd",
+ "e": [
+ 1,
+ 2,
+ 3,
+ 4,
+ "five",
+ {
+ "8": 9,
+ "six": 7
+ },
+ null,
+ true,
+ false
+ ]
+}
diff --git a/libtests/qtest/json_parse/save-02.json b/libtests/qtest/json_parse/save-02.json
new file mode 100644
index 00000000..0967ef42
--- /dev/null
+++ b/libtests/qtest/json_parse/save-02.json
@@ -0,0 +1 @@
+{}
diff --git a/libtests/qtest/json_parse/save-03.json b/libtests/qtest/json_parse/save-03.json
new file mode 100644
index 00000000..fe51488c
--- /dev/null
+++ b/libtests/qtest/json_parse/save-03.json
@@ -0,0 +1 @@
+[]
diff --git a/libtests/qtest/json_parse/save-04.json b/libtests/qtest/json_parse/save-04.json
new file mode 100644
index 00000000..9286cc19
--- /dev/null
+++ b/libtests/qtest/json_parse/save-04.json
@@ -0,0 +1,10 @@
+[
+ [
+ [
+ {}
+ ],
+ {
+ "": {}
+ }
+ ]
+]
diff --git a/libtests/qtest/json_parse/save-05.json b/libtests/qtest/json_parse/save-05.json
new file mode 100644
index 00000000..92232f69
--- /dev/null
+++ b/libtests/qtest/json_parse/save-05.json
@@ -0,0 +1 @@
+"x"
diff --git a/libtests/qtest/json_parse/save-06.json b/libtests/qtest/json_parse/save-06.json
new file mode 100644
index 00000000..190a1803
--- /dev/null
+++ b/libtests/qtest/json_parse/save-06.json
@@ -0,0 +1 @@
+123
diff --git a/libtests/qtest/json_parse/save-07.json b/libtests/qtest/json_parse/save-07.json
new file mode 100644
index 00000000..3a437cdb
--- /dev/null
+++ b/libtests/qtest/json_parse/save-07.json
@@ -0,0 +1 @@
+-123
diff --git a/libtests/qtest/json_parse/save-08.json b/libtests/qtest/json_parse/save-08.json
new file mode 100644
index 00000000..30ceeba1
--- /dev/null
+++ b/libtests/qtest/json_parse/save-08.json
@@ -0,0 +1,10 @@
+[
+ 1,
+ -2,
+ 3.4,
+ -5.6,
+ -9e1,
+ 10e2,
+ 12.3e5,
+ 12.6e-7
+]
diff --git a/libtests/qtest/json_parse/save-09.json b/libtests/qtest/json_parse/save-09.json
new file mode 100644
index 00000000..a064cbac
--- /dev/null
+++ b/libtests/qtest/json_parse/save-09.json
@@ -0,0 +1,7 @@
+[
+ "aπb",
+ "a\b\f\n\r\tc",
+ "aπbπc",
+ "π",
+ "a\u0018bʬc"
+]