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