File:  [ELWIX - Embedded LightWeight unIX -] / embedaddon / sqlite3 / tool / shell4.test
Revision 1.1.1.1 (vendor branch): download - view: text, annotated - select for diffs - revision graph
Tue Feb 21 17:04:17 2012 UTC (12 years, 10 months ago) by misho
Branches: sqlite3, MAIN
CVS tags: v3_7_10, HEAD
sqlite3

    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.1.1.1 2012/02/21 17:04:17 misho 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>