Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(342)

Side by Side Diff: third_party/sqlite/sqlite-src-3080704/test/shell2.test

Issue 883353008: [sql] Import reference version of SQLite 3.8.7.4. (Closed) Base URL: http://chromium.googlesource.com/chromium/src.git@master
Patch Set: Hold back encoding change which is messing up patch. Created 5 years, 10 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
OLDNEW
1 # 2009 Nov 11 1 # 2009 Nov 11
2 # 2 #
3 # The author disclaims copyright to this source code. In place of 3 # The author disclaims copyright to this source code. In place of
4 # a legal notice, here is a blessing: 4 # a legal notice, here is a blessing:
5 # 5 #
6 # May you do good and not evil. 6 # May you do good and not evil.
7 # May you find forgiveness for yourself and forgive others. 7 # May you find forgiveness for yourself and forgive others.
8 # May you share freely, never taking more than you give. 8 # May you share freely, never taking more than you give.
9 # 9 #
10 #*********************************************************************** 10 #***********************************************************************
11 # 11 #
12 # The focus of this file is testing the CLI shell tool. 12 # The focus of this file is testing the CLI shell tool.
13 # 13 #
14 # $Id: shell2.test,v 1.7 2009/07/17 16:54:48 shaneh Exp $ 14 # $Id: shell2.test,v 1.7 2009/07/17 16:54:48 shaneh Exp $
15 # 15 #
16 16
17 # Test plan: 17 # Test plan:
18 # 18 #
19 # shell2-1.*: Misc. test of various tickets and reported errors. 19 # shell2-1.*: Misc. test of various tickets and reported errors.
20 # 20 #
21 21 set testdir [file dirname $argv0]
22 package require sqlite3 22 source $testdir/tester.tcl
23 23 if {$tcl_platform(platform)=="windows"} {
24 set CLI "./sqlite3" 24 set CLI "sqlite3.exe"
25 25 } else {
26 proc do_test {name cmd expected} { 26 set CLI "./sqlite3"
27 puts -nonewline "$name ..."
28 set res [uplevel $cmd]
29 if {$res eq $expected} {
30 puts Ok
31 } else {
32 puts Error
33 puts " Got: $res"
34 puts " Expected: $expected"
35 exit
36 }
37 } 27 }
38 28 if {![file executable $CLI]} {
39 proc execsql {sql} { 29 finish_test
40 uplevel [list db eval $sql] 30 return
41 } 31 }
42 32 db close
43 proc catchsql {sql} { 33 forcedelete test.db test.db-journal test.db-wal
44 set rc [catch {uplevel [list db eval $sql]} msg]
45 list $rc $msg
46 }
47
48 proc catchcmd {db {cmd ""}} {
49 global CLI
50 set out [open cmds.txt w]
51 puts $out $cmd
52 close $out
53 set line "exec $CLI $db < cmds.txt"
54 set rc [catch { eval $line } msg]
55 list $rc $msg
56 }
57
58 file delete -force test.db test.db.journal
59 sqlite3 db test.db 34 sqlite3 db test.db
60 35
61 36
62 #---------------------------------------------------------------------------- 37 #----------------------------------------------------------------------------
63 # shell2-1.*: Misc. test of various tickets and reported errors. 38 # shell2-1.*: Misc. test of various tickets and reported errors.
64 # 39 #
65 40
66 # Batch mode not creating databases. 41 # Batch mode not creating databases.
67 # Reported on mailing list by Ken Zalewski. 42 # Reported on mailing list by Ken Zalewski.
68 # Ticket [aeff892c57]. 43 # Ticket [aeff892c57].
69 do_test shell2-1.1.1 { 44 do_test shell2-1.1.1 {
70 file delete -force foo.db 45 forcedelete foo.db
71 set rc [ catchcmd "-batch foo.db" "CREATE TABLE t1(a);" ] 46 set rc [ catchcmd "-batch foo.db" "CREATE TABLE t1(a);" ]
72 set fexist [file exist foo.db] 47 set fexist [file exist foo.db]
73 list $rc $fexist 48 list $rc $fexist
74 } {{0 {}} 1} 49 } {{0 {}} 1}
75 50
76 # Shell silently ignores extra parameters. 51 # Shell silently ignores extra parameters.
77 # Ticket [f5cb008a65]. 52 # Ticket [f5cb008a65].
78 do_test shell2-1.2.1 { 53 do_test shell2-1.2.1 {
79 set rc [catch { eval exec $CLI \":memory:\" \"select 3\" \"select 4\" } msg] 54 set rc [catch { eval exec $CLI \":memory:\" \"select 3\" \"select 4\" } msg]
80 list $rc \ 55 list $rc \
(...skipping 18 matching lines...) Expand all
99 } {1 {Error: near line 9: too many levels of trigger recursion}} 74 } {1 {Error: near line 9: too many levels of trigger recursion}}
100 75
101 76
102 77
103 # Shell not echoing all commands with echo on. 78 # Shell not echoing all commands with echo on.
104 # Ticket [eb620916be]. 79 # Ticket [eb620916be].
105 80
106 # Test with echo off 81 # Test with echo off
107 # NB. whitespace is important 82 # NB. whitespace is important
108 do_test shell2-1.4.1 { 83 do_test shell2-1.4.1 {
109 file delete -force foo.db 84 forcedelete foo.db
110 catchcmd "foo.db" {CREATE TABLE foo(a); 85 catchcmd "foo.db" {CREATE TABLE foo(a);
111 INSERT INTO foo(a) VALUES(1); 86 INSERT INTO foo(a) VALUES(1);
112 SELECT * FROM foo;} 87 SELECT * FROM foo;}
113 } {0 1} 88 } {0 1}
114 89
115 # Test with echo on using command line option 90 # Test with echo on using command line option
116 # NB. whitespace is important 91 # NB. whitespace is important
117 do_test shell2-1.4.2 { 92 do_test shell2-1.4.2 {
118 file delete -force foo.db 93 forcedelete foo.db
119 catchcmd "-echo foo.db" {CREATE TABLE foo(a); 94 catchcmd "-echo foo.db" {CREATE TABLE foo(a);
120 INSERT INTO foo(a) VALUES(1); 95 INSERT INTO foo(a) VALUES(1);
121 SELECT * FROM foo;} 96 SELECT * FROM foo;}
122 } {0 {CREATE TABLE foo(a); 97 } {0 {CREATE TABLE foo(a);
123 INSERT INTO foo(a) VALUES(1); 98 INSERT INTO foo(a) VALUES(1);
124 SELECT * FROM foo; 99 SELECT * FROM foo;
125 1}} 100 1}}
126 101
127 # Test with echo on using dot command 102 # Test with echo on using dot command
128 # NB. whitespace is important 103 # NB. whitespace is important
129 do_test shell2-1.4.3 { 104 do_test shell2-1.4.3 {
130 file delete -force foo.db 105 forcedelete foo.db
131 catchcmd "foo.db" {.echo ON 106 catchcmd "foo.db" {.echo ON
132 CREATE TABLE foo(a); 107 CREATE TABLE foo(a);
133 INSERT INTO foo(a) VALUES(1); 108 INSERT INTO foo(a) VALUES(1);
134 SELECT * FROM foo;} 109 SELECT * FROM foo;}
135 } {0 {CREATE TABLE foo(a); 110 } {0 {CREATE TABLE foo(a);
136 INSERT INTO foo(a) VALUES(1); 111 INSERT INTO foo(a) VALUES(1);
137 SELECT * FROM foo; 112 SELECT * FROM foo;
138 1}} 113 1}}
139 114
140 # Test with echo on using dot command and 115 # Test with echo on using dot command and
141 # turning off mid- processing. 116 # turning off mid- processing.
142 # NB. whitespace is important 117 # NB. whitespace is important
143 do_test shell2-1.4.4 { 118 do_test shell2-1.4.4 {
144 file delete -force foo.db 119 forcedelete foo.db
145 catchcmd "foo.db" {.echo ON 120 catchcmd "foo.db" {.echo ON
146 CREATE TABLE foo(a); 121 CREATE TABLE foo(a);
147 .echo OFF 122 .echo OFF
148 INSERT INTO foo(a) VALUES(1); 123 INSERT INTO foo(a) VALUES(1);
149 SELECT * FROM foo;} 124 SELECT * FROM foo;}
150 } {0 {CREATE TABLE foo(a); 125 } {0 {CREATE TABLE foo(a);
151 .echo OFF 126 .echo OFF
152 1}} 127 1}}
153 128
154 # Test with echo on using dot command and 129 # Test with echo on using dot command and
155 # multiple commands per line. 130 # multiple commands per line.
156 # NB. whitespace is important 131 # NB. whitespace is important
157 do_test shell2-1.4.5 { 132 do_test shell2-1.4.5 {
158 file delete -force foo.db 133 forcedelete foo.db
159 catchcmd "foo.db" {.echo ON 134 catchcmd "foo.db" {.echo ON
160 CREATE TABLE foo1(a); 135 CREATE TABLE foo1(a);
161 INSERT INTO foo1(a) VALUES(1); 136 INSERT INTO foo1(a) VALUES(1);
162 CREATE TABLE foo2(b); 137 CREATE TABLE foo2(b);
163 INSERT INTO foo2(b) VALUES(1); 138 INSERT INTO foo2(b) VALUES(1);
164 SELECT * FROM foo1; SELECT * FROM foo2; 139 SELECT * FROM foo1; SELECT * FROM foo2;
165 INSERT INTO foo1(a) VALUES(2); INSERT INTO foo2(b) VALUES(2); 140 INSERT INTO foo1(a) VALUES(2); INSERT INTO foo2(b) VALUES(2);
166 SELECT * FROM foo1; SELECT * FROM foo2; 141 SELECT * FROM foo1; SELECT * FROM foo2;
167 } 142 }
168 } {0 {CREATE TABLE foo1(a); 143 } {0 {CREATE TABLE foo1(a);
169 INSERT INTO foo1(a) VALUES(1); 144 INSERT INTO foo1(a) VALUES(1);
170 CREATE TABLE foo2(b); 145 CREATE TABLE foo2(b);
171 INSERT INTO foo2(b) VALUES(1); 146 INSERT INTO foo2(b) VALUES(1);
172 SELECT * FROM foo1; 147 SELECT * FROM foo1;
173 1 148 1
174 SELECT * FROM foo2; 149 SELECT * FROM foo2;
175 1 150 1
176 INSERT INTO foo1(a) VALUES(2); 151 INSERT INTO foo1(a) VALUES(2);
177 INSERT INTO foo2(b) VALUES(2); 152 INSERT INTO foo2(b) VALUES(2);
178 SELECT * FROM foo1; 153 SELECT * FROM foo1;
179 1 154 1
180 2 155 2
181 SELECT * FROM foo2; 156 SELECT * FROM foo2;
182 1 157 1
183 2}} 158 2
159 }}
184 160
185 # Test with echo on and headers on using dot command and 161 # Test with echo on and headers on using dot command and
186 # multiple commands per line. 162 # multiple commands per line.
187 # NB. whitespace is important 163 # NB. whitespace is important
188 do_test shell2-1.4.6 { 164 do_test shell2-1.4.6 {
189 file delete -force foo.db 165 forcedelete foo.db
190 catchcmd "foo.db" {.echo ON 166 catchcmd "foo.db" {.echo ON
191 .headers ON 167 .headers ON
192 CREATE TABLE foo1(a); 168 CREATE TABLE foo1(a);
193 INSERT INTO foo1(a) VALUES(1); 169 INSERT INTO foo1(a) VALUES(1);
194 CREATE TABLE foo2(b); 170 CREATE TABLE foo2(b);
195 INSERT INTO foo2(b) VALUES(1); 171 INSERT INTO foo2(b) VALUES(1);
196 SELECT * FROM foo1; SELECT * FROM foo2; 172 SELECT * FROM foo1; SELECT * FROM foo2;
197 INSERT INTO foo1(a) VALUES(2); INSERT INTO foo2(b) VALUES(2); 173 INSERT INTO foo1(a) VALUES(2); INSERT INTO foo2(b) VALUES(2);
198 SELECT * FROM foo1; SELECT * FROM foo2; 174 SELECT * FROM foo1; SELECT * FROM foo2;
199 } 175 }
(...skipping 10 matching lines...) Expand all
210 1 186 1
211 INSERT INTO foo1(a) VALUES(2); 187 INSERT INTO foo1(a) VALUES(2);
212 INSERT INTO foo2(b) VALUES(2); 188 INSERT INTO foo2(b) VALUES(2);
213 SELECT * FROM foo1; 189 SELECT * FROM foo1;
214 a 190 a
215 1 191 1
216 2 192 2
217 SELECT * FROM foo2; 193 SELECT * FROM foo2;
218 b 194 b
219 1 195 1
220 2}} 196 2
197 }}
221 198
222 puts "CLI tests completed successfully" 199 finish_test
OLDNEW
« no previous file with comments | « third_party/sqlite/sqlite-src-3080704/test/shell1.test ('k') | third_party/sqlite/sqlite-src-3080704/test/shell3.test » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698