1*aecc04d6Sdan# 2021 April 2 2*aecc04d6Sdan# 3*aecc04d6Sdan# The author disclaims copyright to this source code. In place of 4*aecc04d6Sdan# a legal notice, here is a blessing: 5*aecc04d6Sdan# 6*aecc04d6Sdan# May you do good and not evil. 7*aecc04d6Sdan# May you find forgiveness for yourself and forgive others. 8*aecc04d6Sdan# May you share freely, never taking more than you give. 9*aecc04d6Sdan# 10*aecc04d6Sdan#*********************************************************************** 11*aecc04d6Sdan# 12*aecc04d6Sdan 13*aecc04d6Sdanset testdir [file dirname $argv0] 14*aecc04d6Sdansource $testdir/tester.tcl 15*aecc04d6Sdansource $testdir/lock_common.tcl 16*aecc04d6Sdanset testprefix external_reader 17*aecc04d6Sdan 18*aecc04d6Sdanifcapable !wal { 19*aecc04d6Sdan finish_test 20*aecc04d6Sdan return 21*aecc04d6Sdan} 22*aecc04d6Sdanif {$::tcl_platform(platform)!="unix"} { 23*aecc04d6Sdan finish_test 24*aecc04d6Sdan return 25*aecc04d6Sdan} 26*aecc04d6Sdan 27*aecc04d6Sdando_multiclient_test tn { 28*aecc04d6Sdan 29*aecc04d6Sdan set bExternal 1 30*aecc04d6Sdan if {[info commands db3]!=""} { set bExternal 0 } 31*aecc04d6Sdan 32*aecc04d6Sdan do_test 1.$tn.0 { 33*aecc04d6Sdan sql1 { 34*aecc04d6Sdan PRAGMA journal_mode = wal; 35*aecc04d6Sdan CREATE TABLE t1(a, b); 36*aecc04d6Sdan INSERT INTO t1 VALUES(1, 2); 37*aecc04d6Sdan } 38*aecc04d6Sdan } {wal} 39*aecc04d6Sdan 40*aecc04d6Sdan do_test 1.$tn.1 { 41*aecc04d6Sdan sql2 { SELECT * FROM t1 } 42*aecc04d6Sdan } {1 2} 43*aecc04d6Sdan 44*aecc04d6Sdan do_test 1.$tn.2 { 45*aecc04d6Sdan code1 { 46*aecc04d6Sdan file_control_external_reader db 47*aecc04d6Sdan } 48*aecc04d6Sdan } {0} 49*aecc04d6Sdan 50*aecc04d6Sdan do_test 1.$tn.3 { 51*aecc04d6Sdan sql2 { 52*aecc04d6Sdan BEGIN; 53*aecc04d6Sdan SELECT * FROM t1; 54*aecc04d6Sdan } 55*aecc04d6Sdan } {1 2} 56*aecc04d6Sdan 57*aecc04d6Sdan do_test 1.$tn.4 { 58*aecc04d6Sdan code1 { 59*aecc04d6Sdan file_control_external_reader db 60*aecc04d6Sdan } 61*aecc04d6Sdan } $bExternal 62*aecc04d6Sdan 63*aecc04d6Sdan do_test 1.$tn.5 { 64*aecc04d6Sdan sql2 { COMMIT } 65*aecc04d6Sdan } {} 66*aecc04d6Sdan 67*aecc04d6Sdan do_test 1.$tn.6 { 68*aecc04d6Sdan code1 { file_control_external_reader db } 69*aecc04d6Sdan } 0 70*aecc04d6Sdan 71*aecc04d6Sdan} 72*aecc04d6Sdan 73*aecc04d6Sdan 74*aecc04d6Sdanfinish_test 75