shrink.test 1.1 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243
  1. # 2011 November 16
  2. #
  3. # The author disclaims copyright to this source code. In place of
  4. # a legal notice, here is a blessing:
  5. #
  6. # May you do good and not evil.
  7. # May you find forgiveness for yourself and forgive others.
  8. # May you share freely, never taking more than you give.
  9. #
  10. #***********************************************************************
  11. #
  12. # This file contains test cases for sqlite3_db_release_memory and
  13. # the PRAGMA shrink_memory statement.
  14. #
  15. set testdir [file dirname $argv0]
  16. source $testdir/tester.tcl
  17. unset -nocomplain baseline
  18. do_test shrink-1.1 {
  19. db eval {
  20. PRAGMA cache_size = 2000;
  21. CREATE TABLE t1(x,y);
  22. INSERT INTO t1 VALUES(randomblob(1000000),1);
  23. }
  24. set ::baseline sqlite3_memory_used
  25. sqlite3_db_release_memory db
  26. expr {$::baseline > [sqlite3_memory_used]+500000}
  27. } {1}
  28. do_test shrink-1.2 {
  29. set baseline [sqlite3_memory_used]
  30. db eval {
  31. UPDATE t1 SET y=y+1;
  32. }
  33. expr {$::baseline+500000 < [sqlite3_memory_used]}
  34. } {1}
  35. do_test shrink-1.3 {
  36. set baseline [sqlite3_memory_used]
  37. db eval {PRAGMA shrink_memory}
  38. expr {$::baseline > [sqlite3_memory_used]+500000}
  39. } {1}
  40. finish_test