mirror of
https://github.com/aljazceru/turso.git
synced 2025-12-18 17:14:20 +01:00
Each test file is standalone to make it easy to run just some specific tests. However, some of the files didn't have the executable bit.
341 lines
6.1 KiB
Tcl
Executable File
341 lines
6.1 KiB
Tcl
Executable File
#!/usr/bin/env tclsh
|
|
|
|
set testdir [file dirname $argv0]
|
|
source $testdir/tester.tcl
|
|
|
|
do_execsql_test abs {
|
|
select abs(1);
|
|
} {1}
|
|
|
|
do_execsql_test abs-negative {
|
|
select abs(-1);
|
|
} {1}
|
|
|
|
do_execsql_test abs-char {
|
|
select abs('a');
|
|
} {0.0}
|
|
|
|
do_execsql_test abs-null {
|
|
select abs(null);
|
|
} {}
|
|
|
|
do_execsql_test upper {
|
|
select upper('Limbo')
|
|
} {LIMBO}
|
|
|
|
do_execsql_test upper-number {
|
|
select upper(1)
|
|
} {1}
|
|
|
|
do_execsql_test upper-char {
|
|
select upper('a')
|
|
} {A}
|
|
|
|
do_execsql_test upper-null {
|
|
select upper(null)
|
|
} {}
|
|
|
|
do_execsql_test lower {
|
|
select lower('Limbo')
|
|
} {limbo}
|
|
|
|
do_execsql_test lower-number {
|
|
select lower(1)
|
|
} {1}
|
|
|
|
do_execsql_test lower-char {
|
|
select lower('A')
|
|
} {a}
|
|
|
|
do_execsql_test lower-null {
|
|
select lower(null)
|
|
} {}
|
|
|
|
do_execsql_test trim {
|
|
SELECT trim(' Limbo ');
|
|
} {Limbo}
|
|
|
|
do_execsql_test trim-number {
|
|
SELECT trim(1);
|
|
} {1}
|
|
|
|
do_execsql_test trim-null {
|
|
SELECT trim(null);
|
|
} {}
|
|
|
|
do_execsql_test trim-leading-whitespace {
|
|
SELECT trim(' Leading');
|
|
} {Leading}
|
|
|
|
do_execsql_test trim-trailing-whitespace {
|
|
SELECT trim('Trailing ');
|
|
} {Trailing}
|
|
|
|
do_execsql_test trim-pattern {
|
|
SELECT trim('Limbo', 'Limbo');
|
|
} {}
|
|
|
|
do_execsql_test trim-pattern-number {
|
|
SELECT trim(1, '1');
|
|
} {}
|
|
|
|
do_execsql_test trim-pattern-null {
|
|
SELECT trim(null, 'null');
|
|
} {}
|
|
|
|
do_execsql_test trim-no-match-pattern {
|
|
SELECT trim('Limbo', 'xyz');
|
|
} {Limbo}
|
|
|
|
do_execsql_test ltrim {
|
|
SELECT ltrim(' Limbo ');
|
|
} {"Limbo "}
|
|
|
|
do_execsql_test ltrim-number {
|
|
SELECT ltrim(1);
|
|
} {1}
|
|
|
|
do_execsql_test ltrim-null {
|
|
SELECT ltrim(null);
|
|
} {}
|
|
|
|
do_execsql_test ltrim-leading-whitespace {
|
|
SELECT ltrim(' Leading');
|
|
} {Leading}
|
|
|
|
do_execsql_test ltrim-no-leading-whitespace {
|
|
SELECT ltrim('Limbo');
|
|
} {Limbo}
|
|
|
|
do_execsql_test ltrim-pattern {
|
|
SELECT ltrim('Limbo', 'Limbo');
|
|
} {}
|
|
|
|
do_execsql_test ltrim-pattern-number {
|
|
SELECT ltrim(1, '1');
|
|
} {}
|
|
|
|
do_execsql_test ltrim-pattern-null {
|
|
SELECT ltrim(null, 'null');
|
|
} {}
|
|
|
|
do_execsql_test ltrim-no-match-pattern {
|
|
SELECT ltrim('Limbo', 'xyz');
|
|
} {Limbo}
|
|
|
|
do_execsql_test rtrim {
|
|
SELECT rtrim(' Limbo ');
|
|
} {" Limbo"}
|
|
|
|
do_execsql_test rtrim-number {
|
|
SELECT rtrim(1);
|
|
} {1}
|
|
|
|
do_execsql_test rtrim-null {
|
|
SELECT rtrim(null);
|
|
} {}
|
|
|
|
do_execsql_test rtrim-trailing-whitespace {
|
|
SELECT rtrim('Trailing ');
|
|
} {Trailing}
|
|
|
|
do_execsql_test rtrim-no-trailing-whitespace {
|
|
SELECT rtrim('Limbo');
|
|
} {Limbo}
|
|
|
|
do_execsql_test rtrim-pattern {
|
|
SELECT rtrim('Limbo', 'Limbo');
|
|
} {}
|
|
|
|
do_execsql_test rtrim-pattern-number {
|
|
SELECT rtrim(1, '1');
|
|
} {}
|
|
|
|
do_execsql_test rtrim-pattern-null {
|
|
SELECT rtrim(null, 'null');
|
|
} {}
|
|
|
|
do_execsql_test rtrim-no-match-pattern {
|
|
SELECT rtrim('Limbo', 'xyz');
|
|
} {Limbo}
|
|
|
|
do_execsql_test round-float-no-precision {
|
|
SELECT round(123.456);
|
|
} {123.0}
|
|
|
|
do_execsql_test round-float-with-precision {
|
|
SELECT round(123.456, 2);
|
|
} {123.46}
|
|
|
|
do_execsql_test round-float-with-text-precision {
|
|
SELECT round(123.5, '1');
|
|
} {123.5}
|
|
|
|
do_execsql_test round-text-parsable {
|
|
SELECT round('123.456', 2);
|
|
} {123.46}
|
|
|
|
do_execsql_test round-text-non-parsable {
|
|
SELECT round('abc', 1);
|
|
} {0.0}
|
|
|
|
do_execsql_test round-integer-with-precision {
|
|
SELECT round(123, 1);
|
|
} {123.0}
|
|
|
|
do_execsql_test round-float-negative-precision {
|
|
SELECT round(123.456, -1);
|
|
} {123.0}
|
|
|
|
do_execsql_test round-float-zero-precision {
|
|
SELECT round(123.456, 0);
|
|
} {123.0}
|
|
|
|
do_execsql_test round-null-precision {
|
|
SELECT round(123.456, null);
|
|
} {}
|
|
|
|
do_execsql_test length-text {
|
|
SELECT length('limbo');
|
|
} {5}
|
|
|
|
do_execsql_test length-integer {
|
|
SELECT length(12345);
|
|
} {5}
|
|
|
|
do_execsql_test length-float {
|
|
SELECT length(123.456);
|
|
} {7}
|
|
|
|
do_execsql_test length-null {
|
|
SELECT length(NULL);
|
|
} {}
|
|
|
|
do_execsql_test length-empty-text {
|
|
SELECT length('');
|
|
} {0}
|
|
|
|
do_execsql_test min-number {
|
|
select min(-10,2,3)
|
|
} {-10}
|
|
|
|
do_execsql_test min-str {
|
|
select min('b','a','z')
|
|
} {a}
|
|
|
|
do_execsql_test min-null {
|
|
select min(null,null)
|
|
} {}
|
|
|
|
do_execsql_test max-number {
|
|
select max(-10,2,3)
|
|
} {3}
|
|
|
|
do_execsql_test max-str {
|
|
select max('b','a','z')
|
|
} {z}
|
|
|
|
do_execsql_test max-null {
|
|
select max(null,null)
|
|
} {}
|
|
|
|
do_execsql_test date-current-date {
|
|
SELECT length(date('now')) = 10;
|
|
} {1}
|
|
|
|
do_execsql_test date-specific-date {
|
|
SELECT date('2023-05-18');
|
|
} {2023-05-18}
|
|
|
|
do_execsql_test date-with-time {
|
|
SELECT date('2023-05-18 15:30:45');
|
|
} {2023-05-18}
|
|
|
|
do_execsql_test date-iso8601 {
|
|
SELECT date('2023-05-18T15:30:45');
|
|
} {2023-05-18}
|
|
|
|
do_execsql_test date-with-milliseconds {
|
|
SELECT date('2023-05-18 15:30:45.123');
|
|
} {2023-05-18}
|
|
|
|
do_execsql_test date-julian-day-integer {
|
|
SELECT date(2460082);
|
|
} {2023-05-17}
|
|
|
|
do_execsql_test date-julian-day-float {
|
|
SELECT date(2460082.5);
|
|
} {2023-05-18}
|
|
|
|
do_execsql_test date-invalid-input {
|
|
SELECT date('not a date');
|
|
} {{}}
|
|
|
|
do_execsql_test date-null-input {
|
|
SELECT date(NULL);
|
|
} {{}}
|
|
|
|
do_execsql_test date-out-of-range {
|
|
SELECT date('10001-01-01');
|
|
} {{}}
|
|
|
|
do_execsql_test date-time-only {
|
|
SELECT date('15:30:45');
|
|
} {2000-01-01}
|
|
|
|
do_execsql_test date-with-timezone-utc {
|
|
SELECT date('2023-05-18 15:30:45Z');
|
|
} {2023-05-18}
|
|
|
|
do_execsql_test date-with-timezone-positive {
|
|
SELECT date('2023-05-18 23:30:45+02:00');
|
|
} {2023-05-18}
|
|
|
|
do_execsql_test date-with-timezone-negative {
|
|
SELECT date('2023-05-19 01:30:45-05:00');
|
|
} {2023-05-19}
|
|
|
|
do_execsql_test date-with-timezone-day-change-positive {
|
|
SELECT date('2023-05-18 23:30:45-03:00');
|
|
} {2023-05-19}
|
|
|
|
do_execsql_test date-with-timezone-day-change-negative {
|
|
SELECT date('2023-05-19 01:30:45+03:00');
|
|
} {2023-05-18}
|
|
|
|
do_execsql_test date-with-timezone-iso8601 {
|
|
SELECT date('2023-05-18T15:30:45+02:00');
|
|
} {2023-05-18}
|
|
|
|
do_execsql_test date-with-timezone-and-milliseconds {
|
|
SELECT date('2023-05-18 15:30:45.123+02:00');
|
|
} {2023-05-18}
|
|
|
|
do_execsql_test date-with-invalid-timezone {
|
|
SELECT date('2023-05-18 15:30:45+25:00');
|
|
} {{}}
|
|
|
|
do_execsql_test unicode-a {
|
|
SELECT unicode('a');
|
|
} {97}
|
|
|
|
do_execsql_test unicode-emoji {
|
|
SELECT unicode('😊');
|
|
} {128522}
|
|
|
|
do_execsql_test unicode-empty {
|
|
SELECT unicode('');
|
|
} {}
|
|
|
|
do_execsql_test unicode-number {
|
|
SELECT unicode(23);
|
|
} {50}
|
|
|
|
do_execsql_test unicode-float {
|
|
SELECT unicode(23.45);
|
|
} {50}
|
|
|
|
do_execsql_test unicode-null {
|
|
SELECT unicode(NULL);
|
|
} {}
|