📄 async2.test
字号:
## 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.##***********************************************************************## $Id: async2.test,v 1.9 2007/11/05 17:01:08 danielk1977 Exp $set testdir [file dirname $argv0]source $testdir/tester.tclif { [info commands sqlite3async_enable]=="" || [info command sqlite3_memdebug_fail]==""} { # The async logic is not built into this system puts "Skipping async2 tests: not compiled with required features" finish_test return}# Enable asynchronous IO.set setup_script { CREATE TABLE counter(c); INSERT INTO counter(c) VALUES (1);} set sql_script { BEGIN; UPDATE counter SET c = 2; CREATE TABLE t1(a PRIMARY KEY, b, c); CREATE TABLE t2(a PRIMARY KEY, b, c); COMMIT; BEGIN; UPDATE counter SET c = 3; INSERT INTO t1 VALUES('abcdefghij', 'four', 'score'); INSERT INTO t2 VALUES('klmnopqrst', 'and', 'seven'); COMMIT; UPDATE counter SET c = 'FIN';}db closeforeach err [list ioerr malloc-transient malloc-persistent] { set ::go 1 for {set n 1} {$::go} {incr n} { set ::sqlite_io_error_pending 0 sqlite3_memdebug_fail -1 file delete -force test.db test.db-journal sqlite3 db test.db execsql $::setup_script db close sqlite3async_enable 1 sqlite3 db test.db switch -- $err { ioerr { set ::sqlite_io_error_pending $n } malloc-persistent { sqlite3_memdebug_fail $n -repeat 1 } malloc-transient { sqlite3_memdebug_fail $n -repeat 0 } } catchsql $::sql_script db close sqlite3async_halt idle sqlite3async_start sqlite3async_wait sqlite3async_halt never sqlite3async_enable 0 set ::sqlite_io_error_pending 0 sqlite3_memdebug_fail -1 sqlite3 db test.db set c [db eval {SELECT c FROM counter LIMIT 1}] switch -- $c { 1 { do_test async-$err-1.1.$n { execsql { SELECT name FROM sqlite_master; } } {counter} } 2 { do_test async-$err-1.2.$n.1 { execsql { SELECT * FROM t1; } } {} do_test async-$err-1.2.$n.2 { execsql { SELECT * FROM t2; } } {} } 3 { do_test async-$err-1.3.$n.1 { execsql { SELECT * FROM t1; } } {abcdefghij four score} do_test async-$err-1.3.$n.2 { execsql { SELECT * FROM t2; } } {klmnopqrst and seven} } FIN { set ::go 0 } } db close }}catch {db close}sqlite3async_halt idlesqlite3async_startsqlite3async_waitsqlite3async_halt neverfinish_test
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -