From b406626c64313ae348996c243a0a05d3f6ed2c3c Mon Sep 17 00:00:00 2001 From: Jan Mercl <0xjnml@gmail.com> Date: Sun, 26 Jul 2020 22:36:18 +0200 Subject: release v1.4.0-beta1 --- testdata/tcl/sqllog.test | 113 +++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 113 insertions(+) create mode 100644 testdata/tcl/sqllog.test (limited to 'testdata/tcl/sqllog.test') diff --git a/testdata/tcl/sqllog.test b/testdata/tcl/sqllog.test new file mode 100644 index 0000000..53d8d87 --- /dev/null +++ b/testdata/tcl/sqllog.test @@ -0,0 +1,113 @@ +# 2015 November 13 +# +# The author disclaims copyright to this source code. In place of +# a legal notice, here is a blessing: +# +# May you do good and not evil. +# May you find forgiveness for yourself and forgive others. +# May you share freely, never taking more than you give. +# +#*********************************************************************** +# This file implements regression tests for SQLite library. The +# focus of this file is testing the test_sqllog.c module. +# + +set testdir [file dirname $argv0] +source $testdir/tester.tcl +set testprefix sqllog + +ifcapable !sqllog { + finish_test + return +} + +proc readfile {f} { + set fd [open $f] + set txt [read $fd] + close $fd + set txt +} + +proc delete_all_sqllog_files {} { + forcedelete {*}[glob -nocomplain sqllog_*.sql] + forcedelete {*}[glob -nocomplain sqllog_*.db] + forcedelete {*}[glob -nocomplain sqllog_*.idx] +} + +proc touch {f} { + set fd [open $f w+] + close $fd +} + +db close +sqlite3_shutdown +set ::env(SQLITE_SQLLOG_DIR) [pwd] + +delete_all_sqllog_files + +sqlite3 db test.db +set a a +set b b +do_execsql_test 1.0 { + CREATE TABLE t1(x, y); + INSERT INTO t1 VALUES(1, 2); + INSERT INTO t1 VALUES($a, $b); + SELECT * FROM t1; +} {1 2 a b} +db close + +do_test 1.1 { + readfile [lindex [glob sqllog_*.sql] 0] +} [string trimleft { +/-- Main database is '.*/sqllog_.*_0.db' +CREATE TABLE t1\(x, y\);; -- clock=0 +INSERT INTO t1 VALUES\(1, 2\);; -- clock=1 +INSERT INTO t1 VALUES\('a', 'b'\);; -- clock=2 +SELECT . FROM t1;; -- clock=3 +/}] + +do_test 1.2 { + file size [lindex [glob sqllog_*_0.db] 0] +} 1024 + +#------------------------------------------------------------------------- +catch { db close } +sqlite3_shutdown +delete_all_sqllog_files +forcedelete test.db-sqllog + +set ::env(SQLITE_SQLLOG_CONDITIONAL) 1 +sqlite3 db test.db +do_execsql_test 2.1 { + INSERT INTO t1 VALUES(4, 5); + SELECT * FROM t1; +} {1 2 a b 4 5} + +do_test 2.2 { + glob -nocomplain sqllog_* +} {} + +db close +touch test.db-sqllog +sqlite3 db test.db +do_execsql_test 2.3 { + INSERT INTO t1 VALUES(6, 7); + SELECT * FROM t1; +} {1 2 a b 4 5 6 7} +db close + +do_test 2.4 { + readfile [lindex [glob sqllog_*.sql] 0] +} [string trimleft { +/-- Main database is '.*/sqllog_.*_0.db' +INSERT INTO t1 VALUES\(6, 7\);; -- clock=0 +SELECT . FROM t1;; -- clock=1 +/}] + +catch { db close } +sqlite3_shutdown +unset ::env(SQLITE_SQLLOG_DIR) +unset ::env(SQLITE_SQLLOG_CONDITIONAL) +sqlite3_config_sqllog +sqlite3_initialize +finish_test -- cgit v1.2.3-70-g09d2