xref: /sqlite-3.40.0/test/shrink.test (revision 905b82d5)
109419b4bSdrh# 2011 November 16
209419b4bSdrh#
309419b4bSdrh# The author disclaims copyright to this source code.  In place of
409419b4bSdrh# a legal notice, here is a blessing:
509419b4bSdrh#
609419b4bSdrh#    May you do good and not evil.
709419b4bSdrh#    May you find forgiveness for yourself and forgive others.
809419b4bSdrh#    May you share freely, never taking more than you give.
909419b4bSdrh#
1009419b4bSdrh#***********************************************************************
1109419b4bSdrh#
1209419b4bSdrh# This file contains test cases for sqlite3_db_release_memory and
1309419b4bSdrh# the PRAGMA shrink_memory statement.
1409419b4bSdrh#
1509419b4bSdrh
1609419b4bSdrhset testdir [file dirname $argv0]
1709419b4bSdrhsource $testdir/tester.tcl
187416f2edSdrhtest_set_config_pagecache 0 0
1909419b4bSdrh
2009419b4bSdrhunset -nocomplain baseline
2109419b4bSdrhdo_test shrink-1.1 {
2209419b4bSdrh  db eval {
235d8341a9Sdan    PRAGMA cache_size = 2000;
2409419b4bSdrh    CREATE TABLE t1(x,y);
2509419b4bSdrh    INSERT INTO t1 VALUES(randomblob(1000000),1);
2609419b4bSdrh  }
27*905b82d5Sdrh  set ::baseline [sqlite3_memory_used]
288dd7a6a9Sdrh  # EVIDENCE-OF: R-58814-63508 The sqlite3_db_release_memory(D) interface
298dd7a6a9Sdrh  # attempts to free as much heap memory as possible from database
308dd7a6a9Sdrh  # connection D.
3109419b4bSdrh  sqlite3_db_release_memory db
3209419b4bSdrh  expr {$::baseline > [sqlite3_memory_used]+500000}
3309419b4bSdrh} {1}
3409419b4bSdrhdo_test shrink-1.2 {
3509419b4bSdrh  set baseline [sqlite3_memory_used]
3609419b4bSdrh  db eval {
3709419b4bSdrh    UPDATE t1 SET y=y+1;
3809419b4bSdrh  }
3909419b4bSdrh  expr {$::baseline+500000 < [sqlite3_memory_used]}
4009419b4bSdrh} {1}
4109419b4bSdrhdo_test shrink-1.3 {
4209419b4bSdrh  set baseline [sqlite3_memory_used]
4309419b4bSdrh  db eval {PRAGMA shrink_memory}
4409419b4bSdrh  expr {$::baseline > [sqlite3_memory_used]+500000}
4509419b4bSdrh} {1}
4609419b4bSdrh
477416f2edSdrhtest_restore_config_pagecache
4809419b4bSdrhfinish_test
49