1# 2# May you do good and not evil. 3# May you find forgiveness for yourself and forgive others. 4# May you share freely, never taking more than you give. 5# 6#*********************************************************************** 7# This file runs all tests. 8# 9# $Id: quick.test,v 1.95 2009/03/16 14:48:19 danielk1977 Exp $ 10 11proc lshift {lvar} { 12 upvar $lvar l 13 set ret [lindex $l 0] 14 set l [lrange $l 1 end] 15 return $ret 16} 17while {[set arg [lshift argv]] != ""} { 18 switch -- $arg { 19 -sharedpagercache { 20 sqlite3_enable_shared_cache 1 21 } 22 -soak { 23 set SOAKTEST 1 24 } 25 -start { 26 set STARTAT "[lshift argv]*" 27 } 28 default { 29 set argv [linsert $argv 0 $arg] 30 break 31 } 32 } 33} 34 35set testdir [file dirname $argv0] 36source $testdir/tester.tcl 37rename finish_test really_finish_test 38proc finish_test {} { 39 catch {db close} 40 show_memstats 41} 42set ISQUICK 1 43 44set EXCLUDE { 45 all.test 46 async.test 47 async2.test 48 async3.test 49 backup_ioerr.test 50 corrupt.test 51 corruptC.test 52 crash.test 53 crash2.test 54 crash3.test 55 crash4.test 56 crash5.test 57 crash6.test 58 crash7.test 59 delete3.test 60 e_fts3.test 61 fts3.test 62 fts3fuzz.test 63 fkey_malloc.test 64 fuzz.test 65 fuzz3.test 66 fuzz_malloc.test 67 in2.test 68 loadext.test 69 memleak.test 70 misc7.test 71 misuse.test 72 mutex2.test 73 notify2.test 74 onefile.test 75 permutations.test 76 quick.test 77 savepoint4.test 78 savepoint6.test 79 select9.test 80 soak.test 81 speed1.test 82 speed1p.test 83 speed2.test 84 speed3.test 85 speed4.test 86 speed4p.test 87 sqllimits1.test 88 tkt2686.test 89 thread001.test 90 thread002.test 91 thread003.test 92 thread004.test 93 thread005.test 94 trans2.test 95 vacuum3.test 96 97 incrvacuum_ioerr.test 98 autovacuum_crash.test 99 btree8.test 100 shared_err.test 101 vtab_err.test 102 veryquick.test 103 mallocAll.test 104} 105 106if {[sqlite3 -has-codec]} { 107 # lappend EXCLUDE \ 108 # conflict.test 109} 110 111 112# Files to include in the test. If this list is empty then everything 113# that is not in the EXCLUDE list is run. 114# 115set INCLUDE { 116} 117 118# If the QUICKTEST_INCLUDE environment variable is set, then interpret 119# it as a list of test files. Always run these files, even if they 120# begin with "malloc*" or "ioerr*" or are part of the EXCLUDE list 121# defined above. 122# 123set QUICKTEST_INCLUDE {} 124catch { set QUICKTEST_INCLUDE $env(QUICKTEST_INCLUDE) } 125 126foreach testfile [lsort -dictionary [glob $testdir/*.test]] { 127 set tail [file tail $testfile] 128 if { [lsearch $QUICKTEST_INCLUDE $tail]<0 } { 129 # If this is "veryquick.test", do not run any of the malloc or 130 # IO error simulations. 131 if {[info exists ISVERYQUICK] && ( 132 [string match *malloc* $testfile] || [string match *ioerr* $testfile] 133 ) } { 134 continue 135 } 136 if {[lsearch -exact $EXCLUDE $tail]>=0} continue 137 } 138 if {[llength $INCLUDE]>0 && [lsearch -exact $INCLUDE $tail]<0} continue 139 if {[info exists STARTAT] && [string match $STARTAT $tail]} {unset STARTAT} 140 if {[info exists STARTAT]} continue 141 source $testfile 142 catch {db close} 143 if {$sqlite_open_file_count>0} { 144 puts "$tail did not close all files: $sqlite_open_file_count" 145 incr nErr 146 lappend ::failList $tail 147 set sqlite_open_file_count 0 148 } 149} 150#set argv quick 151#source $testdir/permutations.test 152#set argv "" 153source $testdir/misuse.test 154 155set sqlite_open_file_count 0 156really_finish_test 157