#!/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-limit-0 { SELECT id FROM users LIMIT 0; } {} do_execsql_test pragma-cache-size { PRAGMA cache_size } {-2000}