xref: /sqlite-3.40.0/test/quick.test (revision fd3b2226)
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