wasCSharpSQLite – Blame information for rev 7
?pathlinks?
Rev | Author | Line No. | Line |
---|---|---|---|
1 | office | 1 | # 2009 April 17 |
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 | # This file implements regression tests for SQLite library. The |
||
13 | # focus of this file is the code in rowhash.c. |
||
14 | # |
||
15 | # NB: The rowhash.c module is no longer part of the source tree. But |
||
16 | # we might as well keep this test. |
||
17 | # |
||
18 | |||
19 | set testdir [file dirname $argv0] |
||
20 | source $testdir/tester.tcl |
||
21 | |||
22 | do_test rowhash-1.1 { |
||
23 | execsql { |
||
24 | CREATE TABLE t1(id INTEGER PRIMARY KEY, a, b, c); |
||
25 | CREATE INDEX i1 ON t1(a); |
||
26 | CREATE INDEX i2 ON t1(b); |
||
27 | CREATE INDEX i3 ON t1(c); |
||
28 | } |
||
29 | } {} |
||
30 | |||
31 | proc do_keyset_test {name lKey} { |
||
32 | db transaction { |
||
33 | execsql { DELETE FROM t1 } |
||
34 | foreach key $lKey { |
||
35 | execsql { INSERT OR IGNORE INTO t1 VALUES($key, 'a', 'b', 'c') } |
||
36 | } |
||
37 | } |
||
38 | do_test $name { |
||
39 | lsort -integer [execsql { |
||
40 | SELECT id FROM t1 WHERE a = 'a' OR b = 'b' OR c = 'c'; |
||
41 | }] |
||
42 | } [lsort -integer -unique $lKey] |
||
43 | } |
||
44 | |||
45 | do_keyset_test rowhash-2.1 {1 2 3} |
||
46 | do_keyset_test rowhash-2.2 {0 1 2 3} |
||
47 | do_keyset_test rowhash-2.3 {62 125 188} |
||
48 | if {[working_64bit_int]} { |
||
49 | expr srand(1) |
||
50 | unset -nocomplain i L |
||
51 | for {set i 4} {$i < 10} {incr i} { |
||
52 | for {set j 0} {$j < 5000} {incr j} { |
||
53 | lappend L [expr int(rand()*1000000000)] |
||
54 | } |
||
55 | do_keyset_test rowhash-2.$i $L |
||
56 | } |
||
57 | } |
||
58 | |||
59 | finish_test |