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 fts3.test 61 fuzz.test 62 fuzz3.test 63 fuzz_malloc.test 64 in2.test 65 loadext.test 66 memleak.test 67 misc7.test 68 misuse.test 69 mutex2.test 70 notify2.test 71 onefile.test 72 permutations.test 73 quick.test 74 savepoint4.test 75 savepoint6.test 76 select9.test 77 soak.test 78 speed1.test 79 speed1p.test 80 speed2.test 81 speed3.test 82 speed4.test 83 speed4p.test 84 sqllimits1.test 85 tkt2686.test 86 thread001.test 87 thread002.test 88 thread003.test 89 thread004.test 90 thread005.test 91 trans2.test 92 vacuum3.test 93 94 incrvacuum_ioerr.test 95 autovacuum_crash.test 96 btree8.test 97 shared_err.test 98 vtab_err.test 99 veryquick.test 100 mallocAll.test 101} 102 103if {[sqlite3 -has-codec]} { 104 # lappend EXCLUDE \ 105 # conflict.test 106} 107 108 109# Files to include in the test. If this list is empty then everything 110# that is not in the EXCLUDE list is run. 111# 112set INCLUDE { 113} 114 115# If the QUICKTEST_INCLUDE environment variable is set, then interpret 116# it as a list of test files. Always run these files, even if they 117# begin with "malloc*" or "ioerr*" or are part of the EXCLUDE list 118# defined above. 119# 120set QUICKTEST_INCLUDE {} 121catch { set QUICKTEST_INCLUDE $env(QUICKTEST_INCLUDE) } 122 123foreach testfile [lsort -dictionary [glob $testdir/*.test]] { 124 set tail [file tail $testfile] 125 if { [lsearch $QUICKTEST_INCLUDE $tail]<0 } { 126 # If this is "veryquick.test", do not run any of the malloc or 127 # IO error simulations. 128 if {[info exists ISVERYQUICK] && ( 129 [string match *malloc* $testfile] || [string match *ioerr* $testfile] 130 ) } { 131 continue 132 } 133 if {[lsearch -exact $EXCLUDE $tail]>=0} continue 134 } 135 if {[llength $INCLUDE]>0 && [lsearch -exact $INCLUDE $tail]<0} continue 136 if {[info exists STARTAT] && [string match $STARTAT $tail]} {unset STARTAT} 137 if {[info exists STARTAT]} continue 138 source $testfile 139 catch {db close} 140 if {$sqlite_open_file_count>0} { 141 puts "$tail did not close all files: $sqlite_open_file_count" 142 incr nErr 143 lappend ::failList $tail 144 set sqlite_open_file_count 0 145 } 146} 147#set argv quick 148#source $testdir/permutations.test 149#set argv "" 150source $testdir/misuse.test 151 152set sqlite_open_file_count 0 153really_finish_test 154