1995f8b9dSdan# 2015 April 28 2995f8b9dSdan# 3995f8b9dSdan# The author disclaims copyright to this source code. In place of 4995f8b9dSdan# a legal notice, here is a blessing: 5995f8b9dSdan# 6995f8b9dSdan# May you do good and not evil. 7995f8b9dSdan# May you find forgiveness for yourself and forgive others. 8995f8b9dSdan# May you share freely, never taking more than you give. 9995f8b9dSdan# 10995f8b9dSdan#*********************************************************************** 11995f8b9dSdan# 12995f8b9dSdan 13995f8b9dSdanset testdir [file dirname $argv0] 14995f8b9dSdansource $testdir/tester.tcl 15995f8b9dSdansource $testdir/malloc_common.tcl 16995f8b9dSdanset testprefix statfault 17995f8b9dSdan 18995f8b9dSdanifcapable !vtab||!compound { 19995f8b9dSdan finish_test 20995f8b9dSdan return 21995f8b9dSdan} 22995f8b9dSdan 23995f8b9dSdanregister_dbstat_vtab db 24995f8b9dSdando_execsql_test statfault-1 { 25995f8b9dSdan CREATE TABLE t1(a, b UNIQUE); 26995f8b9dSdan INSERT INTO t1 VALUES(1, randomblob(500)); 27995f8b9dSdan INSERT INTO t1 VALUES(randomblob(500), 1); 28995f8b9dSdan INSERT INTO t1 VALUES(2, randomblob(250)); 29995f8b9dSdan INSERT INTO t1 VALUES(randomblob(250), 2); 30995f8b9dSdan CREATE VIRTUAL TABLE sss USING dbstat; 31995f8b9dSdan} {} 32995f8b9dSdanfaultsim_save_and_close 33995f8b9dSdan 34995f8b9dSdando_faultsim_test 1 -faults * -prep { 35995f8b9dSdan faultsim_restore_and_reopen 36995f8b9dSdan register_dbstat_vtab db 37995f8b9dSdan execsql { SELECT 1 FROM sqlite_master LIMIT 1 } 38995f8b9dSdan} -body { 39995f8b9dSdan execsql { SELECT count(*) FROM sss } 40995f8b9dSdan} -test { 41995f8b9dSdan faultsim_test_result {0 8} 42995f8b9dSdan} 43995f8b9dSdan 44*c28cc32dSdando_faultsim_test 2 -faults * -prep { 45*c28cc32dSdan faultsim_restore_and_reopen 46*c28cc32dSdan register_dbstat_vtab db 47*c28cc32dSdan execsql { SELECT 1 FROM sqlite_master LIMIT 1 } 48*c28cc32dSdan} -body { 49*c28cc32dSdan db eval { SELECT * FROM sss } { db eval { SELECT randomblob(5000) } } 50*c28cc32dSdan} -test { 51*c28cc32dSdan faultsim_test_result {0 {}} 52*c28cc32dSdan} 53995f8b9dSdan 54995f8b9dSdanfinish_test 55*c28cc32dSdan 56