Revise the initialization and shutdown logic so that it no longer keeps
a recursive mutex allocated for the whole interval but instead releases the mutex as soon as possible. Do not reset status values upon initialization. (CVS 5559) FossilOrigin-Name: 697fe7a3167c22a3232ce154e9d47cf75af613c4
This commit is contained in:
+23
-1
@@ -11,7 +11,7 @@
|
||||
#
|
||||
# This file contains tests of the memory allocation subsystem
|
||||
#
|
||||
# $Id: memsubsys1.test,v 1.8 2008/08/04 20:13:27 drh Exp $
|
||||
# $Id: memsubsys1.test,v 1.9 2008/08/12 15:21:12 drh Exp $
|
||||
|
||||
set testdir [file dirname $argv0]
|
||||
source $testdir/tester.tcl
|
||||
@@ -46,12 +46,27 @@ proc build_test_db {testname pragmas} {
|
||||
integrity_check $testname.2
|
||||
}
|
||||
|
||||
# Reset all of the highwater marks.
|
||||
#
|
||||
proc reset_highwater_marks {} {
|
||||
sqlite3_status SQLITE_STATUS_MEMORY_USED 1
|
||||
sqlite3_status SQLITE_STATUS_MALLOC_SIZE 1
|
||||
sqlite3_status SQLITE_STATUS_PAGECACHE_USED 1
|
||||
sqlite3_status SQLITE_STATUS_PAGECACHE_OVERFLOW 1
|
||||
sqlite3_status SQLITE_STATUS_PAGECACHE_SIZE 1
|
||||
sqlite3_status SQLITE_STATUS_SCRATCH_USED 1
|
||||
sqlite3_status SQLITE_STATUS_SCRATCH_OVERFLOW 1
|
||||
sqlite3_status SQLITE_STATUS_SCRATCH_SIZE 1
|
||||
sqlite3_status SQLITE_STATUS_PARSER_STACK 1
|
||||
}
|
||||
|
||||
# Test 1: Both PAGECACHE and SCRATCH are shut down.
|
||||
#
|
||||
db close
|
||||
sqlite3_shutdown
|
||||
sqlite3_config_lookaside 0 0
|
||||
sqlite3_initialize
|
||||
reset_highwater_marks
|
||||
build_test_db memsubsys1-1 {PRAGMA page_size=1024}
|
||||
do_test memsubsys1-1.3 {
|
||||
set pg_used [lindex [sqlite3_status SQLITE_STATUS_PAGECACHE_USED 0] 2]
|
||||
@@ -68,6 +83,7 @@ db close
|
||||
sqlite3_shutdown
|
||||
sqlite3_config_pagecache 1024 20
|
||||
sqlite3_initialize
|
||||
reset_highwater_marks
|
||||
build_test_db memsubsys1-2 {PRAGMA page_size=1024}
|
||||
#show_memstats
|
||||
do_test memsubsys1-2.3 {
|
||||
@@ -89,6 +105,7 @@ db close
|
||||
sqlite3_shutdown
|
||||
sqlite3_config_pagecache 512 20
|
||||
sqlite3_initialize
|
||||
reset_highwater_marks
|
||||
build_test_db memsubsys1-3.1 {PRAGMA page_size=1024}
|
||||
#show_memstats
|
||||
do_test memsubsys1-3.1.3 {
|
||||
@@ -104,6 +121,7 @@ db close
|
||||
sqlite3_shutdown
|
||||
sqlite3_config_pagecache 2048 20
|
||||
sqlite3_initialize
|
||||
reset_highwater_marks
|
||||
build_test_db memsubsys1-3.2 {PRAGMA page_size=2048}
|
||||
#show_memstats
|
||||
do_test memsubsys1-3.2.3 {
|
||||
@@ -123,6 +141,7 @@ sqlite3_shutdown
|
||||
sqlite3_config_pagecache 1024 50
|
||||
sqlite3_config_scratch 6000 2
|
||||
sqlite3_initialize
|
||||
reset_highwater_marks
|
||||
build_test_db memsubsys1-4 {PRAGMA page_size=1024}
|
||||
#show_memstats
|
||||
do_test memsubsys1-4.3 {
|
||||
@@ -149,6 +168,7 @@ sqlite3_shutdown
|
||||
sqlite3_config_pagecache 4096 24
|
||||
sqlite3_config_scratch 6000 2
|
||||
sqlite3_initialize
|
||||
reset_highwater_marks
|
||||
build_test_db memsubsys1-5 {PRAGMA page_size=4096}
|
||||
#show_memstats
|
||||
do_test memsubsys1-5.3 {
|
||||
@@ -174,6 +194,7 @@ sqlite3_shutdown
|
||||
sqlite3_config_pagecache 4096 24
|
||||
sqlite3_config_scratch 25000 1
|
||||
sqlite3_initialize
|
||||
reset_highwater_marks
|
||||
build_test_db memsubsys1-6 {PRAGMA page_size=4096}
|
||||
#show_memstats
|
||||
do_test memsubsys1-6.3 {
|
||||
@@ -198,6 +219,7 @@ sqlite3_shutdown
|
||||
sqlite3_config_pagecache 4096 24
|
||||
sqlite3_config_scratch 25000 1
|
||||
sqlite3_initialize
|
||||
reset_highwater_marks
|
||||
build_test_db memsubsys1-7 {
|
||||
PRAGMA page_size=4096;
|
||||
PRAGMA cache_size=10;
|
||||
|
||||
+17
-1
@@ -11,7 +11,7 @@
|
||||
#
|
||||
# This file contains tests of the memory allocation subsystem.
|
||||
#
|
||||
# $Id: memsubsys2.test,v 1.1 2008/07/10 18:13:43 drh Exp $
|
||||
# $Id: memsubsys2.test,v 1.2 2008/08/12 15:21:12 drh Exp $
|
||||
|
||||
set testdir [file dirname $argv0]
|
||||
source $testdir/tester.tcl
|
||||
@@ -45,6 +45,20 @@ proc build_test_db {testname pragmas} {
|
||||
integrity_check $testname.2
|
||||
}
|
||||
|
||||
# Reset all of the highwater marks.
|
||||
#
|
||||
proc reset_highwater_marks {} {
|
||||
sqlite3_status SQLITE_STATUS_MEMORY_USED 1
|
||||
sqlite3_status SQLITE_STATUS_MALLOC_SIZE 1
|
||||
sqlite3_status SQLITE_STATUS_PAGECACHE_USED 1
|
||||
sqlite3_status SQLITE_STATUS_PAGECACHE_OVERFLOW 1
|
||||
sqlite3_status SQLITE_STATUS_PAGECACHE_SIZE 1
|
||||
sqlite3_status SQLITE_STATUS_SCRATCH_USED 1
|
||||
sqlite3_status SQLITE_STATUS_SCRATCH_OVERFLOW 1
|
||||
sqlite3_status SQLITE_STATUS_SCRATCH_SIZE 1
|
||||
sqlite3_status SQLITE_STATUS_PARSER_STACK 1
|
||||
}
|
||||
|
||||
# Test 1: Verify that calling sqlite3_malloc(0) returns a NULL
|
||||
# pointer.
|
||||
#
|
||||
@@ -77,6 +91,7 @@ db close
|
||||
sqlite3_shutdown
|
||||
sqlite3_config_memstatus 0
|
||||
sqlite3_initialize
|
||||
reset_highwater_marks
|
||||
set highwater [sqlite3_memory_highwater 0]
|
||||
do_test memsubsys2-3.1 {
|
||||
set highwater
|
||||
@@ -114,6 +129,7 @@ do_test memsubsys2-3.9 {
|
||||
sqlite3_shutdown
|
||||
sqlite3_config_memstatus 1
|
||||
sqlite3_initialize
|
||||
reset_highwater_marks
|
||||
set highwater [sqlite3_memory_highwater 0]
|
||||
do_test memsubsys2-4.1 {
|
||||
set highwater
|
||||
|
||||
Reference in New Issue
Block a user