summaryrefslogtreecommitdiffstats
path: root/third_party/sqlite/src/test/permutations.test
diff options
context:
space:
mode:
authorphajdan.jr@chromium.org <phajdan.jr@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2010-08-18 23:37:03 +0000
committerphajdan.jr@chromium.org <phajdan.jr@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2010-08-18 23:37:03 +0000
commite33cba46498a40774bc6d33a9258afbd5fa059e6 (patch)
tree4ce6b22f4f7b2b245b2d89bb9209a53e3274b263 /third_party/sqlite/src/test/permutations.test
parentaaf6472fd01db928919d4dc13687bde2a4b5c7b9 (diff)
downloadchromium_src-e33cba46498a40774bc6d33a9258afbd5fa059e6.zip
chromium_src-e33cba46498a40774bc6d33a9258afbd5fa059e6.tar.gz
chromium_src-e33cba46498a40774bc6d33a9258afbd5fa059e6.tar.bz2
Move bundled copy of sqlite one level deeper to better separate it
from our patches, READMEs, etc. Also, add a shim header so we can use it for building with system sqlite. TEST=compile BUG=22208 Review URL: http://codereview.chromium.org/3108030 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@56619 0039d316-1c4b-4281-b951-d872f2087c98
Diffstat (limited to 'third_party/sqlite/src/test/permutations.test')
-rw-r--r--third_party/sqlite/src/test/permutations.test761
1 files changed, 761 insertions, 0 deletions
diff --git a/third_party/sqlite/src/test/permutations.test b/third_party/sqlite/src/test/permutations.test
new file mode 100644
index 0000000..2dec299
--- /dev/null
+++ b/third_party/sqlite/src/test/permutations.test
@@ -0,0 +1,761 @@
+# 2008 June 21
+#
+# The author disclaims copyright to this source code. In place of
+# a legal notice, here is a blessing:
+#
+# May you do good and not evil.
+# May you find forgiveness for yourself and forgive others.
+# May you share freely, never taking more than you give.
+#
+#***********************************************************************
+#
+# $Id: permutations.test,v 1.51 2009/07/01 18:09:02 danielk1977 Exp $
+
+set testdir [file dirname $argv0]
+source $testdir/tester.tcl
+
+# Argument processing.
+#
+#puts "PERM-DEBUG: argv=$argv"
+namespace eval ::perm {
+ variable testmode [lindex $::argv 0]
+ variable testfile [lindex $::argv 1]
+}
+set argv [lrange $argv 2 end]
+#puts "PERM-DEBUG: testmode=$::perm::testmode tstfile=$::perm::testfile"
+
+set ::permutations_presql ""
+set ::permutations_test_prefix ""
+
+if {$::perm::testmode eq "veryquick"} {
+ set ::perm::testmode [list persistent_journal no_journal]
+ set ISQUICK 1
+}
+if {$::perm::testmode eq "quick"} {
+ set ::perm::testmode [list persistent_journal no_journal autovacuum_ioerr]
+ set ISQUICK 1
+}
+if {$::perm::testmode eq "all" || $::perm::testmode eq ""} {
+ set ::perm::testmode {
+ memsubsys1 memsubsys2 singlethread multithread onefile utf16 exclusive
+ persistent_journal persistent_journal_error no_journal no_journal_error
+ autovacuum_ioerr no_mutex_try fullmutex journaltest inmemory_journal
+ pcache0 pcache10 pcache50 pcache90 pcache100
+ }
+}
+if {$::perm::testmode eq "targets"} {
+ puts ""
+ puts -nonewline "veryquick "
+ puts "Same as persistent_journal and no_journal"
+ puts -nonewline "quick "
+ puts "Same as persistent_journal, no_journal and autovacuum_ioerr"
+ puts -nonewline "all "
+ puts "Everything except autovacuum_crash"
+}
+#puts "PERM-DEBUG: testmode=$::perm::testmode"
+
+set EXCLUDE {
+ all.test in2.test onefile.test
+ async2.test incrvacuum_ioerr.test permutations.test
+ async.test jrnlmode2.test quick.test
+ autovacuum_crash.test jrnlmode3.test shared_err.test
+ autovacuum_ioerr.test jrnlmode4.test soak.test
+ btree8.test loadext.test speed1p.test
+ corrupt.test malloc2.test speed1.test
+ crash2.test malloc3.test speed2.test
+ crash3.test malloc4.test speed3.test
+ crash4.test mallocAll.test speed4p.test
+ crash6.test malloc.test speed4.test
+ crash7.test memleak.test sqllimits1.test
+ crash.test memsubsys1.test thread001.test
+ exclusive3.test memsubsys2.test thread002.test
+ fts3.test misc7.test utf16.test
+ fuzz_malloc.test misuse.test veryquick.test
+ fuzz.test mutex2.test vtab_err.test
+ lookaside.test fuzz3.test savepoint4.test
+ savepoint6.test
+}
+set ALLTESTS [list]
+foreach filename [glob $testdir/*.test] {
+ set filename [file tail $filename]
+ if {[lsearch $EXCLUDE $filename] < 0} { lappend ALLTESTS $filename }
+}
+set ALLTESTS [lsort $ALLTESTS]
+
+rename finish_test really_finish_test2
+proc finish_test {} {}
+
+rename do_test really_do_test
+
+proc do_test {name args} {
+ eval really_do_test [list "perm-$::permutations_test_prefix.$name"] $args
+}
+
+# Overload the [sqlite3] command
+rename sqlite3 really_sqlite3
+proc sqlite3 {args} {
+ set r [eval really_sqlite3 $args]
+ if { [llength $args] == 2 && $::permutations_presql ne "" } {
+ [lindex $args 0] eval $::permutations_presql
+ }
+ set r
+}
+
+# run_tests OPTIONS
+#
+# where available options are:
+#
+# -initialize SCRIPT (default "")
+# -shutdown SCRIPT (default "")
+# -include LIST-OF-FILES (default $::ALLTESTS)
+# -exclude LIST-OF-FILES (default "")
+# -presql SQL (default "")
+# -description TITLE (default "")
+#
+proc run_tests {name args} {
+ set ::permutations_test_prefix $name
+ set options(-shutdown) ""
+ set options(-initialize) ""
+ set options(-exclude) ""
+ set options(-include) $::ALLTESTS
+ set options(-presql) ""
+ set options(-description) "no description supplied (fixme)"
+ array set options $args
+ #puts "PERM-DEBUG: name=$name testfile=$::perm::testfile"
+ #puts "PERM-DEBUG: [array get options]"
+
+ if {$::perm::testmode eq "targets"} {
+ puts [format "% -20s %s" $name [string trim $options(-description)]]
+ return
+ }
+ if {$::perm::testmode ne "" && [lsearch $::perm::testmode $name]<0} {
+ puts "skipping permutation test $name..."
+ return
+ }
+
+ uplevel $options(-initialize)
+ set ::permutations_presql $options(-presql)
+
+ foreach file [lsort $options(-include)] {
+ if {[lsearch $options(-exclude) $file] < 0 &&
+ ( $::perm::testfile eq "" ||
+ $::perm::testfile eq $file ||
+ "$::perm::testfile.test" eq $file )
+ } {
+ set ::perm::shared_cache_setting [shared_cache_setting]
+ uplevel source $::testdir/$file
+ if {$::perm::shared_cache_setting ne [shared_cache_setting]} {
+ error "File $::testdir/$file changed the shared cache setting from $::perm::shared_cache_setting to [shared_cache_setting]"
+ }
+ } else {
+ # puts "skipping file $file"
+ }
+ }
+
+ uplevel $options(-shutdown)
+ set ::permutations_test_prefix ""
+}
+
+proc shared_cache_setting {} {
+ set ret 0
+ catch {
+ set ret [sqlite3_enable_shared_cache]
+ }
+ return $ret
+}
+
+#############################################################################
+# Start of tests
+
+# Run some tests using pre-allocated page and scratch blocks.
+#
+run_tests "memsubsys1" -description {
+ Tests using pre-allocated page and scratch blocks
+} -exclude {
+ ioerr5.test
+ malloc5.test
+} -initialize {
+ catch {db close}
+ sqlite3_shutdown
+ sqlite3_config_pagecache 4096 24
+ sqlite3_config_scratch 25000 1
+ sqlite3_initialize
+ autoinstall_test_functions
+} -shutdown {
+ catch {db close}
+ sqlite3_shutdown
+ sqlite3_config_pagecache 0 0
+ sqlite3_config_scratch 0 0
+ sqlite3_initialize
+ autoinstall_test_functions
+}
+
+# Run some tests using pre-allocated page and scratch blocks. This time
+# the allocations are too small to use in most cases.
+#
+# Both ioerr5.test and malloc5.test are excluded because they test the
+# sqlite3_soft_heap_limit() and sqlite3_release_memory() functionality.
+# This functionality is disabled if a pre-allocated page block is provided.
+#
+run_tests "memsubsys2" -description {
+ Tests using small pre-allocated page and scratch blocks
+} -exclude {
+ ioerr5.test
+ malloc5.test
+} -initialize {
+ catch {db close}
+ sqlite3_shutdown
+ sqlite3_config_pagecache 512 5
+ sqlite3_config_scratch 1000 1
+ sqlite3_initialize
+ autoinstall_test_functions
+} -shutdown {
+ catch {db close}
+ sqlite3_shutdown
+ sqlite3_config_pagecache 0 0
+ sqlite3_config_scratch 0 0
+ sqlite3_initialize
+ autoinstall_test_functions
+}
+
+# Run all tests with the lookaside allocator disabled.
+#
+run_tests "nolookaside" -description {
+ OOM tests with lookaside disabled
+} -initialize {
+ catch {db close}
+ sqlite3_shutdown
+ sqlite3_config_lookaside 0 0
+ sqlite3_initialize
+ autoinstall_test_functions
+} -shutdown {
+ catch {db close}
+ sqlite3_shutdown
+ sqlite3_config_lookaside 100 500
+ sqlite3_initialize
+ autoinstall_test_functions
+}
+
+# Run some tests in SQLITE_CONFIG_SINGLETHREAD mode.
+#
+run_tests "singlethread" -description {
+ Tests run in SQLITE_CONFIG_SINGLETHREAD mode
+} -initialize {
+ catch {db close}
+ sqlite3_shutdown
+ catch {sqlite3_config singlethread}
+ sqlite3_initialize
+ autoinstall_test_functions
+} -include {
+ delete.test delete2.test insert.test rollback.test select1.test
+ select2.test trans.test update.test vacuum.test types.test
+ types2.test types3.test
+} -shutdown {
+ catch {db close}
+ sqlite3_shutdown
+ catch {sqlite3_config serialized}
+ sqlite3_initialize
+ autoinstall_test_functions
+}
+
+run_tests "nomutex" -description {
+ Tests run with the SQLITE_OPEN_MULTITHREADED flag passed to sqlite3_open().
+} -initialize {
+ rename sqlite3 sqlite3_nomutex
+ proc sqlite3 {args} {
+ if {[string range [lindex $args 0] 0 0] ne "-"} {
+ lappend args -fullmutex 0 -nomutex 1
+ }
+ uplevel [concat sqlite3_nomutex $args]
+ }
+} -include {
+ delete.test delete2.test insert.test rollback.test select1.test
+ select2.test trans.test update.test vacuum.test types.test
+ types2.test types3.test
+} -shutdown {
+ rename sqlite3 {}
+ rename sqlite3_nomutex sqlite3
+}
+
+# Run some tests in SQLITE_CONFIG_MULTITHREAD mode.
+#
+run_tests "multithread" -description {
+ Tests run in SQLITE_CONFIG_MULTITHREAD mode
+} -initialize {
+ catch {db close}
+ sqlite3_shutdown
+ catch {sqlite3_config multithread}
+ sqlite3_initialize
+ autoinstall_test_functions
+} -include {
+ delete.test delete2.test insert.test rollback.test select1.test
+ select2.test trans.test update.test vacuum.test types.test
+ types2.test types3.test
+} -shutdown {
+ catch {db close}
+ sqlite3_shutdown
+ catch {sqlite3_config serialized}
+ sqlite3_initialize
+ autoinstall_test_functions
+}
+
+# Run some tests in SQLITE_OPEN_FULLMUTEX mode.
+#
+run_tests "fullmutex" -description {
+ Tests run in SQLITE_OPEN_FULLMUTEX mode
+} -initialize {
+ rename sqlite3 sqlite3_fullmutex
+ proc sqlite3 {args} {
+ if {[string range [lindex $args 0] 0 0] ne "-"} {
+ lappend args -nomutex 0 -fullmutex 1
+ }
+ uplevel [concat sqlite3_fullmutex $args]
+ }
+} -include {
+ delete.test delete2.test insert.test rollback.test select1.test
+ select2.test trans.test update.test vacuum.test types.test
+ types2.test types3.test
+} -shutdown {
+ rename sqlite3 {}
+ rename sqlite3_fullmutex sqlite3
+}
+
+# Run some tests using the "onefile" demo.
+#
+run_tests "onefile" -description {
+ Run some tests using the "test_onefile.c" demo
+} -initialize {
+ rename sqlite3 sqlite3_onefile
+ proc sqlite3 {args} {
+ if {[string range [lindex $args 0] 0 0] ne "-"} {
+ lappend args -vfs fs
+ }
+ uplevel [concat sqlite3_onefile $args]
+ }
+} -include {
+ conflict.test insert.test insert2.test insert3.test
+ rollback.test select1.test select2.test select3.test
+} -shutdown {
+ rename sqlite3 {}
+ rename sqlite3_onefile sqlite3
+}
+
+# Run some tests using UTF-16 databases.
+#
+run_tests "utf16" -description {
+ Run tests using UTF-16 databases
+} -presql {
+ pragma encoding = 'UTF-16'
+} -include {
+ alter.test alter3.test
+ auth.test bind.test blob.test capi2.test capi3.test collate1.test
+ collate2.test collate3.test collate4.test collate5.test collate6.test
+ conflict.test date.test delete.test expr.test fkey1.test func.test
+ hook.test index.test insert2.test insert.test interrupt.test in.test
+ intpkey.test ioerr.test join2.test join.test lastinsert.test
+ laststmtchanges.test limit.test lock2.test lock.test main.test
+ memdb.test minmax.test misc1.test misc2.test misc3.test notnull.test
+ null.test progress.test quote.test rowid.test select1.test select2.test
+ select3.test select4.test select5.test select6.test sort.test
+ subselect.test tableapi.test table.test temptable.test
+ trace.test trigger1.test trigger2.test trigger3.test
+ trigger4.test types2.test types.test unique.test update.test
+ vacuum.test view.test where.test
+}
+
+# Run some tests in exclusive locking mode.
+#
+run_tests "exclusive" -description {
+ Run tests in exclusive locking mode.
+} -presql {
+ pragma locking_mode = 'exclusive'
+} -include {
+ rollback.test select1.test select2.test
+ malloc.test ioerr.test
+}
+
+# Run some tests in exclusive locking mode with truncated journals.
+#
+run_tests "exclusive-truncate" -description {
+ Run tests in exclusive locking mode and truncate journal mode.
+} -presql {
+ pragma locking_mode = 'exclusive';
+ pragma journal_mode = TRUNCATE;
+} -include {
+ delete.test delete2.test insert.test rollback.test select1.test
+ select2.test update.test malloc.test ioerr.test
+}
+
+# Run some tests in persistent journal mode.
+#
+run_tests "persistent_journal" -description {
+ Run tests in persistent-journal mode.
+} -presql {
+ pragma journal_mode = persist
+} -include {
+ delete.test delete2.test insert.test rollback.test select1.test
+ select2.test trans.test update.test vacuum.test
+}
+
+# Run some tests in truncating journal mode.
+#
+run_tests "truncate_journal" -description {
+ Run tests in persistent-journal mode.
+} -presql {
+ pragma journal_mode = truncate
+} -include {
+ delete.test delete2.test insert.test rollback.test select1.test
+ select2.test trans.test update.test vacuum.test
+ malloc.test ioerr.test
+}
+
+# Run some error tests in persistent journal mode.
+#
+run_tests "persistent_journal_error" -description {
+ Run malloc.test and ioerr.test in persistent-journal mode.
+} -presql {
+ pragma journal_mode = persist
+} -include {
+ malloc.test ioerr.test
+}
+
+# Run some tests in no journal mode.
+#
+run_tests "no_journal" -description {
+ Run tests in no-journal mode.
+} -presql {
+ pragma journal_mode = persist
+} -include {
+ delete.test delete2.test insert.test rollback.test select1.test
+ select2.test trans.test update.test vacuum.test
+}
+
+# Run some error tests in no journal mode.
+#
+run_tests "no_journal_error" -description {
+ Run malloc.test and ioerr.test in no-journal mode.
+} -presql {
+ pragma journal_mode = persist
+} -include {
+ malloc.test ioerr.test
+}
+
+# Run some crash-tests in autovacuum mode.
+#
+run_tests "autovacuum_crash" -description {
+ Run crash.test in autovacuum mode.
+} -presql {
+ pragma auto_vacuum = 1
+} -include crash.test
+
+# Run some ioerr-tests in autovacuum mode.
+#
+run_tests "autovacuum_ioerr" -description {
+ Run ioerr.test in autovacuum mode.
+} -presql {
+ pragma auto_vacuum = 1
+} -include ioerr.test
+
+# Run tests with an in-memory journal.
+#
+run_tests "inmemory_journal" -description {
+ Run tests with an in-memory journal file.
+} -presql {
+ pragma journal_mode = 'memory'
+} -exclude {
+ # Exclude all tests that simulate IO errors.
+ autovacuum_ioerr2.test incrvacuum_ioerr.test ioerr.test
+ ioerr.test ioerr2.test ioerr3.test ioerr4.test ioerr5.test
+ vacuum3.test incrblob_err.test diskfull.test backup_ioerr.test
+
+ # Exclude test scripts that use tcl IO to access journal files or count
+ # the number of fsync() calls.
+ pager.test exclusive.test jrnlmode.test sync.test misc1.test
+ journal1.test conflict.test crash8.test tkt3457.test io.test
+}
+
+ifcapable mem3 {
+ run_tests "memsys3" -description {
+ Run tests using the allocator in mem3.c.
+ } -exclude {
+ autovacuum.test delete3.test manydb.test
+ bigrow.test incrblob2.test memdb.test
+ bitvec.test index2.test memsubsys1.test
+ capi3c.test ioerr.test memsubsys2.test
+ capi3.test join3.test pagesize.test
+ collate5.test limit.test backup_ioerr.test
+ backup_malloc.test
+ } -initialize {
+ catch {db close}
+ sqlite3_reset_auto_extension
+ sqlite3_shutdown
+ sqlite3_config_heap 25000000 0
+ sqlite3_config_lookaside 0 0
+ ifcapable mem5 {
+ # If both memsys3 and memsys5 are enabled in the build, the call to
+ # [sqlite3_config_heap] will initialize the system to use memsys5.
+ # The following overrides this preference and installs the memsys3
+ # allocator.
+ sqlite3_install_memsys3
+ }
+ install_malloc_faultsim 1
+ sqlite3_initialize
+ autoinstall_test_functions
+ } -shutdown {
+ catch {db close}
+ sqlite3_shutdown
+ sqlite3_config_heap 0 0
+ sqlite3_config_lookaside 100 500
+ install_malloc_faultsim 1
+ sqlite3_initialize
+ autoinstall_test_functions
+ }
+}
+
+ifcapable mem5 {
+ run_tests "memsys5" -description {
+ Run tests using the allocator in mem5.c.
+ } -exclude {
+ autovacuum.test delete3.test manydb.test
+ bigrow.test incrblob2.test memdb.test
+ bitvec.test index2.test memsubsys1.test
+ capi3c.test ioerr.test memsubsys2.test
+ capi3.test join3.test pagesize.test
+ collate5.test limit.test zeroblob.test
+ } -initialize {
+ catch {db close}
+ sqlite3_shutdown
+ sqlite3_config_heap 25000000 64
+ sqlite3_config_lookaside 0 0
+ install_malloc_faultsim 1
+ sqlite3_initialize
+ autoinstall_test_functions
+ } -shutdown {
+ catch {db close}
+ sqlite3_shutdown
+ sqlite3_config_heap 0 0
+ sqlite3_config_lookaside 100 500
+ install_malloc_faultsim 1
+ sqlite3_initialize
+ autoinstall_test_functions
+ }
+
+ run_tests "memsys5-2" -description {
+ Run tests using the allocator in mem5.c in a different configuration.
+ } -include {
+ select1.test
+ } -initialize {
+ catch {db close}
+ sqlite3_shutdown
+ sqlite3_config_heap 40000000 16
+ sqlite3_config_lookaside 0 0
+ install_malloc_faultsim 1
+ sqlite3_initialize
+ autoinstall_test_functions
+ } -shutdown {
+ catch {db close}
+ sqlite3_shutdown
+ sqlite3_config_heap 0 0
+ sqlite3_config_lookaside 100 500
+ install_malloc_faultsim 1
+ sqlite3_initialize
+ autoinstall_test_functions
+ }
+}
+
+ifcapable threadsafe {
+ run_tests "no_mutex_try" -description {
+ The sqlite3_mutex_try() interface always fails
+ } -exclude [concat $EXCLUDE mutex1.test mutex2.test] \
+ -initialize {
+ catch {db close}
+ sqlite3_shutdown
+ install_mutex_counters 1
+ set ::disable_mutex_try 1
+ sqlite3_initialize
+ autoinstall_test_functions
+ } -shutdown {
+ catch {db close}
+ sqlite3_shutdown
+ install_mutex_counters 0
+ sqlite3_initialize
+ autoinstall_test_functions
+ }
+}
+
+# run_tests "crash_safe_append" -description {
+# Run crash.test with persistent journals on a SAFE_APPEND file-system.
+# } -initialize {
+# rename crashsql sa_crashsql
+# proc crashsql {args} {
+# set options [lrange $args 0 [expr {[llength $args]-2}]]
+# lappend options -char safe_append
+# set sql [lindex $args end]
+# lappend options "
+# PRAGMA journal_mode=persistent;
+# $sql
+# "
+# set fd [open test.db-journal w]
+# puts $fd [string repeat 1234567890 100000]
+# close $fd
+# eval sa_crashsql $options
+# }
+# } -shutdown {
+# rename crashsql {}
+# rename sa_crashsql crashsql
+# } -include crash.test
+
+run_tests "safe_append" -description {
+ Run some tests on a SAFE_APPEND file-system.
+} -initialize {
+ rename sqlite3 sqlite3_safeappend
+ proc sqlite3 {args} {
+ if {[string range [lindex $args 0] 0 0] ne "-"} {
+ lappend args -vfs devsym
+ }
+ uplevel [concat sqlite3_safeappend $args]
+ }
+ sqlite3_simulate_device -char safe_append
+} -shutdown {
+ rename sqlite3 {}
+ rename sqlite3_shutdown sqlite3
+} -include [lsort [concat shared_err.test $ALLTESTS]] \
+ -exclude async3.test
+
+# The set of tests to run on the alternative-pcache
+set perm-alt-pcache-testset {
+ async.test
+ attach.test
+ delete.test delete2.test
+ index.test
+ insert.test insert2.test
+ join.test join2.test
+ rollback.test
+ select1.test select2.test
+ trans.test
+ update.test
+}
+
+run_tests "pcache0" -description {
+ Alternative pcache implementation without random discard
+} -initialize {
+ catch {db close}
+ sqlite3_shutdown
+ sqlite3_config_alt_pcache 1 0 1
+ sqlite3_initialize
+ autoinstall_test_functions
+} -shutdown {
+ catch {db close}
+ sqlite3_shutdown
+ sqlite3_config_alt_pcache 0 0 0
+ sqlite3_config_lookaside 100 500
+ install_malloc_faultsim 1
+ sqlite3_initialize
+ autoinstall_test_functions
+} -include ${perm-alt-pcache-testset}
+
+run_tests "pcache10" -description {
+ Alternative pcache implementation without 10% random discard
+} -initialize {
+ catch {db close}
+ sqlite3_shutdown
+ sqlite3_config_alt_pcache 1 50 1
+ sqlite3_initialize
+ autoinstall_test_functions
+} -shutdown {
+ catch {db close}
+ sqlite3_shutdown
+ sqlite3_config_alt_pcache 0 0 0
+ sqlite3_initialize
+ autoinstall_test_functions
+} -include ${perm-alt-pcache-testset}
+
+run_tests "pcache50" -description {
+ Alternative pcache implementation without 50% random discard
+} -initialize {
+ catch {db close}
+ sqlite3_shutdown
+ sqlite3_config_alt_pcache 1 50 1
+ sqlite3_initialize
+ autoinstall_test_functions
+} -shutdown {
+ catch {db close}
+ sqlite3_shutdown
+ sqlite3_config_alt_pcache 0 0 0
+ sqlite3_initialize
+ autoinstall_test_functions
+} -include ${perm-alt-pcache-testset}
+
+run_tests "pcache90" -description {
+ Alternative pcache implementation without 90% random discard
+} -initialize {
+ catch {db close}
+ sqlite3_shutdown
+ sqlite3_config_alt_pcache 1 50 1
+ sqlite3_initialize
+ autoinstall_test_functions
+} -shutdown {
+ catch {db close}
+ sqlite3_shutdown
+ sqlite3_config_alt_pcache 0 0 0
+ sqlite3_initialize
+ autoinstall_test_functions
+} -include ${perm-alt-pcache-testset}
+
+run_tests "pcache100" -description {
+ Alternative pcache implementation that always discards when unpinning
+} -initialize {
+ catch {db close}
+ sqlite3_shutdown
+ sqlite3_config_alt_pcache 1 100 1
+ sqlite3_initialize
+ autoinstall_test_functions
+} -shutdown {
+ catch {db close}
+ sqlite3_shutdown
+ sqlite3_config_alt_pcache 0 0 0
+ sqlite3_initialize
+ autoinstall_test_functions
+} -include ${perm-alt-pcache-testset}
+
+run_tests "journaltest" -description {
+ Check that pages are synced before being written (test_journal.c).
+} -initialize {
+ set ISQUICK 1
+ catch {db close}
+ register_jt_vfs -default ""
+ #sqlite3_instvfs binarylog -default binarylog ostrace.bin
+} -shutdown {
+ #sqlite3_instvfs destroy binarylog
+ unregister_jt_vfs
+} -include [concat $::ALLTESTS savepoint6.test
+] -exclude {
+ incrvacuum.test
+ ioerr.test
+ corrupt4.test
+ io.test
+ crash8.test
+ async4.test
+}
+
+# End of tests
+#############################################################################
+
+if {$::perm::testmode eq "targets"} { puts "" ; exit }
+
+# Restore the [sqlite3] command.
+#
+rename sqlite3 {}
+rename really_sqlite3 sqlite3
+
+# Restore the [finish_test] command.
+#
+rename finish_test ""
+rename really_finish_test2 finish_test
+
+# Restore the [do_test] command.
+#
+rename do_test ""
+rename really_do_test do_test
+
+finish_test