wasCSharpSQLite – Blame information for rev 1

Subversion Repositories:
Rev:
Rev Author Line No. Line
1 office 1 puts {# 2008 December 11
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.
12 #
13 # This file is automatically generated from a separate TCL script.
14 # This file seeks to exercise integer boundary values.
15 #
16 # $Id: boundary4.tcl,v 1.3 2009/01/02 15:45:48 shane Exp $
17  
18 set testdir [file dirname $argv0]
19 source $testdir/tester.tcl
20  
21 # Many of the boundary tests depend on a working 64-bit implementation.
22 if {![working_64bit_int]} { finish_test; return }
23 ifcapable !altertable { finish_test; return }
24 }
25  
26 expr srand(0)
27  
28 # Generate interesting boundary numbers
29 #
30 foreach x {
31 0x7f
32 0x7fff
33 0x7fffff
34 0x7fffffff
35 0x7fffffffff
36 0x7fffffffffff
37 0x7fffffffffffff
38 0x7fffffffffffffff
39 } {
40 set x [expr {wide($x)}]
41 set boundarynum($x) 1
42 set boundarynum([expr {$x+1}]) 1
43 set boundarynum([expr {-($x+1)}]) 1
44 set boundarynum([expr {-($x+2)}]) 1
45 set boundarynum([expr {$x+$x+1}]) 1
46 set boundarynum([expr {$x+$x+2}]) 1
47 }
48 set x [expr {wide(127)}]
49 for {set i 127} {$i<=9} {incr i} {
50 set boundarynum($x) 1
51 set boundarynum([expr {$x+1}]) 1
52 set x [expr {wide($x*128 + 127)}]
53 }
54  
55 # Scramble the $inlist into a random order.
56 #
57 proc scramble {inlist} {
58 set y {}
59 foreach x $inlist {
60 lappend y [list [expr {rand()}] $x]
61 }
62 set y [lsort $y]
63 set outlist {}
64 foreach x $y {
65 lappend outlist [lindex $x 1]
66 }
67 return $outlist
68 }
69  
70 # A simple selection sort. Not trying to be efficient.
71 #
72 proc sort {inlist} {
73 set outlist {}
74 set mn [lindex $inlist 0]
75 foreach x $inlist {
76 if {$x<$mn} {set mn $x}
77 }
78 set outlist $mn
79 set mx $mn
80 while {1} {
81 set valid 0
82 foreach x $inlist {
83 if {$x>$mx && (!$valid || $mn>$x)} {
84 set mn $x
85 set valid 1
86 }
87 }
88 if {!$valid} break
89 lappend outlist $mn
90 set mx $mn
91 }
92 return $outlist
93 }
94  
95 # Reverse the order of a list
96 #
97 proc reverse {inlist} {
98 set i [llength $inlist]
99 set outlist {}
100 for {incr i -1} {$i>=0} {incr i -1} {
101 lappend outlist [lindex $inlist $i]
102 }
103 return $outlist
104 }
105  
106 set nums1 [scramble [array names boundarynum]]
107 set nums2 [scramble [array names boundarynum]]
108  
109 set tname boundary4
110 puts "do_test $tname-1.1 \173"
111 puts " db eval \173"
112 puts " CREATE TABLE t1(a,x);"
113 set a 0
114 set all_rowid {}
115 set all_a {}
116 set all_x {}
117 foreach r $nums1 {
118 incr a
119 set t1ra($r) $a
120 set t1ar($a) $r
121 set x [format %08x%08x [expr {wide($r)>>32}] $r]
122 set t1rx($r) $x
123 set t1xr($x) $r
124 puts " INSERT INTO t1(oid,a,x) VALUES($r,$a,'$x');"
125 lappend all_rowid $r
126 lappend all_a $a
127 lappend all_x $x
128 }
129 puts " CREATE INDEX t1i1 ON t1(a);"
130 puts " CREATE INDEX t1i2 ON t1(x);"
131 puts " \175"
132 puts "\175 {}"
133  
134 puts "do_test $tname-1.2 \173"
135 puts " db eval \173"
136 puts " SELECT count(*) FROM t1"
137 puts " \175"
138 puts "\175 {[llength $nums1]}"
139  
140 proc maketest {tnum sql answer} {
141 puts "do_test $::tname-$tnum \173"
142 puts " db eval \173"
143 puts " $sql"
144 puts " \175"
145 puts "\175 {$answer}"
146 }
147  
148 set ans {}
149 foreach r [sort $all_rowid] {
150 lappend ans $r $t1ra($r) $t1rx($r)
151 }
152 maketest 1.3 {SELECT rowid, a, x FROM t1 ORDER BY +rowid} $ans
153 maketest 1.4 {SELECT rowid, a, x FROM t1 ORDER BY rowid} $ans
154  
155 set ans {}
156 foreach r [reverse [sort $all_rowid]] {
157 lappend ans $r $t1ra($r) $t1rx($r)
158 }
159 maketest 1.5 {SELECT rowid, a, x FROM t1 ORDER BY +rowid DESC} $ans
160 maketest 1.6 {SELECT rowid, a, x FROM t1 ORDER BY rowid DESC} $ans
161  
162 set ans {}
163 foreach a [sort $all_a] {
164 set r $t1ar($a)
165 lappend ans $r $a $t1rx($r)
166 }
167 maketest 1.7 {SELECT rowid, a, x FROM t1 ORDER BY +a} $ans
168 maketest 1.8 {SELECT rowid, a, x FROM t1 ORDER BY a} $ans
169  
170 set ans {}
171 foreach a [reverse [sort $all_a]] {
172 set r $t1ar($a)
173 lappend ans $r $a $t1rx($r)
174 }
175 maketest 1.9 {SELECT rowid, a, x FROM t1 ORDER BY +a DESC} $ans
176 maketest 1.10 {SELECT rowid, a, x FROM t1 ORDER BY a DESC} $ans
177  
178 set ans {}
179 foreach x [sort $all_x] {
180 set r $t1xr($x)
181 lappend ans $r $t1ra($r) $x
182 }
183 maketest 1.11 {SELECT rowid, a, x FROM t1 ORDER BY +x} $ans
184 maketest 1.12 {SELECT rowid, a, x FROM t1 ORDER BY x} $ans
185  
186 set ans {}
187 foreach x [reverse [sort $all_x]] {
188 set r $t1xr($x)
189 lappend ans $r $t1ra($r) $x
190 }
191 maketest 1.13 {SELECT rowid, a, x FROM t1 ORDER BY +x DESC} $ans
192 maketest 1.14 {SELECT rowid, a, x FROM t1 ORDER BY x DESC} $ans
193  
194 maketest 2.1 {UPDATE t1 SET rowid=a, a=rowid} {}
195  
196 set ans {}
197 foreach r [sort $all_rowid] {
198 lappend ans $r $t1ra($r) $t1rx($r)
199 }
200 maketest 2.3 {SELECT a, rowid, x FROM t1 ORDER BY +a} $ans
201 maketest 2.4 {SELECT a, rowid, x FROM t1 ORDER BY a} $ans
202  
203 set ans {}
204 foreach r [reverse [sort $all_rowid]] {
205 lappend ans $r $t1ra($r) $t1rx($r)
206 }
207 maketest 2.5 {SELECT a, rowid, x FROM t1 ORDER BY +a DESC} $ans
208 maketest 2.6 {SELECT a, rowid, x FROM t1 ORDER BY a DESC} $ans
209  
210 set ans {}
211 foreach a [sort $all_a] {
212 set r $t1ar($a)
213 lappend ans $r $a $t1rx($r)
214 }
215 maketest 2.7 {SELECT a, rowid, x FROM t1 ORDER BY +rowid} $ans
216 maketest 2.8 {SELECT a, rowid, x FROM t1 ORDER BY rowid} $ans
217  
218 set ans {}
219 foreach a [reverse [sort $all_a]] {
220 set r $t1ar($a)
221 lappend ans $r $a $t1rx($r)
222 }
223 maketest 2.9 {SELECT a, rowid, x FROM t1 ORDER BY +rowid DESC} $ans
224 maketest 2.10 {SELECT a, rowid, x FROM t1 ORDER BY rowid DESC} $ans
225  
226 set ans {}
227 foreach x [sort $all_x] {
228 set r $t1xr($x)
229 lappend ans $r $t1ra($r) $x
230 }
231 maketest 2.11 {SELECT a, rowid, x FROM t1 ORDER BY +x} $ans
232 maketest 2.12 {SELECT a, rowid, x FROM t1 ORDER BY x} $ans
233  
234 set ans {}
235 foreach x [reverse [sort $all_x]] {
236 set r $t1xr($x)
237 lappend ans $r $t1ra($r) $x
238 }
239 maketest 2.13 {SELECT a, rowid, x FROM t1 ORDER BY +x DESC} $ans
240 maketest 2.14 {SELECT a, rowid, x FROM t1 ORDER BY x DESC} $ans
241  
242 maketest 3.1 {UPDATE t1 SET rowid=a, a=rowid} {}
243 maketest 3.2 {ALTER TABLE t1 ADD COLUMN z; UPDATE t1 SET z=zeroblob(600)} {}
244  
245 set ans {}
246 foreach r [sort $all_rowid] {
247 lappend ans $r $t1ra($r) $t1rx($r)
248 }
249 maketest 3.3 {SELECT rowid, a, x FROM t1 ORDER BY +rowid} $ans
250 maketest 3.4 {SELECT rowid, a, x FROM t1 ORDER BY rowid} $ans
251  
252 set ans {}
253 foreach r [reverse [sort $all_rowid]] {
254 lappend ans $r $t1ra($r) $t1rx($r)
255 }
256 maketest 3.5 {SELECT rowid, a, x FROM t1 ORDER BY +rowid DESC} $ans
257 maketest 3.6 {SELECT rowid, a, x FROM t1 ORDER BY rowid DESC} $ans
258  
259 set ans {}
260 foreach a [sort $all_a] {
261 set r $t1ar($a)
262 lappend ans $r $a $t1rx($r)
263 }
264 maketest 3.7 {SELECT rowid, a, x FROM t1 ORDER BY +a} $ans
265 maketest 3.8 {SELECT rowid, a, x FROM t1 ORDER BY a} $ans
266  
267 set ans {}
268 foreach a [reverse [sort $all_a]] {
269 set r $t1ar($a)
270 lappend ans $r $a $t1rx($r)
271 }
272 maketest 3.9 {SELECT rowid, a, x FROM t1 ORDER BY +a DESC} $ans
273 maketest 3.10 {SELECT rowid, a, x FROM t1 ORDER BY a DESC} $ans
274  
275 set ans {}
276 foreach x [sort $all_x] {
277 set r $t1xr($x)
278 lappend ans $r $t1ra($r) $x
279 }
280 maketest 3.11 {SELECT rowid, a, x FROM t1 ORDER BY +x} $ans
281 maketest 3.12 {SELECT rowid, a, x FROM t1 ORDER BY x} $ans
282  
283 set ans {}
284 foreach x [reverse [sort $all_x]] {
285 set r $t1xr($x)
286 lappend ans $r $t1ra($r) $x
287 }
288 maketest 3.13 {SELECT rowid, a, x FROM t1 ORDER BY +x DESC} $ans
289 maketest 3.14 {SELECT rowid, a, x FROM t1 ORDER BY x DESC} $ans
290  
291  
292 maketest 4.1 {UPDATE t1 SET rowid=a, a=rowid, x=z, z=x} {}
293  
294 set ans {}
295 foreach r [sort $all_rowid] {
296 lappend ans $r $t1ra($r) $t1rx($r)
297 }
298 maketest 4.3 {SELECT a, rowid, z FROM t1 ORDER BY +a} $ans
299 maketest 4.4 {SELECT a, rowid, z FROM t1 ORDER BY a} $ans
300  
301 set ans {}
302 foreach r [reverse [sort $all_rowid]] {
303 lappend ans $r $t1ra($r) $t1rx($r)
304 }
305 maketest 4.5 {SELECT a, rowid, z FROM t1 ORDER BY +a DESC} $ans
306 maketest 4.6 {SELECT a, rowid, z FROM t1 ORDER BY a DESC} $ans
307  
308 set ans {}
309 foreach a [sort $all_a] {
310 set r $t1ar($a)
311 lappend ans $r $a $t1rx($r)
312 }
313 maketest 4.7 {SELECT a, rowid, z FROM t1 ORDER BY +rowid} $ans
314 maketest 4.8 {SELECT a, rowid, z FROM t1 ORDER BY rowid} $ans
315  
316 set ans {}
317 foreach a [reverse [sort $all_a]] {
318 set r $t1ar($a)
319 lappend ans $r $a $t1rx($r)
320 }
321 maketest 4.9 {SELECT a, rowid, z FROM t1 ORDER BY +rowid DESC} $ans
322 maketest 4.10 {SELECT a, rowid, z FROM t1 ORDER BY rowid DESC} $ans
323  
324 set ans {}
325 foreach x [sort $all_x] {
326 set r $t1xr($x)
327 lappend ans $r $t1ra($r) $x
328 }
329 maketest 4.11 {SELECT a, rowid, z FROM t1 ORDER BY +z} $ans
330 maketest 4.12 {SELECT a, rowid, z FROM t1 ORDER BY z} $ans
331  
332 set ans {}
333 foreach x [reverse [sort $all_x]] {
334 set r $t1xr($x)
335 lappend ans $r $t1ra($r) $x
336 }
337 maketest 4.13 {SELECT a, rowid, z FROM t1 ORDER BY +z DESC} $ans
338 maketest 4.14 {SELECT a, rowid, z FROM t1 ORDER BY z DESC} $ans
339  
340 puts {finish_test}