1
0
mirror of https://github.com/sqlite/sqlite.git synced 2025-07-29 08:01:23 +03:00

Add an alternative application-defined pcache implementation and add test

cases to permutations.test to invoke it.  Added the SQLITE_CONFIG_GETPCACHE
method to sqlite3_config(). (CVS 5920)

FossilOrigin-Name: 16f1e6ec2ad92f68c0079a0c2b5ca08a3b4af816
This commit is contained in:
drh
2008-11-19 01:20:26 +00:00
parent 4c6517848f
commit b232c23297
9 changed files with 606 additions and 19 deletions

View File

@ -9,7 +9,7 @@
#
#***********************************************************************
#
# $Id: permutations.test,v 1.38 2008/11/13 16:21:50 danielk1977 Exp $
# $Id: permutations.test,v 1.39 2008/11/19 01:20:26 drh Exp $
set testdir [file dirname $argv0]
source $testdir/tester.tcl
@ -604,6 +604,106 @@ run_tests "safe_append" -description {
} -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_reset_auto_extension
sqlite3_shutdown
sqlite3_config_alt_pcache 1 0 1
sqlite3_initialize
autoinstall_test_functions
} -shutdown {
catch {db close}
sqlite3_reset_auto_extension
sqlite3_shutdown
sqlite3_config_alt_pcache 0 0 0
sqlite3_config_lookaside 100 500
install_malloc_faultsim 1
sqlite3_initialize
} -include ${perm-alt-pcache-testset}
run_tests "pcache10" -description {
Alternative pcache implementation without 10% random discard
} -initialize {
catch {db close}
sqlite3_reset_auto_extension
sqlite3_shutdown
sqlite3_config_alt_pcache 1 50 1
sqlite3_initialize
autoinstall_test_functions
} -shutdown {
catch {db close}
sqlite3_reset_auto_extension
sqlite3_shutdown
sqlite3_config_alt_pcache 0 0 0
sqlite3_initialize
} -include ${perm-alt-pcache-testset}
run_tests "pcache50" -description {
Alternative pcache implementation without 50% random discard
} -initialize {
catch {db close}
sqlite3_reset_auto_extension
sqlite3_shutdown
sqlite3_config_alt_pcache 1 50 1
sqlite3_initialize
autoinstall_test_functions
} -shutdown {
catch {db close}
sqlite3_reset_auto_extension
sqlite3_shutdown
sqlite3_config_alt_pcache 0 0 0
sqlite3_initialize
} -include ${perm-alt-pcache-testset}
run_tests "pcache90" -description {
Alternative pcache implementation without 90% random discard
} -initialize {
catch {db close}
sqlite3_reset_auto_extension
sqlite3_shutdown
sqlite3_config_alt_pcache 1 50 1
sqlite3_initialize
autoinstall_test_functions
} -shutdown {
catch {db close}
sqlite3_reset_auto_extension
sqlite3_shutdown
sqlite3_config_alt_pcache 0 0 0
sqlite3_initialize
} -include ${perm-alt-pcache-testset}
run_tests "pcache100" -description {
Alternative pcache implementation that always discards when unpinning
} -initialize {
catch {db close}
sqlite3_reset_auto_extension
sqlite3_shutdown
sqlite3_config_alt_pcache 1 100 1
sqlite3_initialize
autoinstall_test_functions
} -shutdown {
catch {db close}
sqlite3_reset_auto_extension
sqlite3_shutdown
sqlite3_config_alt_pcache 0 0 0
sqlite3_initialize
} -include ${perm-alt-pcache-testset}
# End of tests
#############################################################################