mirror of
				https://github.com/glebarez/go-sqlite.git
				synced 2025-10-31 19:13:06 +08:00 
			
		
		
		
	
		
			
				
	
	
		
			49 lines
		
	
	
		
			1.3 KiB
		
	
	
	
		
			Plaintext
		
	
	
	
	
	
			
		
		
	
	
			49 lines
		
	
	
		
			1.3 KiB
		
	
	
	
		
			Plaintext
		
	
	
	
	
	
| # 2011 November 16
 | |
| #
 | |
| # 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.
 | |
| #
 | |
| #***********************************************************************
 | |
| #
 | |
| # This file contains test cases for sqlite3_db_release_memory and
 | |
| # the PRAGMA shrink_memory statement.
 | |
| #
 | |
| 
 | |
| set testdir [file dirname $argv0]
 | |
| source $testdir/tester.tcl
 | |
| test_set_config_pagecache 0 0
 | |
| 
 | |
| unset -nocomplain baseline
 | |
| do_test shrink-1.1 {
 | |
|   db eval {
 | |
|     PRAGMA cache_size = 2000;
 | |
|     CREATE TABLE t1(x,y);
 | |
|     INSERT INTO t1 VALUES(randomblob(1000000),1);
 | |
|   }
 | |
|   set ::baseline [sqlite3_memory_used]
 | |
|   # EVIDENCE-OF: R-58814-63508 The sqlite3_db_release_memory(D) interface
 | |
|   # attempts to free as much heap memory as possible from database
 | |
|   # connection D.
 | |
|   sqlite3_db_release_memory db
 | |
|   expr {$::baseline > [sqlite3_memory_used]+500000}
 | |
| } {1}
 | |
| do_test shrink-1.2 {
 | |
|   set baseline [sqlite3_memory_used]
 | |
|   db eval {
 | |
|     UPDATE t1 SET y=y+1;
 | |
|   }
 | |
|   expr {$::baseline+500000 < [sqlite3_memory_used]}
 | |
| } {1}
 | |
| do_test shrink-1.3 {
 | |
|   set baseline [sqlite3_memory_used]
 | |
|   db eval {PRAGMA shrink_memory}
 | |
|   expr {$::baseline > [sqlite3_memory_used]+500000}
 | |
| } {1}
 | |
| 
 | |
| test_restore_config_pagecache
 | |
| finish_test
 | 
