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 | # | ||||
danielk1977 | 02b4e3b | 2009-02-26 07:15:59 +0000 | [diff] [blame^] | 9 | # $Id: quick.test,v 1.93 2009/02/26 07:15:59 danielk1977 Exp $ |
danielk1977 | aef0bf6 | 2005-12-30 16:28:01 +0000 | [diff] [blame] | 10 | |
11 | proc lshift {lvar} { | ||||
12 | upvar $lvar l | ||||
13 | set ret [lindex $l 0] | ||||
14 | set l [lrange $l 1 end] | ||||
15 | return $ret | ||||
16 | } | ||||
17 | while {[set arg [lshift argv]] != ""} { | ||||
18 | switch -- $arg { | ||||
19 | -sharedpagercache { | ||||
20 | sqlite3_enable_shared_cache 1 | ||||
21 | } | ||||
drh | 44548ec | 2007-06-18 12:22:43 +0000 | [diff] [blame] | 22 | -soak { |
23 | set SOAKTEST 1 | ||||
24 | } | ||||
danielk1977 | 5f09613 | 2008-03-28 15:44:09 +0000 | [diff] [blame] | 25 | -start { |
26 | set STARTAT "[lshift argv]*" | ||||
27 | } | ||||
danielk1977 | aef0bf6 | 2005-12-30 16:28:01 +0000 | [diff] [blame] | 28 | default { |
29 | set argv [linsert $argv 0 $arg] | ||||
30 | break | ||||
31 | } | ||||
32 | } | ||||
33 | } | ||||
drh | b19a2bc | 2001-09-16 00:13:26 +0000 | [diff] [blame] | 34 | |
35 | set testdir [file dirname $argv0] | ||||
36 | source $testdir/tester.tcl | ||||
37 | rename finish_test really_finish_test | ||||
drh | 1554262 | 2008-10-13 14:16:11 +0000 | [diff] [blame] | 38 | proc finish_test {} { |
39 | catch {db close} | ||||
40 | show_memstats | ||||
41 | } | ||||
drh | 193a6b4 | 2002-07-07 16:52:46 +0000 | [diff] [blame] | 42 | set ISQUICK 1 |
drh | b19a2bc | 2001-09-16 00:13:26 +0000 | [diff] [blame] | 43 | |
44 | set EXCLUDE { | ||||
45 | all.test | ||||
danielk1977 | 13a68c3 | 2005-12-15 10:11:30 +0000 | [diff] [blame] | 46 | async.test |
danielk1977 | 750b03e | 2006-02-14 10:48:39 +0000 | [diff] [blame] | 47 | async2.test |
danielk1977 | 71bc31c | 2008-06-26 08:29:34 +0000 | [diff] [blame] | 48 | async3.test |
danielk1977 | 0410302 | 2009-02-03 16:51:24 +0000 | [diff] [blame] | 49 | backup_ioerr.test |
drh | ee696e2 | 2004-08-30 16:52:17 +0000 | [diff] [blame] | 50 | corrupt.test |
drh | 959403f | 2008-12-12 17:56:16 +0000 | [diff] [blame] | 51 | corruptC.test |
drh | ee696e2 | 2004-08-30 16:52:17 +0000 | [diff] [blame] | 52 | crash.test |
danielk1977 | 59a33f9 | 2007-03-17 10:26:59 +0000 | [diff] [blame] | 53 | crash2.test |
danielk1977 | 6897ca3 | 2007-08-23 16:27:21 +0000 | [diff] [blame] | 54 | crash3.test |
drh | 04adf41 | 2008-01-08 18:57:50 +0000 | [diff] [blame] | 55 | crash4.test |
danielk1977 | ff3c898 | 2008-06-25 17:54:53 +0000 | [diff] [blame] | 56 | crash5.test |
danielk1977 | 67c007b | 2008-03-20 04:45:49 +0000 | [diff] [blame] | 57 | crash6.test |
danielk1977 | 81a392f | 2008-03-20 16:26:48 +0000 | [diff] [blame] | 58 | crash7.test |
danielk1977 | ff3c898 | 2008-06-25 17:54:53 +0000 | [diff] [blame] | 59 | delete3.test |
drh | 613a0fe | 2007-11-23 17:31:17 +0000 | [diff] [blame] | 60 | fts3.test |
danielk1977 | def0fec | 2007-05-10 15:37:52 +0000 | [diff] [blame] | 61 | fuzz.test |
danielk1977 | f2fb044 | 2008-09-09 18:28:06 +0000 | [diff] [blame] | 62 | fuzz3.test |
danielk1977 | c9cf901 | 2007-05-30 10:36:47 +0000 | [diff] [blame] | 63 | fuzz_malloc.test |
danielk1977 | 4aeff62 | 2007-05-12 09:30:47 +0000 | [diff] [blame] | 64 | in2.test |
danielk1977 | 69e777f | 2006-06-14 10:38:02 +0000 | [diff] [blame] | 65 | loadext.test |
drh | 4b59ab5 | 2002-08-24 18:24:51 +0000 | [diff] [blame] | 66 | memleak.test |
danielk1977 | 393f068 | 2007-03-31 10:00:48 +0000 | [diff] [blame] | 67 | misc7.test |
drh | 94e9203 | 2003-02-16 22:21:32 +0000 | [diff] [blame] | 68 | misuse.test |
danielk1977 | 59f8c08 | 2008-06-18 17:09:10 +0000 | [diff] [blame] | 69 | mutex2.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 |
drh | 255538e | 2008-08-27 18:56:36 +0000 | [diff] [blame] | 89 | trans2.test |
danielk1977 | ff3c898 | 2008-06-25 17:54:53 +0000 | [diff] [blame] | 90 | vacuum3.test |
danielk1977 | e9dcd5e | 2007-09-10 10:53:01 +0000 | [diff] [blame] | 91 | |
danielk1977 | b4626a3 | 2007-04-28 15:47:43 +0000 | [diff] [blame] | 92 | incrvacuum_ioerr.test |
danielk1977 | 94daf7f | 2004-11-08 09:26:09 +0000 | [diff] [blame] | 93 | autovacuum_crash.test |
danielk1977 | ce9a7b1 | 2004-11-13 13:19:56 +0000 | [diff] [blame] | 94 | btree8.test |
danielk1977 | 07cb560 | 2006-01-20 10:55:05 +0000 | [diff] [blame] | 95 | shared_err.test |
danielk1977 | be71889 | 2006-06-23 08:05:19 +0000 | [diff] [blame] | 96 | vtab_err.test |
drh | 9e6675f | 2008-03-31 23:51:35 +0000 | [diff] [blame] | 97 | veryquick.test |
danielk1977 | ff3c898 | 2008-06-25 17:54:53 +0000 | [diff] [blame] | 98 | mallocAll.test |
drh | b19a2bc | 2001-09-16 00:13:26 +0000 | [diff] [blame] | 99 | } |
100 | |||||
drh | ef4ac8f | 2004-06-19 00:16:31 +0000 | [diff] [blame] | 101 | if {[sqlite3 -has-codec]} { |
drh | 25d6543 | 2004-07-22 15:02:25 +0000 | [diff] [blame] | 102 | # lappend EXCLUDE \ |
103 | # conflict.test | ||||
drh | 9eb9e26 | 2004-02-11 02:18:05 +0000 | [diff] [blame] | 104 | } |
105 | |||||
drh | b900aaf | 2006-11-09 00:24:53 +0000 | [diff] [blame] | 106 | |
107 | # Files to include in the test. If this list is empty then everything | ||||
108 | # that is not in the EXCLUDE list is run. | ||||
109 | # | ||||
110 | set INCLUDE { | ||||
111 | } | ||||
112 | |||||
drh | b19a2bc | 2001-09-16 00:13:26 +0000 | [diff] [blame] | 113 | foreach testfile [lsort -dictionary [glob $testdir/*.test]] { |
danielk1977 | ff3c898 | 2008-06-25 17:54:53 +0000 | [diff] [blame] | 114 | # If this is "veryquick.test", do not run any of the malloc or |
115 | # IO error simulations. | ||||
116 | if {[info exists ISVERYQUICK] && ( | ||||
117 | [string match *malloc* $testfile] || [string match *ioerr* $testfile] | ||||
118 | ) } { | ||||
119 | continue | ||||
120 | } | ||||
121 | |||||
drh | b19a2bc | 2001-09-16 00:13:26 +0000 | [diff] [blame] | 122 | set tail [file tail $testfile] |
123 | if {[lsearch -exact $EXCLUDE $tail]>=0} continue | ||||
drh | b900aaf | 2006-11-09 00:24:53 +0000 | [diff] [blame] | 124 | if {[llength $INCLUDE]>0 && [lsearch -exact $INCLUDE $tail]<0} continue |
danielk1977 | 5f09613 | 2008-03-28 15:44:09 +0000 | [diff] [blame] | 125 | if {[info exists STARTAT] && [string match $STARTAT $tail]} {unset STARTAT} |
126 | if {[info exists STARTAT]} continue | ||||
drh | b19a2bc | 2001-09-16 00:13:26 +0000 | [diff] [blame] | 127 | source $testfile |
drh | 94e9203 | 2003-02-16 22:21:32 +0000 | [diff] [blame] | 128 | catch {db close} |
129 | if {$sqlite_open_file_count>0} { | ||||
130 | puts "$tail did not close all files: $sqlite_open_file_count" | ||||
131 | incr nErr | ||||
132 | lappend ::failList $tail | ||||
drh | 5ea2df9 | 2007-04-16 17:07:55 +0000 | [diff] [blame] | 133 | set sqlite_open_file_count 0 |
134 | } | ||||
drh | b19a2bc | 2001-09-16 00:13:26 +0000 | [diff] [blame] | 135 | } |
danielk1977 | ff3c898 | 2008-06-25 17:54:53 +0000 | [diff] [blame] | 136 | #set argv quick |
137 | #source $testdir/permutations.test | ||||
138 | #set argv "" | ||||
danielk1977 | c8c1158 | 2004-06-29 13:41:21 +0000 | [diff] [blame] | 139 | source $testdir/misuse.test |
drh | b19a2bc | 2001-09-16 00:13:26 +0000 | [diff] [blame] | 140 | |
drh | 94e9203 | 2003-02-16 22:21:32 +0000 | [diff] [blame] | 141 | set sqlite_open_file_count 0 |
drh | b19a2bc | 2001-09-16 00:13:26 +0000 | [diff] [blame] | 142 | really_finish_test |