mirror of
https://github.com/aljazceru/turso.git
synced 2025-12-25 12:04:21 +01:00
117 lines
2.7 KiB
Tcl
Executable File
117 lines
2.7 KiB
Tcl
Executable File
#!/usr/bin/env tclsh
|
|
|
|
set testdir [file dirname $argv0]
|
|
source $testdir/tester.tcl
|
|
|
|
do_execsql_test json5-ecma-script-1 {
|
|
select json('{a:5,b:6}') ;
|
|
} {{{"a":5,"b":6}}}
|
|
|
|
do_execsql_test json5-ecma-script-2 {
|
|
SELECT json('{ MNO_123$xyz : 789 }');
|
|
} {{{"MNO_123$xyz":789}}}
|
|
|
|
do_execsql_test json5-with-single-trailing-comma-valid {
|
|
select json('{"a":5, "b":6, }');
|
|
} {{{"a":5,"b":6}}}
|
|
|
|
do_execsql_test json5-single-quoted {
|
|
SELECT json('{"a": ''abcd''}');
|
|
} {{{"a":"abcd"}}}
|
|
|
|
do_execsql_test json5-hexadecimal-1 {
|
|
SELECT json('{a: 0x0}')
|
|
} {{{"a":0}}}
|
|
|
|
do_execsql_test json5-hexadecimal-2 {
|
|
SELECT json('{a: 0xabcdef}')
|
|
} {{{"a":11259375}}}
|
|
|
|
do_execsql_test json5-hexadecimal-2 {
|
|
SELECT json('{a: -0xabcdef}')
|
|
} {{{"a":-11259375}}}
|
|
|
|
do_execsql_test json5-number-1 {
|
|
SELECT json('{x: 4.}')
|
|
} {{{"x":4.0}}}
|
|
|
|
do_execsql_test json5-number-2 {
|
|
SELECT json('{x: +4.}')
|
|
} {{{"x":4.0}}}
|
|
|
|
do_execsql_test json5-number-3 {
|
|
SELECT json('{x: -4.}')
|
|
} {{{"x":-4.0}}}
|
|
|
|
do_execsql_test json5-number-5 {
|
|
SELECT json('{x: Infinity}')
|
|
} {{{"x":9e999}}}
|
|
|
|
do_execsql_test json5-number-6 {
|
|
SELECT json('{x: -Infinity}')
|
|
} {{{"x":-9e999}}}
|
|
|
|
do_execsql_test json5-multi-comment {
|
|
SELECT json(' /* abc */ { /*def*/ aaa /* xyz */ : // to the end of line
|
|
123 /* xyz */ , /* 123 */ }')
|
|
} {{{"aaa":123}}}
|
|
|
|
do_execsql_test json_array_str {
|
|
SELECT json_array('a')
|
|
} {{["a"]}}
|
|
|
|
do_execsql_test json_array_numbers {
|
|
SELECT json_array(1, 1.5)
|
|
} {{[1,1.5]}}
|
|
|
|
do_execsql_test json_array_numbers_2 {
|
|
SELECT json_array(1., +2., -2.)
|
|
} {{[1.0,2.0,-2.0]}}
|
|
|
|
do_execsql_test json_array_null {
|
|
SELECT json_array(null)
|
|
} {{[null]}}
|
|
|
|
do_execsql_test json_array_not_json {
|
|
SELECT json_array('{"a":1}')
|
|
} {{["{\"a\":1}"]}}
|
|
|
|
do_execsql_test json_array_json {
|
|
SELECT json_array(json('{"a":1}'))
|
|
} {{[{"a":1}]}}
|
|
|
|
do_execsql_test json_array_nested {
|
|
SELECT json_array(json_array(1,2,3), json('[1,2,3]'), '[1,2,3]')
|
|
} {{[[1,2,3],[1,2,3],"[1,2,3]"]}}
|
|
|
|
do_execsql_test json_array_length {
|
|
SELECT json_array_length('[1,2,3,4]');
|
|
} {{4}}
|
|
|
|
do_execsql_test json_array_length_empty {
|
|
SELECT json_array_length('[]');
|
|
} {{0}}
|
|
|
|
do_execsql_test json_array_length_root {
|
|
SELECT json_array_length('[1,2,3,4]', '$');
|
|
} {{4}}
|
|
|
|
do_execsql_test json_array_length_not_array {
|
|
SELECT json_array_length('{"one":[1,2,3]}');
|
|
} {{0}}
|
|
|
|
do_execsql_test json_array_length_via_prop {
|
|
SELECT json_array_length('{"one":[1,2,3]}', '$.one');
|
|
} {{3}}
|
|
|
|
do_execsql_test json_array_length_via_index {
|
|
SELECT json_array_length('[[1,2,3,4]]', '$[0]');
|
|
} {{4}}
|
|
|
|
do_execsql_test json_array_length_via_index_not_array {
|
|
SELECT json_array_length('[1,2,3,4]', '$[2]');
|
|
} {{0}}
|
|
|
|
do_execsql_test json_array_length_via_bad_prop {
|
|
SELECT json_array_length('{"one":[1,2,3]}', '$.two');
|
|
} {{}} |