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