Annotation of embedaddon/sqlite3/tool/shell4.test, revision 1.1
1.1 ! misho 1: # 2010 July 28
! 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: # The focus of this file is testing the CLI shell tool.
! 13: # These tests are specific to the .stats command.
! 14: #
! 15: # $Id: shell4.test,v 1.7 2009/07/17 16:54:48 shaneh Exp $
! 16: #
! 17:
! 18: # Test plan:
! 19: #
! 20: # shell4-1.*: Basic tests specific to the "stats" command.
! 21: #
! 22:
! 23: set CLI "./sqlite3"
! 24:
! 25: proc do_test {name cmd expected} {
! 26: puts -nonewline "$name ..."
! 27: set res [uplevel $cmd]
! 28: if {$res eq $expected} {
! 29: puts Ok
! 30: } else {
! 31: puts Error
! 32: puts " Got: $res"
! 33: puts " Expected: $expected"
! 34: exit
! 35: }
! 36: }
! 37:
! 38: proc catchcmd {db {cmd ""}} {
! 39: global CLI
! 40: set out [open cmds.txt w]
! 41: puts $out $cmd
! 42: close $out
! 43: set line "exec $CLI $db < cmds.txt"
! 44: set rc [catch { eval $line } msg]
! 45: list $rc $msg
! 46: }
! 47:
! 48: file delete -force test.db test.db.journal
! 49:
! 50: #----------------------------------------------------------------------------
! 51: # Test cases shell4-1.*: Tests specific to the "stats" command.
! 52: #
! 53:
! 54: # should default to off
! 55: do_test shell4-1.1.1 {
! 56: set res [catchcmd "test.db" ".show"]
! 57: list [regexp {stats: off} $res]
! 58: } {1}
! 59:
! 60: do_test shell4-1.1.2 {
! 61: set res [catchcmd "test.db" ".show"]
! 62: list [regexp {stats: on} $res]
! 63: } {0}
! 64:
! 65: # -stats should turn it on
! 66: do_test shell4-1.2.1 {
! 67: set res [catchcmd "-stats test.db" ".show"]
! 68: list [regexp {stats: on} $res]
! 69: } {1}
! 70:
! 71: do_test shell4-1.2.2 {
! 72: set res [catchcmd "-stats test.db" ".show"]
! 73: list [regexp {stats: off} $res]
! 74: } {0}
! 75:
! 76: # .stats ON|OFF Turn stats on or off
! 77: do_test shell4-1.3.1 {
! 78: catchcmd "test.db" ".stats"
! 79: } {1 {Error: unknown command or invalid arguments: "stats". Enter ".help" for help}}
! 80: do_test shell4-1.3.2 {
! 81: catchcmd "test.db" ".stats ON"
! 82: } {0 {}}
! 83: do_test shell4-1.3.3 {
! 84: catchcmd "test.db" ".stats OFF"
! 85: } {0 {}}
! 86: do_test shell4-1.3.4 {
! 87: # too many arguments
! 88: catchcmd "test.db" ".stats OFF BAD"
! 89: } {1 {Error: unknown command or invalid arguments: "stats". Enter ".help" for help}}
! 90:
! 91: # NB. whitespace is important
! 92: do_test shell4-1.4.1 {
! 93: set res [catchcmd "test.db" {.show}]
! 94: list [regexp {stats: off} $res]
! 95: } {1}
! 96:
! 97: do_test shell4-1.4.2 {
! 98: set res [catchcmd "test.db" {.stats ON
! 99: .show
! 100: }]
! 101: list [regexp {stats: on} $res]
! 102: } {1}
! 103:
! 104: do_test shell4-1.4.3 {
! 105: set res [catchcmd "test.db" {.stats OFF
! 106: .show
! 107: }]
! 108: list [regexp {stats: off} $res]
! 109: } {1}
! 110:
! 111: # make sure stats not present when off
! 112: do_test shell4-1.5.1 {
! 113: set res [catchcmd "test.db" {SELECT 1;}]
! 114: list [regexp {Memory Used} $res] \
! 115: [regexp {Heap Usage} $res] \
! 116: [regexp {Autoindex Inserts} $res]
! 117: } {0 0 0}
! 118:
! 119: # make sure stats are present when on
! 120: do_test shell4-1.5.2 {
! 121: set res [catchcmd "test.db" {.stats ON
! 122: SELECT 1;
! 123: }]
! 124: list [regexp {Memory Used} $res] \
! 125: [regexp {Heap Usage} $res] \
! 126: [regexp {Autoindex Inserts} $res]
! 127: } {1 1 1}
! 128:
! 129: puts "CLI tests completed successfully"
FreeBSD-CVSweb <freebsd-cvsweb@FreeBSD.org>