OLD | NEW |
| (Empty) |
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 h
elp}} | |
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 h
elp}} | |
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" | |
OLD | NEW |