1
#![allow(non_snake_case)]
2
use justjson::parser::Parser;
3

            
4
macro_rules! json_test_suite_test {
5
    ($name:ident, $file_name:literal) => {
6
        #[test]
7
318
        fn $name() {
8
318
            let src = include_bytes!(concat!("./JSONTestSuite/", $file_name));
9
318

            
10
318
            let result = Parser::validate_json_bytes(src);
11
318
            match stringify!($name).chars().next().unwrap() {
12
                'i' => {
13
                    // Doesn't matter, just don't crash.
14
35
                    println!("i test result: {}", result.is_ok())
15
                }
16
95
                'y' => {
17
95
                    result.expect("failed when expecting success");
18
95
                }
19
188
                other => {
20
188
                    assert_eq!(other, 'n');
21
188
                    result.expect_err("success when expecting failure");
22
                }
23
            }
24
318
        }
25
    };
26
}
27

            
28
1
#[test]
29
1
fn generate_macro_calls() {
30
1
    let mut names = Vec::new();
31
318
    for entry in std::fs::read_dir("./tests/JSONTestSuite").unwrap() {
32
318
        let name = entry.unwrap().file_name();
33
318
        let name = name.to_str().unwrap();
34
318
        if name.ends_with(".json") {
35
318
            names.push(name.to_string());
36
318
        }
37
    }
38
1
    names.sort();
39
319
    for name in names {
40
318
        let name_without_json = &name[..name.len() - 5];
41
318
        let safe = name_without_json
42
318
            .replace('+', "plus")
43
318
            .replace(['-', '.'], "_")
44
318
            .replace('#', "pound");
45
318
        println!("json_test_suite_test!({safe}, \"{name}\");");
46
318
    }
47
1
}
48

            
49
1
json_test_suite_test!(
50
1
    i_number_double_huge_neg_exp,
51
1
    "i_number_double_huge_neg_exp.json"
52
1
);
53
1
json_test_suite_test!(i_number_huge_exp, "i_number_huge_exp.json");
54
1
json_test_suite_test!(i_number_neg_int_huge_exp, "i_number_neg_int_huge_exp.json");
55
1
json_test_suite_test!(
56
1
    i_number_pos_double_huge_exp,
57
1
    "i_number_pos_double_huge_exp.json"
58
1
);
59
1
json_test_suite_test!(
60
1
    i_number_real_neg_overflow,
61
1
    "i_number_real_neg_overflow.json"
62
1
);
63
1
json_test_suite_test!(
64
1
    i_number_real_pos_overflow,
65
1
    "i_number_real_pos_overflow.json"
66
1
);
67
1
json_test_suite_test!(i_number_real_underflow, "i_number_real_underflow.json");
68
1
json_test_suite_test!(i_number_too_big_neg_int, "i_number_too_big_neg_int.json");
69
1
json_test_suite_test!(i_number_too_big_pos_int, "i_number_too_big_pos_int.json");
70
1
json_test_suite_test!(
71
1
    i_number_very_big_negative_int,
72
1
    "i_number_very_big_negative_int.json"
73
1
);
74
1
json_test_suite_test!(
75
1
    i_object_key_lone_2nd_surrogate,
76
1
    "i_object_key_lone_2nd_surrogate.json"
77
1
);
78
1
json_test_suite_test!(
79
1
    i_string_1st_surrogate_but_2nd_missing,
80
1
    "i_string_1st_surrogate_but_2nd_missing.json"
81
1
);
82
1
json_test_suite_test!(
83
1
    i_string_1st_valid_surrogate_2nd_invalid,
84
1
    "i_string_1st_valid_surrogate_2nd_invalid.json"
85
1
);
86
1
json_test_suite_test!(
87
1
    i_string_UTF_16LE_with_BOM,
88
1
    "i_string_UTF-16LE_with_BOM.json"
89
1
);
90
1
json_test_suite_test!(
91
1
    i_string_UTF_8_invalid_sequence,
92
1
    "i_string_UTF-8_invalid_sequence.json"
93
1
);
94
1
json_test_suite_test!(
95
1
    i_string_UTF8_surrogate_UplusD800,
96
1
    "i_string_UTF8_surrogate_U+D800.json"
97
1
);
98
1
json_test_suite_test!(
99
1
    i_string_incomplete_surrogate_and_escape_valid,
100
1
    "i_string_incomplete_surrogate_and_escape_valid.json"
101
1
);
102
1
json_test_suite_test!(
103
1
    i_string_incomplete_surrogate_pair,
104
1
    "i_string_incomplete_surrogate_pair.json"
105
1
);
106
1
json_test_suite_test!(
107
1
    i_string_incomplete_surrogates_escape_valid,
108
1
    "i_string_incomplete_surrogates_escape_valid.json"
109
1
);
110
1
json_test_suite_test!(
111
1
    i_string_invalid_lonely_surrogate,
112
1
    "i_string_invalid_lonely_surrogate.json"
113
1
);
114
1
json_test_suite_test!(
115
1
    i_string_invalid_surrogate,
116
1
    "i_string_invalid_surrogate.json"
117
1
);
118
1
json_test_suite_test!(i_string_invalid_utf_8, "i_string_invalid_utf-8.json");
119
1
json_test_suite_test!(
120
1
    i_string_inverted_surrogates_Uplus1D11E,
121
1
    "i_string_inverted_surrogates_U+1D11E.json"
122
1
);
123
1
json_test_suite_test!(i_string_iso_latin_1, "i_string_iso_latin_1.json");
124
1
json_test_suite_test!(
125
1
    i_string_lone_second_surrogate,
126
1
    "i_string_lone_second_surrogate.json"
127
1
);
128
1
json_test_suite_test!(
129
1
    i_string_lone_utf8_continuation_byte,
130
1
    "i_string_lone_utf8_continuation_byte.json"
131
1
);
132
1
json_test_suite_test!(
133
1
    i_string_not_in_unicode_range,
134
1
    "i_string_not_in_unicode_range.json"
135
1
);
136
1
json_test_suite_test!(
137
1
    i_string_overlong_sequence_2_bytes,
138
1
    "i_string_overlong_sequence_2_bytes.json"
139
1
);
140
1
json_test_suite_test!(
141
1
    i_string_overlong_sequence_6_bytes,
142
1
    "i_string_overlong_sequence_6_bytes.json"
143
1
);
144
1
json_test_suite_test!(
145
1
    i_string_overlong_sequence_6_bytes_null,
146
1
    "i_string_overlong_sequence_6_bytes_null.json"
147
1
);
148
1
json_test_suite_test!(i_string_truncated_utf_8, "i_string_truncated-utf-8.json");
149
1
json_test_suite_test!(i_string_utf16BE_no_BOM, "i_string_utf16BE_no_BOM.json");
150
1
json_test_suite_test!(i_string_utf16LE_no_BOM, "i_string_utf16LE_no_BOM.json");
151
1
json_test_suite_test!(
152
1
    i_structure_500_nested_arrays,
153
1
    "i_structure_500_nested_arrays.json"
154
1
);
155
1
json_test_suite_test!(
156
1
    i_structure_UTF_8_BOM_empty_object,
157
1
    "i_structure_UTF-8_BOM_empty_object.json"
158
1
);
159
1
json_test_suite_test!(
160
1
    n_array_1_true_without_comma,
161
1
    "n_array_1_true_without_comma.json"
162
1
);
163
1
json_test_suite_test!(n_array_a_invalid_utf8, "n_array_a_invalid_utf8.json");
164
1
json_test_suite_test!(
165
1
    n_array_colon_instead_of_comma,
166
1
    "n_array_colon_instead_of_comma.json"
167
1
);
168
1
json_test_suite_test!(n_array_comma_after_close, "n_array_comma_after_close.json");
169
1
json_test_suite_test!(n_array_comma_and_number, "n_array_comma_and_number.json");
170
1
json_test_suite_test!(n_array_double_comma, "n_array_double_comma.json");
171
1
json_test_suite_test!(
172
1
    n_array_double_extra_comma,
173
1
    "n_array_double_extra_comma.json"
174
1
);
175
1
json_test_suite_test!(n_array_extra_close, "n_array_extra_close.json");
176
1
json_test_suite_test!(n_array_extra_comma, "n_array_extra_comma.json");
177
1
json_test_suite_test!(n_array_incomplete, "n_array_incomplete.json");
178
1
json_test_suite_test!(
179
1
    n_array_incomplete_invalid_value,
180
1
    "n_array_incomplete_invalid_value.json"
181
1
);
182
1
json_test_suite_test!(
183
1
    n_array_inner_array_no_comma,
184
1
    "n_array_inner_array_no_comma.json"
185
1
);
186
1
json_test_suite_test!(n_array_invalid_utf8, "n_array_invalid_utf8.json");
187
1
json_test_suite_test!(
188
1
    n_array_items_separated_by_semicolon,
189
1
    "n_array_items_separated_by_semicolon.json"
190
1
);
191
1
json_test_suite_test!(n_array_just_comma, "n_array_just_comma.json");
192
1
json_test_suite_test!(n_array_just_minus, "n_array_just_minus.json");
193
1
json_test_suite_test!(n_array_missing_value, "n_array_missing_value.json");
194
1
json_test_suite_test!(n_array_newlines_unclosed, "n_array_newlines_unclosed.json");
195
1
json_test_suite_test!(n_array_number_and_comma, "n_array_number_and_comma.json");
196
1
json_test_suite_test!(
197
1
    n_array_number_and_several_commas,
198
1
    "n_array_number_and_several_commas.json"
199
1
);
200
1
json_test_suite_test!(
201
1
    n_array_spaces_vertical_tab_formfeed,
202
1
    "n_array_spaces_vertical_tab_formfeed.json"
203
1
);
204
1
json_test_suite_test!(n_array_star_inside, "n_array_star_inside.json");
205
1
json_test_suite_test!(n_array_unclosed, "n_array_unclosed.json");
206
1
json_test_suite_test!(
207
1
    n_array_unclosed_trailing_comma,
208
1
    "n_array_unclosed_trailing_comma.json"
209
1
);
210
1
json_test_suite_test!(
211
1
    n_array_unclosed_with_new_lines,
212
1
    "n_array_unclosed_with_new_lines.json"
213
1
);
214
1
json_test_suite_test!(
215
1
    n_array_unclosed_with_object_inside,
216
1
    "n_array_unclosed_with_object_inside.json"
217
1
);
218
1
json_test_suite_test!(n_incomplete_false, "n_incomplete_false.json");
219
1
json_test_suite_test!(n_incomplete_null, "n_incomplete_null.json");
220
1
json_test_suite_test!(n_incomplete_true, "n_incomplete_true.json");
221
1
json_test_suite_test!(
222
1
    n_multidigit_number_then_00,
223
1
    "n_multidigit_number_then_00.json"
224
1
);
225
1
json_test_suite_test!(n_number_plusplus, "n_number_++.json");
226
1
json_test_suite_test!(n_number_plus1, "n_number_+1.json");
227
1
json_test_suite_test!(n_number_plusInf, "n_number_+Inf.json");
228
1
json_test_suite_test!(n_number__01, "n_number_-01.json");
229
1
json_test_suite_test!(n_number__1_0_, "n_number_-1.0..json");
230
1
json_test_suite_test!(n_number__2_, "n_number_-2..json");
231
1
json_test_suite_test!(n_number__NaN, "n_number_-NaN.json");
232
1
json_test_suite_test!(n_number___1, "n_number_.-1.json");
233
1
json_test_suite_test!(n_number__2e_3, "n_number_.2e-3.json");
234
1
json_test_suite_test!(n_number_0_1_2, "n_number_0.1.2.json");
235
1
json_test_suite_test!(n_number_0_3eplus, "n_number_0.3e+.json");
236
1
json_test_suite_test!(n_number_0_3e, "n_number_0.3e.json");
237
1
json_test_suite_test!(n_number_0_e1, "n_number_0.e1.json");
238
1
json_test_suite_test!(n_number_0_capital_Eplus, "n_number_0_capital_E+.json");
239
1
json_test_suite_test!(n_number_0_capital_E, "n_number_0_capital_E.json");
240
1
json_test_suite_test!(n_number_0eplus, "n_number_0e+.json");
241
1
json_test_suite_test!(n_number_0e, "n_number_0e.json");
242
1
json_test_suite_test!(n_number_1_0eplus, "n_number_1.0e+.json");
243
1
json_test_suite_test!(n_number_1_0e_, "n_number_1.0e-.json");
244
1
json_test_suite_test!(n_number_1_0e, "n_number_1.0e.json");
245
1
json_test_suite_test!(n_number_1_000, "n_number_1_000.json");
246
1
json_test_suite_test!(n_number_1eE2, "n_number_1eE2.json");
247
1
json_test_suite_test!(n_number_2_eplus3, "n_number_2.e+3.json");
248
1
json_test_suite_test!(n_number_2_e_3, "n_number_2.e-3.json");
249
1
json_test_suite_test!(n_number_2_e3, "n_number_2.e3.json");
250
1
json_test_suite_test!(n_number_9_eplus, "n_number_9.e+.json");
251
1
json_test_suite_test!(n_number_Inf, "n_number_Inf.json");
252
1
json_test_suite_test!(n_number_NaN, "n_number_NaN.json");
253
1
json_test_suite_test!(
254
1
    n_number_UplusFF11_fullwidth_digit_one,
255
1
    "n_number_U+FF11_fullwidth_digit_one.json"
256
1
);
257
1
json_test_suite_test!(n_number_expression, "n_number_expression.json");
258
1
json_test_suite_test!(n_number_hex_1_digit, "n_number_hex_1_digit.json");
259
1
json_test_suite_test!(n_number_hex_2_digits, "n_number_hex_2_digits.json");
260
1
json_test_suite_test!(n_number_infinity, "n_number_infinity.json");
261
1
json_test_suite_test!(n_number_invalidplus_, "n_number_invalid+-.json");
262
1
json_test_suite_test!(
263
1
    n_number_invalid_negative_real,
264
1
    "n_number_invalid-negative-real.json"
265
1
);
266
1
json_test_suite_test!(
267
1
    n_number_invalid_utf_8_in_bigger_int,
268
1
    "n_number_invalid-utf-8-in-bigger-int.json"
269
1
);
270
1
json_test_suite_test!(
271
1
    n_number_invalid_utf_8_in_exponent,
272
1
    "n_number_invalid-utf-8-in-exponent.json"
273
1
);
274
1
json_test_suite_test!(
275
1
    n_number_invalid_utf_8_in_int,
276
1
    "n_number_invalid-utf-8-in-int.json"
277
1
);
278
1
json_test_suite_test!(n_number_minus_infinity, "n_number_minus_infinity.json");
279
1
json_test_suite_test!(
280
1
    n_number_minus_sign_with_trailing_garbage,
281
1
    "n_number_minus_sign_with_trailing_garbage.json"
282
1
);
283
1
json_test_suite_test!(n_number_minus_space_1, "n_number_minus_space_1.json");
284
1
json_test_suite_test!(
285
1
    n_number_neg_int_starting_with_zero,
286
1
    "n_number_neg_int_starting_with_zero.json"
287
1
);
288
1
json_test_suite_test!(
289
1
    n_number_neg_real_without_int_part,
290
1
    "n_number_neg_real_without_int_part.json"
291
1
);
292
1
json_test_suite_test!(
293
1
    n_number_neg_with_garbage_at_end,
294
1
    "n_number_neg_with_garbage_at_end.json"
295
1
);
296
1
json_test_suite_test!(
297
1
    n_number_real_garbage_after_e,
298
1
    "n_number_real_garbage_after_e.json"
299
1
);
300
1
json_test_suite_test!(
301
1
    n_number_real_with_invalid_utf8_after_e,
302
1
    "n_number_real_with_invalid_utf8_after_e.json"
303
1
);
304
1
json_test_suite_test!(
305
1
    n_number_real_without_fractional_part,
306
1
    "n_number_real_without_fractional_part.json"
307
1
);
308
1
json_test_suite_test!(
309
1
    n_number_starting_with_dot,
310
1
    "n_number_starting_with_dot.json"
311
1
);
312
1
json_test_suite_test!(n_number_with_alpha, "n_number_with_alpha.json");
313
1
json_test_suite_test!(n_number_with_alpha_char, "n_number_with_alpha_char.json");
314
1
json_test_suite_test!(
315
1
    n_number_with_leading_zero,
316
1
    "n_number_with_leading_zero.json"
317
1
);
318
1
json_test_suite_test!(n_object_bad_value, "n_object_bad_value.json");
319
1
json_test_suite_test!(n_object_bracket_key, "n_object_bracket_key.json");
320
1
json_test_suite_test!(
321
1
    n_object_comma_instead_of_colon,
322
1
    "n_object_comma_instead_of_colon.json"
323
1
);
324
1
json_test_suite_test!(n_object_double_colon, "n_object_double_colon.json");
325
1
json_test_suite_test!(n_object_emoji, "n_object_emoji.json");
326
1
json_test_suite_test!(n_object_garbage_at_end, "n_object_garbage_at_end.json");
327
1
json_test_suite_test!(
328
1
    n_object_key_with_single_quotes,
329
1
    "n_object_key_with_single_quotes.json"
330
1
);
331
1
json_test_suite_test!(
332
1
    n_object_lone_continuation_byte_in_key_and_trailing_comma,
333
1
    "n_object_lone_continuation_byte_in_key_and_trailing_comma.json"
334
1
);
335
1
json_test_suite_test!(n_object_missing_colon, "n_object_missing_colon.json");
336
1
json_test_suite_test!(n_object_missing_key, "n_object_missing_key.json");
337
1
json_test_suite_test!(
338
1
    n_object_missing_semicolon,
339
1
    "n_object_missing_semicolon.json"
340
1
);
341
1
json_test_suite_test!(n_object_missing_value, "n_object_missing_value.json");
342
1
json_test_suite_test!(n_object_no_colon, "n_object_no-colon.json");
343
1
json_test_suite_test!(n_object_non_string_key, "n_object_non_string_key.json");
344
1
json_test_suite_test!(
345
1
    n_object_non_string_key_but_huge_number_instead,
346
1
    "n_object_non_string_key_but_huge_number_instead.json"
347
1
);
348
1
json_test_suite_test!(
349
1
    n_object_repeated_null_null,
350
1
    "n_object_repeated_null_null.json"
351
1
);
352
1
json_test_suite_test!(
353
1
    n_object_several_trailing_commas,
354
1
    "n_object_several_trailing_commas.json"
355
1
);
356
1
json_test_suite_test!(n_object_single_quote, "n_object_single_quote.json");
357
1
json_test_suite_test!(n_object_trailing_comma, "n_object_trailing_comma.json");
358
1
json_test_suite_test!(n_object_trailing_comment, "n_object_trailing_comment.json");
359
1
json_test_suite_test!(
360
1
    n_object_trailing_comment_open,
361
1
    "n_object_trailing_comment_open.json"
362
1
);
363
1
json_test_suite_test!(
364
1
    n_object_trailing_comment_slash_open,
365
1
    "n_object_trailing_comment_slash_open.json"
366
1
);
367
1
json_test_suite_test!(
368
1
    n_object_trailing_comment_slash_open_incomplete,
369
1
    "n_object_trailing_comment_slash_open_incomplete.json"
370
1
);
371
1
json_test_suite_test!(
372
1
    n_object_two_commas_in_a_row,
373
1
    "n_object_two_commas_in_a_row.json"
374
1
);
375
1
json_test_suite_test!(n_object_unquoted_key, "n_object_unquoted_key.json");
376
1
json_test_suite_test!(
377
1
    n_object_unterminated_value,
378
1
    "n_object_unterminated-value.json"
379
1
);
380
1
json_test_suite_test!(
381
1
    n_object_with_single_string,
382
1
    "n_object_with_single_string.json"
383
1
);
384
1
json_test_suite_test!(
385
1
    n_object_with_trailing_garbage,
386
1
    "n_object_with_trailing_garbage.json"
387
1
);
388
1
json_test_suite_test!(n_single_space, "n_single_space.json");
389
1
json_test_suite_test!(
390
1
    n_string_1_surrogate_then_escape,
391
1
    "n_string_1_surrogate_then_escape.json"
392
1
);
393
1
json_test_suite_test!(
394
1
    n_string_1_surrogate_then_escape_u,
395
1
    "n_string_1_surrogate_then_escape_u.json"
396
1
);
397
1
json_test_suite_test!(
398
1
    n_string_1_surrogate_then_escape_u1,
399
1
    "n_string_1_surrogate_then_escape_u1.json"
400
1
);
401
1
json_test_suite_test!(
402
1
    n_string_1_surrogate_then_escape_u1x,
403
1
    "n_string_1_surrogate_then_escape_u1x.json"
404
1
);
405
1
json_test_suite_test!(
406
1
    n_string_accentuated_char_no_quotes,
407
1
    "n_string_accentuated_char_no_quotes.json"
408
1
);
409
1
json_test_suite_test!(n_string_backslash_00, "n_string_backslash_00.json");
410
1
json_test_suite_test!(n_string_escape_x, "n_string_escape_x.json");
411
1
json_test_suite_test!(
412
1
    n_string_escaped_backslash_bad,
413
1
    "n_string_escaped_backslash_bad.json"
414
1
);
415
1
json_test_suite_test!(
416
1
    n_string_escaped_ctrl_char_tab,
417
1
    "n_string_escaped_ctrl_char_tab.json"
418
1
);
419
1
json_test_suite_test!(n_string_escaped_emoji, "n_string_escaped_emoji.json");
420
1
json_test_suite_test!(
421
1
    n_string_incomplete_escape,
422
1
    "n_string_incomplete_escape.json"
423
1
);
424
1
json_test_suite_test!(
425
1
    n_string_incomplete_escaped_character,
426
1
    "n_string_incomplete_escaped_character.json"
427
1
);
428
1
json_test_suite_test!(
429
1
    n_string_incomplete_surrogate,
430
1
    "n_string_incomplete_surrogate.json"
431
1
);
432
1
json_test_suite_test!(
433
1
    n_string_incomplete_surrogate_escape_invalid,
434
1
    "n_string_incomplete_surrogate_escape_invalid.json"
435
1
);
436
1
json_test_suite_test!(
437
1
    n_string_invalid_utf_8_in_escape,
438
1
    "n_string_invalid-utf-8-in-escape.json"
439
1
);
440
1
json_test_suite_test!(
441
1
    n_string_invalid_backslash_esc,
442
1
    "n_string_invalid_backslash_esc.json"
443
1
);
444
1
json_test_suite_test!(
445
1
    n_string_invalid_unicode_escape,
446
1
    "n_string_invalid_unicode_escape.json"
447
1
);
448
1
json_test_suite_test!(
449
1
    n_string_invalid_utf8_after_escape,
450
1
    "n_string_invalid_utf8_after_escape.json"
451
1
);
452
1
json_test_suite_test!(
453
1
    n_string_leading_uescaped_thinspace,
454
1
    "n_string_leading_uescaped_thinspace.json"
455
1
);
456
1
json_test_suite_test!(
457
1
    n_string_no_quotes_with_bad_escape,
458
1
    "n_string_no_quotes_with_bad_escape.json"
459
1
);
460
1
json_test_suite_test!(
461
1
    n_string_single_doublequote,
462
1
    "n_string_single_doublequote.json"
463
1
);
464
1
json_test_suite_test!(n_string_single_quote, "n_string_single_quote.json");
465
1
json_test_suite_test!(
466
1
    n_string_single_string_no_double_quotes,
467
1
    "n_string_single_string_no_double_quotes.json"
468
1
);
469
1
json_test_suite_test!(
470
1
    n_string_start_escape_unclosed,
471
1
    "n_string_start_escape_unclosed.json"
472
1
);
473
1
json_test_suite_test!(
474
1
    n_string_unescaped_ctrl_char,
475
1
    "n_string_unescaped_ctrl_char.json"
476
1
);
477
1
json_test_suite_test!(
478
1
    n_string_unescaped_newline,
479
1
    "n_string_unescaped_newline.json"
480
1
);
481
1
json_test_suite_test!(n_string_unescaped_tab, "n_string_unescaped_tab.json");
482
1
json_test_suite_test!(n_string_unicode_CapitalU, "n_string_unicode_CapitalU.json");
483
1
json_test_suite_test!(
484
1
    n_string_with_trailing_garbage,
485
1
    "n_string_with_trailing_garbage.json"
486
1
);
487
1
json_test_suite_test!(
488
1
    n_structure_100000_opening_arrays,
489
1
    "n_structure_100000_opening_arrays.json"
490
1
);
491
1
json_test_suite_test!(
492
1
    n_structure_Uplus2060_word_joined,
493
1
    "n_structure_U+2060_word_joined.json"
494
1
);
495
1
json_test_suite_test!(
496
1
    n_structure_UTF8_BOM_no_data,
497
1
    "n_structure_UTF8_BOM_no_data.json"
498
1
);
499
1
json_test_suite_test!(
500
1
    n_structure_angle_bracket__,
501
1
    "n_structure_angle_bracket_..json"
502
1
);
503
1
json_test_suite_test!(
504
1
    n_structure_angle_bracket_null,
505
1
    "n_structure_angle_bracket_null.json"
506
1
);
507
1
json_test_suite_test!(
508
1
    n_structure_array_trailing_garbage,
509
1
    "n_structure_array_trailing_garbage.json"
510
1
);
511
1
json_test_suite_test!(
512
1
    n_structure_array_with_extra_array_close,
513
1
    "n_structure_array_with_extra_array_close.json"
514
1
);
515
1
json_test_suite_test!(
516
1
    n_structure_array_with_unclosed_string,
517
1
    "n_structure_array_with_unclosed_string.json"
518
1
);
519
1
json_test_suite_test!(
520
1
    n_structure_ascii_unicode_identifier,
521
1
    "n_structure_ascii-unicode-identifier.json"
522
1
);
523
1
json_test_suite_test!(
524
1
    n_structure_capitalized_True,
525
1
    "n_structure_capitalized_True.json"
526
1
);
527
1
json_test_suite_test!(
528
1
    n_structure_close_unopened_array,
529
1
    "n_structure_close_unopened_array.json"
530
1
);
531
1
json_test_suite_test!(
532
1
    n_structure_comma_instead_of_closing_brace,
533
1
    "n_structure_comma_instead_of_closing_brace.json"
534
1
);
535
1
json_test_suite_test!(n_structure_double_array, "n_structure_double_array.json");
536
1
json_test_suite_test!(n_structure_end_array, "n_structure_end_array.json");
537
1
json_test_suite_test!(
538
1
    n_structure_incomplete_UTF8_BOM,
539
1
    "n_structure_incomplete_UTF8_BOM.json"
540
1
);
541
1
json_test_suite_test!(
542
1
    n_structure_lone_invalid_utf_8,
543
1
    "n_structure_lone-invalid-utf-8.json"
544
1
);
545
1
json_test_suite_test!(
546
1
    n_structure_lone_open_bracket,
547
1
    "n_structure_lone-open-bracket.json"
548
1
);
549
1
json_test_suite_test!(n_structure_no_data, "n_structure_no_data.json");
550
1
json_test_suite_test!(
551
1
    n_structure_null_byte_outside_string,
552
1
    "n_structure_null-byte-outside-string.json"
553
1
);
554
1
json_test_suite_test!(
555
1
    n_structure_number_with_trailing_garbage,
556
1
    "n_structure_number_with_trailing_garbage.json"
557
1
);
558
1
json_test_suite_test!(
559
1
    n_structure_object_followed_by_closing_object,
560
1
    "n_structure_object_followed_by_closing_object.json"
561
1
);
562
1
json_test_suite_test!(
563
1
    n_structure_object_unclosed_no_value,
564
1
    "n_structure_object_unclosed_no_value.json"
565
1
);
566
1
json_test_suite_test!(
567
1
    n_structure_object_with_comment,
568
1
    "n_structure_object_with_comment.json"
569
1
);
570
1
json_test_suite_test!(
571
1
    n_structure_object_with_trailing_garbage,
572
1
    "n_structure_object_with_trailing_garbage.json"
573
1
);
574
1
json_test_suite_test!(
575
1
    n_structure_open_array_apostrophe,
576
1
    "n_structure_open_array_apostrophe.json"
577
1
);
578
1
json_test_suite_test!(
579
1
    n_structure_open_array_comma,
580
1
    "n_structure_open_array_comma.json"
581
1
);
582
1
json_test_suite_test!(
583
1
    n_structure_open_array_object,
584
1
    "n_structure_open_array_object.json"
585
1
);
586
1
json_test_suite_test!(
587
1
    n_structure_open_array_open_object,
588
1
    "n_structure_open_array_open_object.json"
589
1
);
590
1
json_test_suite_test!(
591
1
    n_structure_open_array_open_string,
592
1
    "n_structure_open_array_open_string.json"
593
1
);
594
1
json_test_suite_test!(
595
1
    n_structure_open_array_string,
596
1
    "n_structure_open_array_string.json"
597
1
);
598
1
json_test_suite_test!(n_structure_open_object, "n_structure_open_object.json");
599
1
json_test_suite_test!(
600
1
    n_structure_open_object_close_array,
601
1
    "n_structure_open_object_close_array.json"
602
1
);
603
1
json_test_suite_test!(
604
1
    n_structure_open_object_comma,
605
1
    "n_structure_open_object_comma.json"
606
1
);
607
1
json_test_suite_test!(
608
1
    n_structure_open_object_open_array,
609
1
    "n_structure_open_object_open_array.json"
610
1
);
611
1
json_test_suite_test!(
612
1
    n_structure_open_object_open_string,
613
1
    "n_structure_open_object_open_string.json"
614
1
);
615
1
json_test_suite_test!(
616
1
    n_structure_open_object_string_with_apostrophes,
617
1
    "n_structure_open_object_string_with_apostrophes.json"
618
1
);
619
1
json_test_suite_test!(n_structure_open_open, "n_structure_open_open.json");
620
1
json_test_suite_test!(n_structure_single_eacute, "n_structure_single_eacute.json");
621
1
json_test_suite_test!(n_structure_single_star, "n_structure_single_star.json");
622
1
json_test_suite_test!(n_structure_trailing_pound, "n_structure_trailing_#.json");
623
1
json_test_suite_test!(
624
1
    n_structure_uescaped_LF_before_string,
625
1
    "n_structure_uescaped_LF_before_string.json"
626
1
);
627
1
json_test_suite_test!(
628
1
    n_structure_unclosed_array,
629
1
    "n_structure_unclosed_array.json"
630
1
);
631
1
json_test_suite_test!(
632
1
    n_structure_unclosed_array_partial_null,
633
1
    "n_structure_unclosed_array_partial_null.json"
634
1
);
635
1
json_test_suite_test!(
636
1
    n_structure_unclosed_array_unfinished_false,
637
1
    "n_structure_unclosed_array_unfinished_false.json"
638
1
);
639
1
json_test_suite_test!(
640
1
    n_structure_unclosed_array_unfinished_true,
641
1
    "n_structure_unclosed_array_unfinished_true.json"
642
1
);
643
1
json_test_suite_test!(
644
1
    n_structure_unclosed_object,
645
1
    "n_structure_unclosed_object.json"
646
1
);
647
1
json_test_suite_test!(
648
1
    n_structure_unicode_identifier,
649
1
    "n_structure_unicode-identifier.json"
650
1
);
651
1
json_test_suite_test!(
652
1
    n_structure_whitespace_Uplus2060_word_joiner,
653
1
    "n_structure_whitespace_U+2060_word_joiner.json"
654
1
);
655
1
json_test_suite_test!(
656
1
    n_structure_whitespace_formfeed,
657
1
    "n_structure_whitespace_formfeed.json"
658
1
);
659
1
json_test_suite_test!(y_array_arraysWithSpaces, "y_array_arraysWithSpaces.json");
660
1
json_test_suite_test!(y_array_empty_string, "y_array_empty-string.json");
661
1
json_test_suite_test!(y_array_empty, "y_array_empty.json");
662
1
json_test_suite_test!(
663
1
    y_array_ending_with_newline,
664
1
    "y_array_ending_with_newline.json"
665
1
);
666
1
json_test_suite_test!(y_array_false, "y_array_false.json");
667
1
json_test_suite_test!(y_array_heterogeneous, "y_array_heterogeneous.json");
668
1
json_test_suite_test!(y_array_null, "y_array_null.json");
669
1
json_test_suite_test!(
670
1
    y_array_with_1_and_newline,
671
1
    "y_array_with_1_and_newline.json"
672
1
);
673
1
json_test_suite_test!(
674
1
    y_array_with_leading_space,
675
1
    "y_array_with_leading_space.json"
676
1
);
677
1
json_test_suite_test!(y_array_with_several_null, "y_array_with_several_null.json");
678
1
json_test_suite_test!(
679
1
    y_array_with_trailing_space,
680
1
    "y_array_with_trailing_space.json"
681
1
);
682
1
json_test_suite_test!(y_number, "y_number.json");
683
1
json_test_suite_test!(y_number_0eplus1, "y_number_0e+1.json");
684
1
json_test_suite_test!(y_number_0e1, "y_number_0e1.json");
685
1
json_test_suite_test!(y_number_after_space, "y_number_after_space.json");
686
1
json_test_suite_test!(
687
1
    y_number_double_close_to_zero,
688
1
    "y_number_double_close_to_zero.json"
689
1
);
690
1
json_test_suite_test!(y_number_int_with_exp, "y_number_int_with_exp.json");
691
1
json_test_suite_test!(y_number_minus_zero, "y_number_minus_zero.json");
692
1
json_test_suite_test!(y_number_negative_int, "y_number_negative_int.json");
693
1
json_test_suite_test!(y_number_negative_one, "y_number_negative_one.json");
694
1
json_test_suite_test!(y_number_negative_zero, "y_number_negative_zero.json");
695
1
json_test_suite_test!(y_number_real_capital_e, "y_number_real_capital_e.json");
696
1
json_test_suite_test!(
697
1
    y_number_real_capital_e_neg_exp,
698
1
    "y_number_real_capital_e_neg_exp.json"
699
1
);
700
1
json_test_suite_test!(
701
1
    y_number_real_capital_e_pos_exp,
702
1
    "y_number_real_capital_e_pos_exp.json"
703
1
);
704
1
json_test_suite_test!(y_number_real_exponent, "y_number_real_exponent.json");
705
1
json_test_suite_test!(
706
1
    y_number_real_fraction_exponent,
707
1
    "y_number_real_fraction_exponent.json"
708
1
);
709
1
json_test_suite_test!(y_number_real_neg_exp, "y_number_real_neg_exp.json");
710
1
json_test_suite_test!(
711
1
    y_number_real_pos_exponent,
712
1
    "y_number_real_pos_exponent.json"
713
1
);
714
1
json_test_suite_test!(y_number_simple_int, "y_number_simple_int.json");
715
1
json_test_suite_test!(y_number_simple_real, "y_number_simple_real.json");
716
1
json_test_suite_test!(y_object, "y_object.json");
717
1
json_test_suite_test!(y_object_basic, "y_object_basic.json");
718
1
json_test_suite_test!(y_object_duplicated_key, "y_object_duplicated_key.json");
719
1
json_test_suite_test!(
720
1
    y_object_duplicated_key_and_value,
721
1
    "y_object_duplicated_key_and_value.json"
722
1
);
723
1
json_test_suite_test!(y_object_empty, "y_object_empty.json");
724
1
json_test_suite_test!(y_object_empty_key, "y_object_empty_key.json");
725
1
json_test_suite_test!(
726
1
    y_object_escaped_null_in_key,
727
1
    "y_object_escaped_null_in_key.json"
728
1
);
729
1
json_test_suite_test!(y_object_extreme_numbers, "y_object_extreme_numbers.json");
730
1
json_test_suite_test!(y_object_long_strings, "y_object_long_strings.json");
731
1
json_test_suite_test!(y_object_simple, "y_object_simple.json");
732
1
json_test_suite_test!(y_object_string_unicode, "y_object_string_unicode.json");
733
1
json_test_suite_test!(y_object_with_newlines, "y_object_with_newlines.json");
734
1
json_test_suite_test!(
735
1
    y_string_1_2_3_bytes_UTF_8_sequences,
736
1
    "y_string_1_2_3_bytes_UTF-8_sequences.json"
737
1
);
738
1
json_test_suite_test!(
739
1
    y_string_accepted_surrogate_pair,
740
1
    "y_string_accepted_surrogate_pair.json"
741
1
);
742
1
json_test_suite_test!(
743
1
    y_string_accepted_surrogate_pairs,
744
1
    "y_string_accepted_surrogate_pairs.json"
745
1
);
746
1
json_test_suite_test!(y_string_allowed_escapes, "y_string_allowed_escapes.json");
747
1
json_test_suite_test!(
748
1
    y_string_backslash_and_u_escaped_zero,
749
1
    "y_string_backslash_and_u_escaped_zero.json"
750
1
);
751
1
json_test_suite_test!(
752
1
    y_string_backslash_doublequotes,
753
1
    "y_string_backslash_doublequotes.json"
754
1
);
755
1
json_test_suite_test!(y_string_comments, "y_string_comments.json");
756
1
json_test_suite_test!(y_string_double_escape_a, "y_string_double_escape_a.json");
757
1
json_test_suite_test!(y_string_double_escape_n, "y_string_double_escape_n.json");
758
1
json_test_suite_test!(
759
1
    y_string_escaped_control_character,
760
1
    "y_string_escaped_control_character.json"
761
1
);
762
1
json_test_suite_test!(
763
1
    y_string_escaped_noncharacter,
764
1
    "y_string_escaped_noncharacter.json"
765
1
);
766
1
json_test_suite_test!(y_string_in_array, "y_string_in_array.json");
767
1
json_test_suite_test!(
768
1
    y_string_in_array_with_leading_space,
769
1
    "y_string_in_array_with_leading_space.json"
770
1
);
771
1
json_test_suite_test!(
772
1
    y_string_last_surrogates_1_and_2,
773
1
    "y_string_last_surrogates_1_and_2.json"
774
1
);
775
1
json_test_suite_test!(y_string_nbsp_uescaped, "y_string_nbsp_uescaped.json");
776
1
json_test_suite_test!(
777
1
    y_string_nonCharacterInUTF_8_Uplus10FFFF,
778
1
    "y_string_nonCharacterInUTF-8_U+10FFFF.json"
779
1
);
780
1
json_test_suite_test!(
781
1
    y_string_nonCharacterInUTF_8_UplusFFFF,
782
1
    "y_string_nonCharacterInUTF-8_U+FFFF.json"
783
1
);
784
1
json_test_suite_test!(y_string_null_escape, "y_string_null_escape.json");
785
1
json_test_suite_test!(y_string_one_byte_utf_8, "y_string_one-byte-utf-8.json");
786
1
json_test_suite_test!(y_string_pi, "y_string_pi.json");
787
1
json_test_suite_test!(
788
1
    y_string_reservedCharacterInUTF_8_Uplus1BFFF,
789
1
    "y_string_reservedCharacterInUTF-8_U+1BFFF.json"
790
1
);
791
1
json_test_suite_test!(y_string_simple_ascii, "y_string_simple_ascii.json");
792
1
json_test_suite_test!(y_string_space, "y_string_space.json");
793
1
json_test_suite_test!(
794
1
    y_string_surrogates_Uplus1D11E_MUSICAL_SYMBOL_G_CLEF,
795
1
    "y_string_surrogates_U+1D11E_MUSICAL_SYMBOL_G_CLEF.json"
796
1
);
797
1
json_test_suite_test!(y_string_three_byte_utf_8, "y_string_three-byte-utf-8.json");
798
1
json_test_suite_test!(y_string_two_byte_utf_8, "y_string_two-byte-utf-8.json");
799
1
json_test_suite_test!(y_string_uplus2028_line_sep, "y_string_u+2028_line_sep.json");
800
1
json_test_suite_test!(y_string_uplus2029_par_sep, "y_string_u+2029_par_sep.json");
801
1
json_test_suite_test!(y_string_uEscape, "y_string_uEscape.json");
802
1
json_test_suite_test!(y_string_uescaped_newline, "y_string_uescaped_newline.json");
803
1
json_test_suite_test!(
804
1
    y_string_unescaped_char_delete,
805
1
    "y_string_unescaped_char_delete.json"
806
1
);
807
1
json_test_suite_test!(y_string_unicode, "y_string_unicode.json");
808
1
json_test_suite_test!(
809
1
    y_string_unicodeEscapedBackslash,
810
1
    "y_string_unicodeEscapedBackslash.json"
811
1
);
812
1
json_test_suite_test!(y_string_unicode_2, "y_string_unicode_2.json");
813
1
json_test_suite_test!(
814
1
    y_string_unicode_Uplus10FFFE_nonchar,
815
1
    "y_string_unicode_U+10FFFE_nonchar.json"
816
1
);
817
1
json_test_suite_test!(
818
1
    y_string_unicode_Uplus1FFFE_nonchar,
819
1
    "y_string_unicode_U+1FFFE_nonchar.json"
820
1
);
821
1
json_test_suite_test!(
822
1
    y_string_unicode_Uplus200B_ZERO_WIDTH_SPACE,
823
1
    "y_string_unicode_U+200B_ZERO_WIDTH_SPACE.json"
824
1
);
825
1
json_test_suite_test!(
826
1
    y_string_unicode_Uplus2064_invisible_plus,
827
1
    "y_string_unicode_U+2064_invisible_plus.json"
828
1
);
829
1
json_test_suite_test!(
830
1
    y_string_unicode_UplusFDD0_nonchar,
831
1
    "y_string_unicode_U+FDD0_nonchar.json"
832
1
);
833
1
json_test_suite_test!(
834
1
    y_string_unicode_UplusFFFE_nonchar,
835
1
    "y_string_unicode_U+FFFE_nonchar.json"
836
1
);
837
1
json_test_suite_test!(
838
1
    y_string_unicode_escaped_double_quote,
839
1
    "y_string_unicode_escaped_double_quote.json"
840
1
);
841
1
json_test_suite_test!(y_string_utf8, "y_string_utf8.json");
842
1
json_test_suite_test!(
843
1
    y_string_with_del_character,
844
1
    "y_string_with_del_character.json"
845
1
);
846
1
json_test_suite_test!(y_structure_lonely_false, "y_structure_lonely_false.json");
847
1
json_test_suite_test!(y_structure_lonely_int, "y_structure_lonely_int.json");
848
1
json_test_suite_test!(
849
1
    y_structure_lonely_negative_real,
850
1
    "y_structure_lonely_negative_real.json"
851
1
);
852
1
json_test_suite_test!(y_structure_lonely_null, "y_structure_lonely_null.json");
853
1
json_test_suite_test!(y_structure_lonely_string, "y_structure_lonely_string.json");
854
1
json_test_suite_test!(y_structure_lonely_true, "y_structure_lonely_true.json");
855
1
json_test_suite_test!(y_structure_string_empty, "y_structure_string_empty.json");
856
1
json_test_suite_test!(
857
1
    y_structure_trailing_newline,
858
1
    "y_structure_trailing_newline.json"
859
1
);
860
1
json_test_suite_test!(y_structure_true_in_array, "y_structure_true_in_array.json");
861
1
json_test_suite_test!(
862
1
    y_structure_whitespace_array,
863
1
    "y_structure_whitespace_array.json"
864
1
);