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

Side by Side Diff: third_party/sqlite/sqlite-src-3070603/ext/rtree/rtree2.test

Issue 949043002: Add //third_party/sqlite to dirs_to_snapshot, remove net_sql.patch (Closed) Base URL: git@github.com:domokit/mojo.git@master
Patch Set: Created 5 years, 9 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
(Empty)
1 # 2008 Feb 19
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 # The focus of this file is testing the r-tree extension.
13 #
14
15 if {![info exists testdir]} {
16 set testdir [file join [file dirname [info script]] .. .. test]
17 }
18 source [file join [file dirname [info script]] rtree_util.tcl]
19 source $testdir/tester.tcl
20
21 ifcapable !rtree {
22 finish_test
23 return
24 }
25
26 set ::NROW 1000
27 set ::NDEL 10
28 set ::NSELECT 100
29
30 if {[info exists G(isquick)] && $G(isquick)} {
31 set ::NROW 100
32 set ::NSELECT 10
33 }
34
35 foreach module {rtree_i32 rtree} {
36 for {set nDim 1} {$nDim <= 5} {incr nDim} {
37
38 do_test rtree2-$module.$nDim.1 {
39 set cols [list]
40 foreach c [list c0 c1 c2 c3 c4 c5 c6 c7 c8 c9] {
41 lappend cols "$c REAL"
42 }
43 set cols [join [lrange $cols 0 [expr {$nDim*2-1}]] ", "]
44 execsql "
45 CREATE VIRTUAL TABLE t1 USING ${module}(ii, $cols);
46 CREATE TABLE t2 (ii, $cols);
47 "
48 } {}
49
50 do_test rtree2-$module.$nDim.2 {
51 db transaction {
52 for {set ii 0} {$ii < $::NROW} {incr ii} {
53 #puts "Row $ii"
54 set values [list]
55 for {set jj 0} {$jj<$nDim*2} {incr jj} {
56 lappend values [expr int(rand()*1000)]
57 }
58 set values [join $values ,]
59 #puts [rtree_treedump db t1]
60 #puts "INSERT INTO t2 VALUES($ii, $values)"
61 set rc [catch {db eval "INSERT INTO t1 VALUES($ii, $values)"}]
62 if {$rc} {
63 incr ii -1
64 } else {
65 db eval "INSERT INTO t2 VALUES($ii, $values)"
66 }
67 #if {[rtree_check db t1]} {
68 #puts [rtree_treedump db t1]
69 #exit
70 #}
71 }
72 }
73
74 set t1 [execsql {SELECT * FROM t1 ORDER BY ii}]
75 set t2 [execsql {SELECT * FROM t2 ORDER BY ii}]
76 set rc [expr {$t1 eq $t2}]
77 if {$rc != 1} {
78 puts $t1
79 puts $t2
80 }
81 set rc
82 } {1}
83
84 do_test rtree2-$module.$nDim.3 {
85 rtree_check db t1
86 } 0
87
88 set OPS [list < > <= >= =]
89 for {set ii 0} {$ii < $::NSELECT} {incr ii} {
90 do_test rtree2-$module.$nDim.4.$ii.1 {
91 set where [list]
92 foreach look_three_dots! {. . .} {
93 set colidx [expr int(rand()*($nDim*2+1))-1]
94 if {$colidx<0} {
95 set col ii
96 } else {
97 set col "c$colidx"
98 }
99 set op [lindex $OPS [expr int(rand()*[llength $OPS])]]
100 set val [expr int(rand()*1000)]
101 lappend where "$col $op $val"
102 }
103 set where [join $where " AND "]
104
105 set t1 [execsql "SELECT * FROM t1 WHERE $where ORDER BY ii"]
106 set t2 [execsql "SELECT * FROM t2 WHERE $where ORDER BY ii"]
107 set rc [expr {$t1 eq $t2}]
108 if {$rc != 1} {
109 #puts $where
110 puts $t1
111 puts $t2
112 #puts [rtree_treedump db t1]
113 #breakpoint
114 #set t1 [execsql "SELECT * FROM t1 WHERE $where ORDER BY ii"]
115 #exit
116 }
117 set rc
118 } {1}
119 }
120
121 for {set ii 0} {$ii < $::NROW} {incr ii $::NDEL} {
122 #puts [rtree_treedump db t1]
123 do_test rtree2-$module.$nDim.5.$ii.1 {
124 execsql "DELETE FROM t2 WHERE ii <= $::ii"
125 execsql "DELETE FROM t1 WHERE ii <= $::ii"
126
127 set t1 [execsql {SELECT * FROM t1 ORDER BY ii}]
128 set t2 [execsql {SELECT * FROM t2 ORDER BY ii}]
129 set rc [expr {$t1 eq $t2}]
130 if {$rc != 1} {
131 puts $t1
132 puts $t2
133 }
134 set rc
135 } {1}
136 do_test rtree2-$module.$nDim.5.$ii.2 {
137 rtree_check db t1
138 } {0}
139 }
140
141 do_test rtree2-$module.$nDim.6 {
142 execsql {
143 DROP TABLE t1;
144 DROP TABLE t2;
145 }
146 } {}
147 }
148 }
149
150 finish_test
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698