aboutsummaryrefslogtreecommitdiffstatshomepage
path: root/libraries/sqlite/unix/sqlite-3.5.1/test/main.test
diff options
context:
space:
mode:
authordan miller2007-10-20 02:49:29 +0000
committerdan miller2007-10-20 02:49:29 +0000
commite36d23a85ebff914d74bb541558c2b6082b78edb (patch)
tree54b58fdf162e78af64055282a6035c8d2443389d /libraries/sqlite/unix/sqlite-3.5.1/test/main.test
parent* Fixed an issue whereby avatar chat distances were being calculated against ... (diff)
downloadopensim-SC-e36d23a85ebff914d74bb541558c2b6082b78edb.zip
opensim-SC-e36d23a85ebff914d74bb541558c2b6082b78edb.tar.gz
opensim-SC-e36d23a85ebff914d74bb541558c2b6082b78edb.tar.bz2
opensim-SC-e36d23a85ebff914d74bb541558c2b6082b78edb.tar.xz
sqlite source (unix build) added to libraries
Diffstat (limited to 'libraries/sqlite/unix/sqlite-3.5.1/test/main.test')
-rw-r--r--libraries/sqlite/unix/sqlite-3.5.1/test/main.test360
1 files changed, 360 insertions, 0 deletions
diff --git a/libraries/sqlite/unix/sqlite-3.5.1/test/main.test b/libraries/sqlite/unix/sqlite-3.5.1/test/main.test
new file mode 100644
index 0000000..00aa96a
--- /dev/null
+++ b/libraries/sqlite/unix/sqlite-3.5.1/test/main.test
@@ -0,0 +1,360 @@
1# 2001 September 15
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# This file implements regression tests for SQLite library. The
12# focus of this file is exercising the code in main.c.
13#
14# $Id: main.test,v 1.27 2007/09/03 15:42:48 drh Exp $
15
16set testdir [file dirname $argv0]
17source $testdir/tester.tcl
18
19# Only do the next group of tests if the sqlite3_complete API is available
20#
21ifcapable {complete} {
22
23# Tests of the sqlite_complete() function.
24#
25do_test main-1.1 {
26 db complete {This is a test}
27} {0}
28do_test main-1.2 {
29 db complete {
30 }
31} {1}
32do_test main-1.3 {
33 db complete {
34 -- a comment ;
35 }
36} {1}
37do_test main-1.4 {
38 db complete {
39 -- a comment ;
40 ;
41 }
42} {1}
43do_test main-1.5 {
44 db complete {DROP TABLE 'xyz;}
45} {0}
46do_test main-1.6 {
47 db complete {DROP TABLE 'xyz';}
48} {1}
49do_test main-1.7 {
50 db complete {DROP TABLE "xyz;}
51} {0}
52do_test main-1.8 {
53 db complete {DROP TABLE "xyz';}
54} {0}
55do_test main-1.9 {
56 db complete {DROP TABLE "xyz";}
57} {1}
58do_test main-1.10 {
59 db complete {DROP TABLE xyz; hi}
60} {0}
61do_test main-1.11 {
62 db complete {DROP TABLE xyz; }
63} {1}
64do_test main-1.12 {
65 db complete {DROP TABLE xyz; -- hi }
66} {1}
67do_test main-1.13 {
68 db complete {DROP TABLE xyz; -- hi
69 }
70} {1}
71do_test main-1.14 {
72 db complete {SELECT a-b FROM t1; }
73} {1}
74do_test main-1.15 {
75 db complete {SELECT a/e FROM t1 }
76} {0}
77do_test main-1.16 {
78 db complete {
79 CREATE TABLE abc(x,y);
80 }
81} {1}
82ifcapable {trigger} {
83 do_test main-1.17 {
84 db complete {
85 CREATE TRIGGER xyz AFTER DELETE abc BEGIN UPDATE pqr;
86 }
87 } {0}
88 do_test main-1.18 {
89 db complete {
90 CREATE TRIGGER xyz AFTER DELETE abc BEGIN UPDATE pqr; END;
91 }
92 } {1}
93 do_test main-1.19 {
94 db complete {
95 CREATE TRIGGER xyz AFTER DELETE abc BEGIN
96 UPDATE pqr;
97 unknown command;
98 }
99 } {0}
100 do_test main-1.20 {
101 db complete {
102 CREATE TRIGGER xyz AFTER DELETE backend BEGIN
103 UPDATE pqr;
104 }
105 } {0}
106 do_test main-1.21 {
107 db complete {
108 CREATE TRIGGER xyz AFTER DELETE end BEGIN
109 SELECT a, b FROM end;
110 }
111 } {0}
112 do_test main-1.22 {
113 db complete {
114 CREATE TRIGGER xyz AFTER DELETE end BEGIN
115 SELECT a, b FROM end;
116 END;
117 }
118 } {1}
119 do_test main-1.23 {
120 db complete {
121 CREATE TRIGGER xyz AFTER DELETE end BEGIN
122 SELECT a, b FROM end;
123 END;
124 SELECT a, b FROM end;
125 }
126 } {1}
127 do_test main-1.24 {
128 db complete {
129 CREATE TRIGGER xyz AFTER DELETE [;end;] BEGIN
130 UPDATE pqr;
131 }
132 } {0}
133 do_test main-1.25 {
134 db complete {
135 CREATE TRIGGER xyz AFTER DELETE backend BEGIN
136 UPDATE pqr SET a=[;end;];;;
137 }
138 } {0}
139 do_test main-1.26 {
140 db complete {
141 CREATE -- a comment
142 TRIGGER xyz AFTER DELETE backend BEGIN
143 UPDATE pqr SET a=5;
144 }
145 } {0}
146 do_test main-1.27.1 {
147 db complete {
148 CREATE -- a comment
149 TRIGGERX xyz AFTER DELETE backend BEGIN
150 UPDATE pqr SET a=5;
151 }
152 } {1}
153 do_test main-1.27.2 {
154 db complete {
155 CREATE/**/TRIGGER xyz AFTER DELETE backend BEGIN
156 UPDATE pqr SET a=5;
157 }
158 } {0}
159 ifcapable {explain} {
160 do_test main-1.27.3 {
161 db complete {
162 /* */ EXPLAIN -- A comment
163 CREATE/**/TRIGGER xyz AFTER DELETE backend BEGIN
164 UPDATE pqr SET a=5;
165 }
166 } {0}
167 }
168 do_test main-1.27.4 {
169 db complete {
170 BOGUS token
171 CREATE TRIGGER xyz AFTER DELETE backend BEGIN
172 UPDATE pqr SET a=5;
173 }
174 } {1}
175 ifcapable {explain} {
176 do_test main-1.27.5 {
177 db complete {
178 EXPLAIN
179 CREATE TEMP TRIGGER xyz AFTER DELETE backend BEGIN
180 UPDATE pqr SET a=5;
181 }
182 } {0}
183 }
184 do_test main-1.28 {
185 db complete {
186 CREATE TEMPORARY TRIGGER xyz AFTER DELETE backend BEGIN
187 UPDATE pqr SET a=5;
188 }
189 } {0}
190 do_test main-1.29 {
191 db complete {
192 CREATE TRIGGER xyz AFTER DELETE backend BEGIN
193 UPDATE pqr SET a=5;
194 EXPLAIN select * from xyz;
195 }
196 } {0}
197}
198do_test main-1.30 {
199 db complete {
200 CREATE TABLE /* In comment ; */
201 }
202} {0}
203do_test main-1.31 {
204 db complete {
205 CREATE TABLE /* In comment ; */ hi;
206 }
207} {1}
208do_test main-1.31 {
209 db complete {
210 CREATE TABLE /* In comment ; */;
211 }
212} {1}
213do_test main-1.32 {
214 db complete {
215 stuff;
216 /*
217 CREATE TABLE
218 multiple lines
219 of text
220 */
221 }
222} {1}
223do_test main-1.33 {
224 db complete {
225 /*
226 CREATE TABLE
227 multiple lines
228 of text;
229 }
230} {0}
231do_test main-1.34 {
232 db complete {
233 /*
234 CREATE TABLE
235 multiple lines "*/
236 of text;
237 }
238} {1}
239do_test main-1.35 {
240 db complete {hi /**/ there;}
241} {1}
242do_test main-1.36 {
243 db complete {hi there/***/;}
244} {1}
245
246} ;# end ifcapable {complete}
247
248
249# Try to open a database with a corrupt database file.
250#
251do_test main-2.0 {
252 catch {db close}
253 file delete -force test.db
254 set fd [open test.db w]
255 puts $fd hi!
256 close $fd
257 set v [catch {sqlite3 db test.db} msg]
258 if {$v} {lappend v $msg} {lappend v {}}
259} {0 {}}
260
261# Here are some tests for tokenize.c.
262#
263do_test main-3.1 {
264 catch {db close}
265 foreach f [glob -nocomplain testdb/*] {file delete -force $f}
266 file delete -force testdb
267 sqlite3 db testdb
268 set v [catch {execsql {SELECT * from T1 where x!!5}} msg]
269 lappend v $msg
270} {1 {unrecognized token: "!!"}}
271do_test main-3.2 {
272 catch {db close}
273 foreach f [glob -nocomplain testdb/*] {file delete -force $f}
274 file delete -force testdb
275 sqlite3 db testdb
276 set v [catch {execsql {SELECT * from T1 where ^x}} msg]
277 lappend v $msg
278} {1 {unrecognized token: "^"}}
279do_test main-3.2.2 {
280 catchsql {select 'abc}
281} {1 {unrecognized token: "'abc"}}
282do_test main-3.2.3 {
283 catchsql {select "abc}
284} {1 {unrecognized token: ""abc"}}
285
286do_test main-3.3 {
287 catch {db close}
288 foreach f [glob -nocomplain testdb/*] {file delete -force $f}
289 file delete -force testdb
290 sqlite3 db testdb
291 execsql {
292 create table T1(X REAL); /* C-style comments allowed */
293 insert into T1 values(0.5);
294 insert into T1 values(0.5e2);
295 insert into T1 values(0.5e-002);
296 insert into T1 values(5e-002);
297 insert into T1 values(-5.0e-2);
298 insert into T1 values(-5.1e-2);
299 insert into T1 values(0.5e2);
300 insert into T1 values(0.5E+02);
301 insert into T1 values(5E+02);
302 insert into T1 values(5.0E+03);
303 select x*10 from T1 order by x*5;
304 }
305} {-0.51 -0.5 0.05 0.5 5.0 500.0 500.0 500.0 5000.0 50000.0}
306do_test main-3.4 {
307 set v [catch {execsql {create bogus}} msg]
308 lappend v $msg
309} {1 {near "bogus": syntax error}}
310do_test main-3.5 {
311 set v [catch {execsql {create}} msg]
312 lappend v $msg
313} {1 {near "create": syntax error}}
314do_test main-3.6 {
315 catchsql {SELECT 'abc' + #9}
316} {1 {near "#9": syntax error}}
317
318# The following test-case tests the linked list code used to manage
319# sqlite3_vfs structures.
320if {$::tcl_platform(platform)=="unix"} {
321 ifcapable threadsafe {
322 do_test main-4.1 {
323 sqlite3_crash_enable 1
324 sqlite3_crash_enable 0
325
326 sqlite3async_enable 1
327 sqlite3async_enable 0
328
329 sqlite3_crash_enable 1
330 sqlite3async_enable 1
331 sqlite3_crash_enable 0
332 sqlite3async_enable 0
333
334 sqlite3_crash_enable 1
335 sqlite3async_enable 1
336 sqlite3async_enable 0
337 sqlite3_crash_enable 0
338
339 sqlite3async_enable 1
340 sqlite3_crash_enable 1
341 sqlite3_crash_enable 0
342 sqlite3async_enable 0
343
344 sqlite3async_enable 1
345 sqlite3_crash_enable 1
346 sqlite3async_enable 0
347 sqlite3_crash_enable 0
348 } {}
349 do_test main-4.2 {
350 set rc [catch {sqlite3 db test.db -vfs crash} msg]
351 list $rc $msg
352 } {1 {no such vfs: crash}}
353 do_test main-4.3 {
354 set rc [catch {sqlite3 db test.db -vfs async} msg]
355 list $rc $msg
356 } {1 {no such vfs: async}}
357 }
358}
359
360finish_test