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

Side by Side Diff: third_party/sqlite/test/capi3d.test

Issue 3108030: Move bundled copy of sqlite one level deeper to better separate it... (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src/
Patch Set: Created 10 years, 4 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/test/capi3c.test ('k') | third_party/sqlite/test/cast.test » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
(Empty)
1 # 2008 June 18
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 devoted to testing the sqlite3_next_stmt interface.
14 #
15 # $Id: capi3d.test,v 1.2 2008/07/14 15:11:20 drh Exp $
16 #
17
18 set testdir [file dirname $argv0]
19 source $testdir/tester.tcl
20
21 # Create N prepared statements against database connection db
22 # and return a list of all the generated prepared statements.
23 #
24 proc make_prepared_statements {N} {
25 set plist {}
26 for {set i 0} {$i<$N} {incr i} {
27 set sql "SELECT $i FROM sqlite_master WHERE name LIKE '%$i%'"
28 if {rand()<0.33} {
29 set s [sqlite3_prepare_v2 db $sql -1 notused]
30 } else {
31 ifcapable utf16 {
32 if {rand()<0.5} {
33 set sql [encoding convertto unicode $sql]\x00\x00
34 set s [sqlite3_prepare16 db $sql -1 notused]
35 } else {
36 set s [sqlite3_prepare db $sql -1 notused]
37 }
38 }
39 ifcapable !utf16 {
40 set s [sqlite3_prepare db $sql -1 notused]
41 }
42 }
43 lappend plist $s
44 }
45 return $plist
46 }
47
48
49 # Scramble the $inlist into a random order.
50 #
51 proc scramble {inlist} {
52 set y {}
53 foreach x $inlist {
54 lappend y [list [expr {rand()}] $x]
55 }
56 set y [lsort $y]
57 set outlist {}
58 foreach x $y {
59 lappend outlist [lindex $x 1]
60 }
61 return $outlist
62 }
63
64 # Database initially has no prepared statements.
65 #
66 do_test capi3d-1.1 {
67 db cache flush
68 sqlite3_next_stmt db 0
69 } {}
70
71 # Run the following tests for between 1 and 100 prepared statements.
72 #
73 for {set i 1} {$i<=100} {incr i} {
74 set stmtlist [make_prepared_statements $i]
75 do_test capi3d-1.2.$i.1 {
76 set p [sqlite3_next_stmt db 0]
77 set x {}
78 while {$p!=""} {
79 lappend x $p
80 set p [sqlite3_next_stmt db $p]
81 }
82 lsort $x
83 } [lsort $stmtlist]
84 do_test capi3-1.2.$i.2 {
85 foreach p [scramble $::stmtlist] {
86 sqlite3_finalize $p
87 }
88 sqlite3_next_stmt db 0
89 } {}
90 }
91
92
93 finish_test
OLDNEW
« no previous file with comments | « third_party/sqlite/test/capi3c.test ('k') | third_party/sqlite/test/cast.test » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698