Files
turso/testing/all.test
mazchew fc0c3d539a add min aggregate function
add changes for all.test
2024-07-09 03:14:02 +08:00

65 lines
1.4 KiB
Tcl
Executable File

#!/usr/bin/env tclsh
set sqlite_exec [expr {[info exists env(SQLITE_EXEC)] ? $env(SQLITE_EXEC) : "sqlite3"}]
proc evaluate_sql {sqlite_exec sql} {
set command [list $sqlite_exec testing/testing.db $sql]
set output [exec {*}$command]
return $output
}
proc run_test {sqlite_exec sql expected_output} {
set actual_output [evaluate_sql $sqlite_exec $sql]
if {$actual_output ne $expected_output} {
puts "Test FAILED: '$sql' returned '$actual_output'"
exit 1
}
}
proc do_execsql_test {test_name sql_statements expected_outputs} {
puts "Running test: $test_name"
set combined_sql [join $sql_statements " "]
set combined_expected_output [join $expected_outputs "\n"]
run_test $::sqlite_exec $combined_sql $combined_expected_output
}
do_execsql_test select-const-1 {
SELECT 1
} {1}
do_execsql_test select-const-2 {
SELECT 2
} {2}
do_execsql_test select-avg {
SELECT avg(age) FROM users;
} {50.4649}
do_execsql_test select-sum {
SELECT sum(age) FROM users;
} {504649}
do_execsql_test select-limit {
SELECT id FROM users LIMIT 1;
} {1}
do_execsql_test select-count {
SELECT count(id) FROM users;
} {10000}
do_execsql_test select-max {
SELECT max(age) FROM users;
} {100}
do_execsql_test select-min {
SELECT min(age) FROM users;
} {1}
do_execsql_test select-limit-0 {
SELECT id FROM users LIMIT 0;
} {}
do_execsql_test pragma-cache-size {
PRAGMA cache_size
} {-2000}