drh | b19a2bc | 2001-09-16 00:13:26 +0000 | [diff] [blame] | 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 | # | ||||
dan | 430e74c | 2010-06-07 17:47:26 +0000 | [diff] [blame^] | 9 | |
10 | set testdir [file dirname $argv0] | ||||
11 | source $testdir/tester.tcl | ||||
12 | db close | ||||
danielk1977 | aef0bf6 | 2005-12-30 16:28:01 +0000 | [diff] [blame] | 13 | |
14 | proc lshift {lvar} { | ||||
15 | upvar $lvar l | ||||
16 | set ret [lindex $l 0] | ||||
17 | set l [lrange $l 1 end] | ||||
18 | return $ret | ||||
19 | } | ||||
20 | while {[set arg [lshift argv]] != ""} { | ||||
21 | switch -- $arg { | ||||
22 | -sharedpagercache { | ||||
23 | sqlite3_enable_shared_cache 1 | ||||
24 | } | ||||
drh | 44548ec | 2007-06-18 12:22:43 +0000 | [diff] [blame] | 25 | -soak { |
dan | 430e74c | 2010-06-07 17:47:26 +0000 | [diff] [blame^] | 26 | set G(issoak) 1 |
drh | 44548ec | 2007-06-18 12:22:43 +0000 | [diff] [blame] | 27 | } |
danielk1977 | 5f09613 | 2008-03-28 15:44:09 +0000 | [diff] [blame] | 28 | -start { |
29 | set STARTAT "[lshift argv]*" | ||||
30 | } | ||||
danielk1977 | aef0bf6 | 2005-12-30 16:28:01 +0000 | [diff] [blame] | 31 | default { |
32 | set argv [linsert $argv 0 $arg] | ||||
33 | break | ||||
34 | } | ||||
35 | } | ||||
36 | } | ||||
drh | b19a2bc | 2001-09-16 00:13:26 +0000 | [diff] [blame] | 37 | |
dan | 430e74c | 2010-06-07 17:47:26 +0000 | [diff] [blame^] | 38 | set G(isquick) 1 |
drh | b19a2bc | 2001-09-16 00:13:26 +0000 | [diff] [blame] | 39 | |
40 | set EXCLUDE { | ||||
41 | all.test | ||||
danielk1977 | 13a68c3 | 2005-12-15 10:11:30 +0000 | [diff] [blame] | 42 | async.test |
danielk1977 | 750b03e | 2006-02-14 10:48:39 +0000 | [diff] [blame] | 43 | async2.test |
danielk1977 | 71bc31c | 2008-06-26 08:29:34 +0000 | [diff] [blame] | 44 | async3.test |
danielk1977 | 0410302 | 2009-02-03 16:51:24 +0000 | [diff] [blame] | 45 | backup_ioerr.test |
drh | ee696e2 | 2004-08-30 16:52:17 +0000 | [diff] [blame] | 46 | corrupt.test |
drh | 959403f | 2008-12-12 17:56:16 +0000 | [diff] [blame] | 47 | corruptC.test |
drh | ee696e2 | 2004-08-30 16:52:17 +0000 | [diff] [blame] | 48 | crash.test |
danielk1977 | 59a33f9 | 2007-03-17 10:26:59 +0000 | [diff] [blame] | 49 | crash2.test |
danielk1977 | 6897ca3 | 2007-08-23 16:27:21 +0000 | [diff] [blame] | 50 | crash3.test |
drh | 04adf41 | 2008-01-08 18:57:50 +0000 | [diff] [blame] | 51 | crash4.test |
danielk1977 | ff3c898 | 2008-06-25 17:54:53 +0000 | [diff] [blame] | 52 | crash5.test |
danielk1977 | 67c007b | 2008-03-20 04:45:49 +0000 | [diff] [blame] | 53 | crash6.test |
danielk1977 | 81a392f | 2008-03-20 16:26:48 +0000 | [diff] [blame] | 54 | crash7.test |
danielk1977 | ff3c898 | 2008-06-25 17:54:53 +0000 | [diff] [blame] | 55 | delete3.test |
dan | e2e5145 | 2009-12-03 17:36:22 +0000 | [diff] [blame] | 56 | e_fts3.test |
drh | 613a0fe | 2007-11-23 17:31:17 +0000 | [diff] [blame] | 57 | fts3.test |
dan | 64eac55 | 2009-12-04 05:41:03 +0000 | [diff] [blame] | 58 | fts3rnd.test |
dan | f59c5ca | 2009-09-22 16:55:38 +0000 | [diff] [blame] | 59 | fkey_malloc.test |
danielk1977 | def0fec | 2007-05-10 15:37:52 +0000 | [diff] [blame] | 60 | fuzz.test |
danielk1977 | f2fb044 | 2008-09-09 18:28:06 +0000 | [diff] [blame] | 61 | fuzz3.test |
danielk1977 | c9cf901 | 2007-05-30 10:36:47 +0000 | [diff] [blame] | 62 | fuzz_malloc.test |
danielk1977 | 4aeff62 | 2007-05-12 09:30:47 +0000 | [diff] [blame] | 63 | in2.test |
danielk1977 | 69e777f | 2006-06-14 10:38:02 +0000 | [diff] [blame] | 64 | loadext.test |
drh | 4b59ab5 | 2002-08-24 18:24:51 +0000 | [diff] [blame] | 65 | memleak.test |
danielk1977 | 393f068 | 2007-03-31 10:00:48 +0000 | [diff] [blame] | 66 | misc7.test |
drh | 94e9203 | 2003-02-16 22:21:32 +0000 | [diff] [blame] | 67 | misuse.test |
danielk1977 | 59f8c08 | 2008-06-18 17:09:10 +0000 | [diff] [blame] | 68 | mutex2.test |
danielk1977 | d52acb3 | 2009-03-16 14:48:18 +0000 | [diff] [blame] | 69 | notify2.test |
danielk1977 | a15db35 | 2007-09-14 16:20:00 +0000 | [diff] [blame] | 70 | onefile.test |
danielk1977 | 959e3a9 | 2008-06-21 12:15:04 +0000 | [diff] [blame] | 71 | permutations.test |
drh | ee696e2 | 2004-08-30 16:52:17 +0000 | [diff] [blame] | 72 | quick.test |
danielk1977 | 488af09 | 2008-12-19 16:31:11 +0000 | [diff] [blame] | 73 | savepoint4.test |
danielk1977 | e7e6f12 | 2009-01-03 10:41:29 +0000 | [diff] [blame] | 74 | savepoint6.test |
danielk1977 | 9afe684 | 2008-06-24 11:21:20 +0000 | [diff] [blame] | 75 | select9.test |
danielk1977 | 5453b8d | 2007-05-30 08:18:04 +0000 | [diff] [blame] | 76 | soak.test |
drh | 3590f15 | 2006-11-23 21:09:10 +0000 | [diff] [blame] | 77 | speed1.test |
drh | 45c236d | 2008-03-22 01:08:00 +0000 | [diff] [blame] | 78 | speed1p.test |
drh | e4dd73b | 2007-03-26 13:48:12 +0000 | [diff] [blame] | 79 | speed2.test |
drh | 26c9b5e | 2008-04-11 14:56:53 +0000 | [diff] [blame] | 80 | speed3.test |
danielk1977 | 0d6e7a0 | 2007-10-23 10:25:30 +0000 | [diff] [blame] | 81 | speed4.test |
drh | 26c9b5e | 2008-04-11 14:56:53 +0000 | [diff] [blame] | 82 | speed4p.test |
danielk1977 | b0ab63c | 2007-05-08 15:59:05 +0000 | [diff] [blame] | 83 | sqllimits1.test |
danielk1977 | ff3c898 | 2008-06-25 17:54:53 +0000 | [diff] [blame] | 84 | tkt2686.test |
danielk1977 | e9dcd5e | 2007-09-10 10:53:01 +0000 | [diff] [blame] | 85 | thread001.test |
86 | thread002.test | ||||
danielk1977 | 51d2d03 | 2008-08-28 08:31:48 +0000 | [diff] [blame] | 87 | thread003.test |
danielk1977 | 02b4e3b | 2009-02-26 07:15:59 +0000 | [diff] [blame] | 88 | thread004.test |
danielk1977 | 20736d8 | 2009-03-12 14:43:27 +0000 | [diff] [blame] | 89 | thread005.test |
drh | 255538e | 2008-08-27 18:56:36 +0000 | [diff] [blame] | 90 | trans2.test |
danielk1977 | ff3c898 | 2008-06-25 17:54:53 +0000 | [diff] [blame] | 91 | vacuum3.test |
danielk1977 | e9dcd5e | 2007-09-10 10:53:01 +0000 | [diff] [blame] | 92 | |
danielk1977 | b4626a3 | 2007-04-28 15:47:43 +0000 | [diff] [blame] | 93 | incrvacuum_ioerr.test |
danielk1977 | 94daf7f | 2004-11-08 09:26:09 +0000 | [diff] [blame] | 94 | autovacuum_crash.test |
danielk1977 | ce9a7b1 | 2004-11-13 13:19:56 +0000 | [diff] [blame] | 95 | btree8.test |
danielk1977 | 07cb560 | 2006-01-20 10:55:05 +0000 | [diff] [blame] | 96 | shared_err.test |
danielk1977 | be71889 | 2006-06-23 08:05:19 +0000 | [diff] [blame] | 97 | vtab_err.test |
drh | 9e6675f | 2008-03-31 23:51:35 +0000 | [diff] [blame] | 98 | veryquick.test |
danielk1977 | ff3c898 | 2008-06-25 17:54:53 +0000 | [diff] [blame] | 99 | mallocAll.test |
dan | 9281bf2 | 2010-04-13 11:18:40 +0000 | [diff] [blame] | 100 | |
101 | walslow.test | ||||
102 | walcrash.test | ||||
dan | 80a1526 | 2010-04-13 11:45:31 +0000 | [diff] [blame] | 103 | walthread.test |
drh | b19a2bc | 2001-09-16 00:13:26 +0000 | [diff] [blame] | 104 | } |
105 | |||||
drh | ef4ac8f | 2004-06-19 00:16:31 +0000 | [diff] [blame] | 106 | if {[sqlite3 -has-codec]} { |
drh | 25d6543 | 2004-07-22 15:02:25 +0000 | [diff] [blame] | 107 | # lappend EXCLUDE \ |
108 | # conflict.test | ||||
drh | 9eb9e26 | 2004-02-11 02:18:05 +0000 | [diff] [blame] | 109 | } |
110 | |||||
drh | b900aaf | 2006-11-09 00:24:53 +0000 | [diff] [blame] | 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 | # | ||||
115 | set INCLUDE { | ||||
116 | } | ||||
117 | |||||
danielk1977 | d52acb3 | 2009-03-16 14:48:18 +0000 | [diff] [blame] | 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 | # | ||||
123 | set QUICKTEST_INCLUDE {} | ||||
124 | catch { set QUICKTEST_INCLUDE $env(QUICKTEST_INCLUDE) } | ||||
danielk1977 | ff3c898 | 2008-06-25 17:54:53 +0000 | [diff] [blame] | 125 | |
dan | 430e74c | 2010-06-07 17:47:26 +0000 | [diff] [blame^] | 126 | # Run all test files in directory $testdir, subject to the following: |
127 | # | ||||
128 | # 1. If a test file is specified as part of the $INCLUDE or | ||||
129 | # $QUICKTEST_INCLUDE list variables, run it. | ||||
130 | # | ||||
131 | # 2. If $INCLUDE is non-empty, and rule 1 does not apply to it, do not run it. | ||||
132 | # | ||||
133 | # 3. If a test file is specified as part of $EXCLUDE, and rule 1 does not | ||||
134 | # apply, do not run it. | ||||
135 | # | ||||
danielk1977 | d52acb3 | 2009-03-16 14:48:18 +0000 | [diff] [blame] | 136 | foreach testfile [lsort -dictionary [glob $testdir/*.test]] { |
drh | b19a2bc | 2001-09-16 00:13:26 +0000 | [diff] [blame] | 137 | set tail [file tail $testfile] |
dan | 430e74c | 2010-06-07 17:47:26 +0000 | [diff] [blame^] | 138 | |
danielk1977 | 5f09613 | 2008-03-28 15:44:09 +0000 | [diff] [blame] | 139 | if {[info exists STARTAT] && [string match $STARTAT $tail]} {unset STARTAT} |
140 | if {[info exists STARTAT]} continue | ||||
dan | 430e74c | 2010-06-07 17:47:26 +0000 | [diff] [blame^] | 141 | |
142 | set run [expr {[llength $INCLUDE]==0}] | ||||
143 | if {[info exists ISVERYQUICK] && [string match *malloc* $tail]} { set run 0 } | ||||
144 | if {[info exists ISVERYQUICK] && [string match *ioerr* $tail]} { set run 0 } | ||||
145 | if {[lsearch -exact $EXCLUDE $tail]>=0} { set run 0 } | ||||
146 | if {[lsearch -exact $INCLUDE $tail]>=0} { set run 1 } | ||||
147 | if {[lsearch -exact $QUICKTEST_INCLUDE $tail]>=0} { set run 1 } | ||||
148 | |||||
149 | if {$run} { | ||||
150 | slave_test_file $testfile | ||||
drh | 5ea2df9 | 2007-04-16 17:07:55 +0000 | [diff] [blame] | 151 | } |
drh | b19a2bc | 2001-09-16 00:13:26 +0000 | [diff] [blame] | 152 | } |
dan | 430e74c | 2010-06-07 17:47:26 +0000 | [diff] [blame^] | 153 | slave_test_file $testdir/misuse.test |
drh | b19a2bc | 2001-09-16 00:13:26 +0000 | [diff] [blame] | 154 | |
dan | 430e74c | 2010-06-07 17:47:26 +0000 | [diff] [blame^] | 155 | finish_test |
156 |