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

Side by Side Diff: third_party/sqlite/src/ext/session/session6.test

Issue 2751253002: [sql] Import SQLite 3.17.0. (Closed)
Patch Set: also clang on Linux i386 Created 3 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 # 2011 July 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 sessions extension.
12 # Specifically, it tests that sessions work when the database is modified
13 # using incremental blob handles.
14 #
15
16 if {![info exists testdir]} {
17 set testdir [file join [file dirname [info script]] .. .. test]
18 }
19 source [file join [file dirname [info script]] session_common.tcl]
20 source $testdir/tester.tcl
21 ifcapable !session {finish_test; return}
22
23 set testprefix session6
24
25 proc do_then_apply_tcl {tcl {dbname main}} {
26 proc xConflict args { return "OMIT" }
27 set rc [catch {
28 sqlite3session S db $dbname
29 db eval "SELECT name FROM $dbname.sqlite_master WHERE type = 'table'" {
30 S attach $name
31 }
32 eval $tcl
33 sqlite3changeset_apply db2 [S changeset] xConflict
34 } msg]
35
36 catch { S delete }
37 if {$rc} {error $msg}
38 }
39
40 test_sqlite3_log x
41 proc x {args} {puts $args}
42
43 forcedelete test.db2
44 sqlite3 db2 test.db2
45
46 do_common_sql {
47 CREATE TABLE t1(a PRIMARY KEY, b);
48 CREATE TABLE t2(c PRIMARY KEY, d);
49 }
50
51 # Test a blob update.
52 #
53 do_test 1.1 {
54 do_then_apply_tcl {
55 db eval { INSERT INTO t1 VALUES(1, 'helloworld') }
56 db eval { INSERT INTO t2 VALUES(2, 'onetwothree') }
57 }
58 compare_db db db2
59 } {}
60 do_test 1.2 {
61 do_then_apply_tcl {
62 set fd [db incrblob t1 b 1]
63 puts -nonewline $fd 1234567890
64 close $fd
65 }
66 compare_db db db2
67 } {}
68
69 # Test an attached database.
70 #
71 do_test 2.1 {
72 forcedelete test.db3
73 file copy test.db2 test.db3
74 execsql { ATTACH 'test.db3' AS aux; }
75
76 do_then_apply_tcl {
77 set fd [db incrblob aux t2 d 1]
78 puts -nonewline $fd fourfivesix
79 close $fd
80 } aux
81
82 sqlite3 db3 test.db3
83 compare_db db2 db3
84 } {}
85
86
87 db3 close
88 db2 close
89
90 finish_test
OLDNEW
« no previous file with comments | « third_party/sqlite/src/ext/session/session5.test ('k') | third_party/sqlite/src/ext/session/session8.test » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698