15368f29aSdanielk1977# 2009 July 19 25368f29aSdanielk1977# 35368f29aSdanielk1977# May you do good and not evil. 45368f29aSdanielk1977# May you find forgiveness for yourself and forgive others. 55368f29aSdanielk1977# May you share freely, never taking more than you give. 65368f29aSdanielk1977# 75368f29aSdanielk1977#*********************************************************************** 85368f29aSdanielk1977# This file tests that asynchronous IO is compatible with multi-file 95368f29aSdanielk1977# transactions. 105368f29aSdanielk1977# 115368f29aSdanielk1977# $Id: async5.test,v 1.1 2009/07/18 11:52:04 danielk1977 Exp $ 125368f29aSdanielk1977 135368f29aSdanielk1977set testdir [file dirname $argv0] 145368f29aSdanielk1977source $testdir/tester.tcl 155368f29aSdanielk1977 165368f29aSdanielk1977if {[info commands sqlite3async_initialize] eq ""} { 175368f29aSdanielk1977 # The async logic is not built into this system 185368f29aSdanielk1977 finish_test 195368f29aSdanielk1977 return 205368f29aSdanielk1977} 215368f29aSdanielk1977 225368f29aSdanielk1977db close 23*fda06befSmistachkinforcedelete test2.db 245368f29aSdanielk1977sqlite3async_initialize "" 1 255368f29aSdanielk1977sqlite3async_control halt never 265368f29aSdanielk1977sqlite3 db test.db 275368f29aSdanielk1977 285368f29aSdanielk1977do_test async5-1.1 { 295368f29aSdanielk1977 execsql { 305368f29aSdanielk1977 ATTACH 'test2.db' AS next; 315368f29aSdanielk1977 CREATE TABLE main.t1(a, b); 325368f29aSdanielk1977 CREATE TABLE next.t2(a, b); 335368f29aSdanielk1977 BEGIN; 345368f29aSdanielk1977 INSERT INTO t1 VALUES(1, 2); 355368f29aSdanielk1977 INSERT INTO t2 VALUES(3, 4); 365368f29aSdanielk1977 COMMIT; 375368f29aSdanielk1977 } 385368f29aSdanielk1977} {} 395368f29aSdanielk1977do_test async5-1.2 { 405368f29aSdanielk1977 execsql { SELECT * FROM t1 } 415368f29aSdanielk1977} {1 2} 425368f29aSdanielk1977do_test async5-1.3 { 435368f29aSdanielk1977 execsql { SELECT * FROM t2 } 445368f29aSdanielk1977} {3 4} 455368f29aSdanielk1977do_test async5-1.4 { 465368f29aSdanielk1977 execsql { 475368f29aSdanielk1977 BEGIN; 485368f29aSdanielk1977 INSERT INTO t1 VALUES('a', 'b'); 495368f29aSdanielk1977 INSERT INTO t2 VALUES('c', 'd'); 505368f29aSdanielk1977 COMMIT; 515368f29aSdanielk1977 } 525368f29aSdanielk1977} {} 535368f29aSdanielk1977do_test async5-1.5 { 545368f29aSdanielk1977 execsql { SELECT * FROM t1 } 555368f29aSdanielk1977} {1 2 a b} 565368f29aSdanielk1977do_test async5-1.6 { 575368f29aSdanielk1977 execsql { SELECT * FROM t2 } 585368f29aSdanielk1977} {3 4 c d} 595368f29aSdanielk1977 605368f29aSdanielk1977db close 615368f29aSdanielk1977 625368f29aSdanielk1977sqlite3async_control halt idle 635368f29aSdanielk1977sqlite3async_start 645368f29aSdanielk1977sqlite3async_wait 655368f29aSdanielk1977sqlite3async_control halt never 665368f29aSdanielk1977sqlite3async_shutdown 675368f29aSdanielk1977set sqlite3async_trace 0 685368f29aSdanielk1977finish_test 69