xref: /sqlite-3.40.0/test/quick.test (revision 9281bf2a)
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  fts3rnd.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  walslow.test
106  walcrash.test
107}
108
109if {[sqlite3 -has-codec]} {
110  # lappend EXCLUDE \
111  #  conflict.test
112}
113
114
115# Files to include in the test.  If this list is empty then everything
116# that is not in the EXCLUDE list is run.
117#
118set INCLUDE {
119}
120
121# If the QUICKTEST_INCLUDE environment variable is set, then interpret
122# it as a list of test files. Always run these files, even if they
123# begin with "malloc*" or "ioerr*" or are part of the EXCLUDE list
124# defined above.
125#
126set QUICKTEST_INCLUDE {}
127catch { set QUICKTEST_INCLUDE $env(QUICKTEST_INCLUDE) }
128
129foreach testfile [lsort -dictionary [glob $testdir/*.test]] {
130  set tail [file tail $testfile]
131  if { [lsearch $QUICKTEST_INCLUDE $tail]<0 } {
132    # If this is "veryquick.test", do not run any of the malloc or
133    # IO error simulations.
134    if {[info exists ISVERYQUICK] && (
135      [string match *malloc* $testfile] || [string match *ioerr* $testfile]
136    ) } {
137      continue
138    }
139    if {[lsearch -exact $EXCLUDE $tail]>=0} continue
140  }
141  if {[llength $INCLUDE]>0 && [lsearch -exact $INCLUDE $tail]<0} continue
142  if {[info exists STARTAT] && [string match $STARTAT $tail]} {unset STARTAT}
143  if {[info exists STARTAT]} continue
144  source $testfile
145  catch {db close}
146  if {$sqlite_open_file_count>0} {
147    puts "$tail did not close all files: $sqlite_open_file_count"
148    incr nErr
149    lappend ::failList $tail
150    set sqlite_open_file_count 0
151  }
152}
153#set argv quick
154#source $testdir/permutations.test
155#set argv ""
156source $testdir/misuse.test
157
158set sqlite_open_file_count 0
159really_finish_test
160