xref: /sqlite-3.40.0/test/quick.test (revision 0410302e)
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.92 2009/02/03 16:51:25 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  onefile.test
71  permutations.test
72  quick.test
73  savepoint4.test
74  savepoint6.test
75  select9.test
76  soak.test
77  speed1.test
78  speed1p.test
79  speed2.test
80  speed3.test
81  speed4.test
82  speed4p.test
83  sqllimits1.test
84  tkt2686.test
85  thread001.test
86  thread002.test
87  thread003.test
88  trans2.test
89  vacuum3.test
90
91  incrvacuum_ioerr.test
92  autovacuum_crash.test
93  btree8.test
94  shared_err.test
95  vtab_err.test
96  veryquick.test
97  mallocAll.test
98}
99
100if {[sqlite3 -has-codec]} {
101  # lappend EXCLUDE \
102  #  conflict.test
103}
104
105
106# Files to include in the test.  If this list is empty then everything
107# that is not in the EXCLUDE list is run.
108#
109set INCLUDE {
110}
111
112foreach testfile [lsort -dictionary [glob $testdir/*.test]] {
113  # If this is "veryquick.test", do not run any of the malloc or
114  # IO error simulations.
115  if {[info exists ISVERYQUICK] && (
116    [string match *malloc* $testfile] || [string match *ioerr* $testfile]
117  ) } {
118    continue
119  }
120
121  set tail [file tail $testfile]
122  if {[lsearch -exact $EXCLUDE $tail]>=0} continue
123  if {[llength $INCLUDE]>0 && [lsearch -exact $INCLUDE $tail]<0} continue
124  if {[info exists STARTAT] && [string match $STARTAT $tail]} {unset STARTAT}
125  if {[info exists STARTAT]} continue
126  source $testfile
127  catch {db close}
128  if {$sqlite_open_file_count>0} {
129    puts "$tail did not close all files: $sqlite_open_file_count"
130    incr nErr
131    lappend ::failList $tail
132    set sqlite_open_file_count 0
133  }
134}
135#set argv quick
136#source $testdir/permutations.test
137#set argv ""
138source $testdir/misuse.test
139
140set sqlite_open_file_count 0
141really_finish_test
142