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

Side by Side Diff: third_party/sqlite/src/test/trace.test

Issue 6990047: Import SQLite 3.7.6.3. (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: Created 9 years, 7 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 | Annotate | Revision Log
« no previous file with comments | « third_party/sqlite/src/test/tkt3992.test ('k') | third_party/sqlite/src/test/trace2.test » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
1 # 2004 Jun 29 1 # 2004 Jun 29
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 #***********************************************************************
(...skipping 41 matching lines...) Expand 10 before | Expand all | Expand 10 after
52 # If we prepare a statement and execute it multiple times, the trace 52 # If we prepare a statement and execute it multiple times, the trace
53 # happens on each execution. 53 # happens on each execution.
54 # 54 #
55 db close 55 db close
56 sqlite3 db test.db; set DB [sqlite3_connection_pointer db] 56 sqlite3 db test.db; set DB [sqlite3_connection_pointer db]
57 do_test trace-2.1 { 57 do_test trace-2.1 {
58 set STMT [sqlite3_prepare $DB {INSERT INTO t1 VALUES(2,3)} -1 TAIL] 58 set STMT [sqlite3_prepare $DB {INSERT INTO t1 VALUES(2,3)} -1 TAIL]
59 db trace trace_proc 59 db trace trace_proc
60 proc trace_proc sql { 60 proc trace_proc sql {
61 global TRACE_OUT 61 global TRACE_OUT
62 set TRACE_OUT $sql 62 lappend TRACE_OUT [string trim $sql]
63 } 63 }
64 set TRACE_OUT {} 64 set TRACE_OUT {}
65 sqlite3_step $STMT 65 sqlite3_step $STMT
66 set TRACE_OUT 66 set TRACE_OUT
67 } {INSERT INTO t1 VALUES(2,3)} 67 } {{INSERT INTO t1 VALUES(2,3)}}
68 do_test trace-2.2 { 68 do_test trace-2.2 {
69 set TRACE_OUT {} 69 set TRACE_OUT {}
70 sqlite3_reset $STMT 70 sqlite3_reset $STMT
71 set TRACE_OUT 71 set TRACE_OUT
72 } {} 72 } {}
73 do_test trace-2.3 { 73 do_test trace-2.3 {
74 sqlite3_step $STMT 74 sqlite3_step $STMT
75 set TRACE_OUT 75 set TRACE_OUT
76 } {INSERT INTO t1 VALUES(2,3)} 76 } {{INSERT INTO t1 VALUES(2,3)}}
77 do_test trace-2.4 { 77 do_test trace-2.4 {
78 set TRACE_OUT {}
78 execsql {SELECT * FROM t1} 79 execsql {SELECT * FROM t1}
79 } {1 2 2 3 2 3} 80 } {1 2 2 3 2 3}
80 do_test trace-2.5 { 81 do_test trace-2.5 {
81 set TRACE_OUT 82 set TRACE_OUT
82 } {SELECT * FROM t1} 83 } {{SELECT * FROM t1}}
83 catch {sqlite3_finalize $STMT} 84 catch {sqlite3_finalize $STMT}
84 85
86 do_test trace-2.6 {
87 set TRACE_OUT {}
88 db eval VACUUM
89 set TRACE_OUT
90 } {VACUUM}
91
85 # Similar tests, but this time for profiling. 92 # Similar tests, but this time for profiling.
86 # 93 #
87 do_test trace-3.1 { 94 do_test trace-3.1 {
88 set rc [catch {db profile 1 2 3} msg] 95 set rc [catch {db profile 1 2 3} msg]
89 lappend rc $msg 96 lappend rc $msg
90 } {1 {wrong # args: should be "db profile ?CALLBACK?"}} 97 } {1 {wrong # args: should be "db profile ?CALLBACK?"}}
91 set ::stmtlist {} 98 set ::stmtlist {}
92 proc profile_proc {cmd tm} { 99 proc profile_proc {cmd tm} {
93 lappend ::stmtlist [string trim $cmd] 100 lappend ::stmtlist [string trim $cmd]
94 } 101 }
(...skipping 20 matching lines...) Expand all
115 # If we prepare a statement and execute it multiple times, the profile 122 # If we prepare a statement and execute it multiple times, the profile
116 # happens on each execution. 123 # happens on each execution.
117 # 124 #
118 db close 125 db close
119 sqlite3 db test.db; set DB [sqlite3_connection_pointer db] 126 sqlite3 db test.db; set DB [sqlite3_connection_pointer db]
120 do_test trace-4.1 { 127 do_test trace-4.1 {
121 set STMT [sqlite3_prepare $DB {INSERT INTO t2 VALUES(2,3)} -1 TAIL] 128 set STMT [sqlite3_prepare $DB {INSERT INTO t2 VALUES(2,3)} -1 TAIL]
122 db trace trace_proc 129 db trace trace_proc
123 proc profile_proc {sql tm} { 130 proc profile_proc {sql tm} {
124 global TRACE_OUT 131 global TRACE_OUT
125 set TRACE_OUT $sql 132 lappend TRACE_OUT [string trim $sql]
126 } 133 }
127 set TRACE_OUT {} 134 set TRACE_OUT {}
128 sqlite3_step $STMT 135 sqlite3_step $STMT
129 set TRACE_OUT 136 set TRACE_OUT
130 } {INSERT INTO t2 VALUES(2,3)} 137 } {{INSERT INTO t2 VALUES(2,3)}}
131 do_test trace-4.2 { 138 do_test trace-4.2 {
132 set TRACE_OUT {} 139 set TRACE_OUT {}
133 sqlite3_reset $STMT 140 sqlite3_reset $STMT
134 set TRACE_OUT 141 set TRACE_OUT
135 } {} 142 } {}
136 do_test trace-4.3 { 143 do_test trace-4.3 {
137 sqlite3_step $STMT 144 sqlite3_step $STMT
138 set TRACE_OUT 145 set TRACE_OUT
139 } {INSERT INTO t2 VALUES(2,3)} 146 } {{INSERT INTO t2 VALUES(2,3)}}
140 do_test trace-4.4 { 147 do_test trace-4.4 {
148 set TRACE_OUT {}
141 execsql {SELECT * FROM t1} 149 execsql {SELECT * FROM t1}
142 } {1 2 2 3 2 3} 150 } {1 2 2 3 2 3}
143 do_test trace-4.5 { 151 do_test trace-4.5 {
144 set TRACE_OUT 152 set TRACE_OUT
145 } {SELECT * FROM t1} 153 } {{SELECT * FROM t1}}
146 catch {sqlite3_finalize $STMT} 154 catch {sqlite3_finalize $STMT}
147 155
148 # Trigger tracing. 156 # Trigger tracing.
149 # 157 #
150 ifcapable trigger { 158 ifcapable trigger {
151 do_test trace-5.1 { 159 do_test trace-5.1 {
152 db eval { 160 db eval {
153 CREATE TRIGGER r1t1 AFTER UPDATE ON t1 BEGIN 161 CREATE TRIGGER r1t1 AFTER UPDATE ON t1 BEGIN
154 UPDATE t2 SET a=new.a WHERE rowid=new.rowid; 162 UPDATE t2 SET a=new.a WHERE rowid=new.rowid;
155 END; 163 END;
156 CREATE TRIGGER r1t2 AFTER UPDATE ON t2 BEGIN 164 CREATE TRIGGER r1t2 AFTER UPDATE ON t2 BEGIN
157 SELECT 'hello'; 165 SELECT 'hello';
158 END; 166 END;
159 } 167 }
160 set TRACE_OUT {} 168 set TRACE_OUT {}
161 proc trace_proc cmd { 169 proc trace_proc cmd {
162 lappend ::TRACE_OUT [string trim $cmd] 170 lappend ::TRACE_OUT [string trim $cmd]
163 } 171 }
164 db eval { 172 db eval {
165 UPDATE t1 SET a=a+1; 173 UPDATE t1 SET a=a+1;
166 } 174 }
167 set TRACE_OUT 175 set TRACE_OUT
168 } {{UPDATE t1 SET a=a+1;} {-- TRIGGER r1t1} {-- TRIGGER r1t2} {-- TRIGGER r1t1 } {-- TRIGGER r1t2} {-- TRIGGER r1t1} {-- TRIGGER r1t2}} 176 } {{UPDATE t1 SET a=a+1;} {-- TRIGGER r1t1} {-- TRIGGER r1t2} {-- TRIGGER r1t1 } {-- TRIGGER r1t2} {-- TRIGGER r1t1} {-- TRIGGER r1t2}}
169 } 177 }
170 178
179 # With 3.6.21, we add the ability to expand host parameters in the trace
180 # output. Test this feature.
181 #
182 do_test trace-6.1 {
183 set ::t6int [expr {3+3}]
184 set ::t6real [expr {1.5*4.0}]
185 set ::t6str {test-six y'all}
186 db eval {SELECT x'3031323334' AS x} {set ::t6blob $x}
187 unset -nocomplain t6null
188 set TRACE_OUT {}
189 execsql {SELECT $::t6int, $::t6real, $t6str, $t6blob, $t6null}
190 } {6 6.0 {test-six y'all} 01234 {}}
191 do_test trace-6.2 {
192 set TRACE_OUT
193 } {{SELECT 6, 6.0, 'test-six y''all', x'3031323334', NULL}}
194 do_test trace-6.3 {
195 set TRACE_OUT {}
196 execsql {SELECT $::t6int, ?1, $::t6int}
197 } {6 6 6}
198 do_test trace-6.4 {
199 set TRACE_OUT
200 } {{SELECT 6, 6, 6}}
201 do_test trace-6.5 {
202 execsql {CREATE TABLE t6([$::t6int],"?1"); INSERT INTO t6 VALUES(1,2)}
203 set TRACE_OUT {}
204 execsql {SELECT '$::t6int', [$::t6int], $::t6int, ?1, "?1", $::t6int FROM t6}
205 } {{$::t6int} 1 6 6 2 6}
206 do_test trace-6.6 {
207 set TRACE_OUT
208 } {{SELECT '$::t6int', [$::t6int], 6, 6, "?1", 6 FROM t6}}
209
210 # Do these same tests with a UTF16 database.
211 #
212 do_test trace-6.100 {
213 db close
214 sqlite3 db :memory:
215 db eval {
216 PRAGMA encoding=UTF16be;
217 CREATE TABLE t6([$::t6str],"?1");
218 INSERT INTO t6 VALUES(1,2);
219 }
220 db trace trace_proc
221 set TRACE_OUT {}
222 execsql {SELECT '$::t6str', [$::t6str], $::t6str, ?1, "?1", $::t6str FROM t6}
223 } {{$::t6str} 1 {test-six y'all} {test-six y'all} 2 {test-six y'all}}
224 do_test trace-6.101 {
225 set TRACE_OUT
226 } {{SELECT '$::t6str', [$::t6str], 'test-six y''all', 'test-six y''all', "?1", ' test-six y''all' FROM t6}}
227
228 do_test trace-6.200 {
229 db close
230 sqlite3 db :memory:
231 db eval {
232 PRAGMA encoding=UTF16le;
233 CREATE TABLE t6([$::t6str],"?1");
234 INSERT INTO t6 VALUES(1,2);
235 }
236 db trace trace_proc
237 set TRACE_OUT {}
238 execsql {SELECT '$::t6str', [$::t6str], $::t6str, ?1, "?1", $::t6str FROM t6}
239 } {{$::t6str} 1 {test-six y'all} {test-six y'all} 2 {test-six y'all}}
240 do_test trace-6.201 {
241 set TRACE_OUT
242 } {{SELECT '$::t6str', [$::t6str], 'test-six y''all', 'test-six y''all', "?1", ' test-six y''all' FROM t6}}
243
244
171 finish_test 245 finish_test
OLDNEW
« no previous file with comments | « third_party/sqlite/src/test/tkt3992.test ('k') | third_party/sqlite/src/test/trace2.test » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698