From e36d23a85ebff914d74bb541558c2b6082b78edb Mon Sep 17 00:00:00 2001 From: dan miller Date: Sat, 20 Oct 2007 02:49:29 +0000 Subject: sqlite source (unix build) added to libraries --- libraries/sqlite/unix/sqlite-3.5.1/test/trace.test | 148 +++++++++++++++++++++ 1 file changed, 148 insertions(+) create mode 100644 libraries/sqlite/unix/sqlite-3.5.1/test/trace.test (limited to 'libraries/sqlite/unix/sqlite-3.5.1/test/trace.test') diff --git a/libraries/sqlite/unix/sqlite-3.5.1/test/trace.test b/libraries/sqlite/unix/sqlite-3.5.1/test/trace.test new file mode 100644 index 0000000..2cdd961 --- /dev/null +++ b/libraries/sqlite/unix/sqlite-3.5.1/test/trace.test @@ -0,0 +1,148 @@ +# 2004 Jun 29 +# +# 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. +# +# This file implements tests for the "sqlite3_trace()" API. +# +# $Id: trace.test,v 1.6 2006/01/03 00:33:50 drh Exp $ + +set testdir [file dirname $argv0] +source $testdir/tester.tcl + +ifcapable !trace { + finish_test + return +} + +set ::stmtlist {} +do_test trace-1.1 { + set rc [catch {db trace 1 2 3} msg] + lappend rc $msg +} {1 {wrong # args: should be "db trace ?CALLBACK?"}} +proc trace_proc cmd { + lappend ::stmtlist [string trim $cmd] +} +do_test trace-1.2 { + db trace trace_proc + db trace +} {trace_proc} +do_test trace-1.3 { + execsql { + CREATE TABLE t1(a,b); + INSERT INTO t1 VALUES(1,2); + SELECT * FROM t1; + } +} {1 2} +do_test trace-1.4 { + set ::stmtlist +} {{CREATE TABLE t1(a,b);} {INSERT INTO t1 VALUES(1,2);} {SELECT * FROM t1;}} +do_test trace-1.5 { + db trace {} + db trace +} {} + +# If we prepare a statement and execute it multiple times, the trace +# happens on each execution. +# +db close +sqlite3 db test.db; set DB [sqlite3_connection_pointer db] +do_test trace-2.1 { + set STMT [sqlite3_prepare $DB {INSERT INTO t1 VALUES(2,3)} -1 TAIL] + db trace trace_proc + proc trace_proc sql { + global TRACE_OUT + set TRACE_OUT $sql + } + set TRACE_OUT {} + sqlite3_step $STMT + set TRACE_OUT +} {INSERT INTO t1 VALUES(2,3)} +do_test trace-2.2 { + set TRACE_OUT {} + sqlite3_reset $STMT + set TRACE_OUT +} {} +do_test trace-2.3 { + sqlite3_step $STMT + set TRACE_OUT +} {INSERT INTO t1 VALUES(2,3)} +do_test trace-2.4 { + execsql {SELECT * FROM t1} +} {1 2 2 3 2 3} +do_test trace-2.5 { + set TRACE_OUT +} {SELECT * FROM t1} +catch {sqlite3_finalize $STMT} + +# Similar tests, but this time for profiling. +# +do_test trace-3.1 { + set rc [catch {db profile 1 2 3} msg] + lappend rc $msg +} {1 {wrong # args: should be "db profile ?CALLBACK?"}} +set ::stmtlist {} +proc profile_proc {cmd tm} { + lappend ::stmtlist [string trim $cmd] +} +do_test trace-3.2 { + db trace {} + db profile profile_proc + db profile +} {profile_proc} +do_test trace-3.3 { + execsql { + CREATE TABLE t2(a,b); + INSERT INTO t2 VALUES(1,2); + SELECT * FROM t2; + } +} {1 2} +do_test trace-3.4 { + set ::stmtlist +} {{CREATE TABLE t2(a,b);} {INSERT INTO t2 VALUES(1,2);} {SELECT * FROM t2;}} +do_test trace-3.5 { + db profile {} + db profile +} {} + +# If we prepare a statement and execute it multiple times, the profile +# happens on each execution. +# +db close +sqlite3 db test.db; set DB [sqlite3_connection_pointer db] +do_test trace-4.1 { + set STMT [sqlite3_prepare $DB {INSERT INTO t2 VALUES(2,3)} -1 TAIL] + db trace trace_proc + proc profile_proc {sql tm} { + global TRACE_OUT + set TRACE_OUT $sql + } + set TRACE_OUT {} + sqlite3_step $STMT + set TRACE_OUT +} {INSERT INTO t2 VALUES(2,3)} +do_test trace-4.2 { + set TRACE_OUT {} + sqlite3_reset $STMT + set TRACE_OUT +} {} +do_test trace-4.3 { + sqlite3_step $STMT + set TRACE_OUT +} {INSERT INTO t2 VALUES(2,3)} +do_test trace-4.4 { + execsql {SELECT * FROM t1} +} {1 2 2 3 2 3} +do_test trace-4.5 { + set TRACE_OUT +} {SELECT * FROM t1} +catch {sqlite3_finalize $STMT} + +finish_test -- cgit v1.1