# 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
