xref: /sqlite-3.40.0/test/backup5.test (revision fad01993)
1*fad01993Sdan# 2014 November 13
2*fad01993Sdan#
3*fad01993Sdan# The author disclaims copyright to this source code.  In place of
4*fad01993Sdan# a legal notice, here is a blessing:
5*fad01993Sdan#
6*fad01993Sdan#    May you do good and not evil.
7*fad01993Sdan#    May you find forgiveness for yourself and forgive others.
8*fad01993Sdan#    May you share freely, never taking more than you give.
9*fad01993Sdan#
10*fad01993Sdan#***********************************************************************
11*fad01993Sdan#
12*fad01993Sdan
13*fad01993Sdanset testdir [file dirname $argv0]
14*fad01993Sdansource $testdir/tester.tcl
15*fad01993Sdanset testprefix backup5
16*fad01993Sdan
17*fad01993Sdanforcedelete test2.db
18*fad01993Sdan
19*fad01993Sdando_execsql_test 1.0 {
20*fad01993Sdan  CREATE TABLE t1(a, b);
21*fad01993Sdan  CREATE TABLE t2(a, b);
22*fad01993Sdan  INSERT INTO t2 VALUES(1, 1);
23*fad01993Sdan  INSERT INTO t2 VALUES(2, 2);
24*fad01993Sdan  INSERT INTO t2 VALUES(3, 3);
25*fad01993Sdan}
26*fad01993Sdan
27*fad01993Sdando_test 1.1 {
28*fad01993Sdan  forcecopy test.db test.db2
29*fad01993Sdan  db eval {
30*fad01993Sdan    DROP TABLE t2;
31*fad01993Sdan    INSERT INTO t1 VALUES(zeroblob(1000), zeroblob(1000));
32*fad01993Sdan    INSERT INTO t1 VALUES(randomblob(1000), randomblob(1000));
33*fad01993Sdan  }
34*fad01993Sdan} {}
35*fad01993Sdan
36*fad01993Sdando_test 1.2 {
37*fad01993Sdan  sqlite3 db2 test.db2
38*fad01993Sdan  set stmt [sqlite3_prepare_v2 db2 "SELECT * FROM t2" -1 dummy]
39*fad01993Sdan  sqlite3_step $stmt
40*fad01993Sdan} {SQLITE_ROW}
41*fad01993Sdan
42*fad01993Sdando_test 1.3 {
43*fad01993Sdan  list [catch { sqlite3_backup B db2 main db main } msg] $msg
44*fad01993Sdan} {1 {sqlite3_backup_init() failed}}
45*fad01993Sdan
46*fad01993Sdando_test 1.4 {
47*fad01993Sdan  sqlite3_errmsg db2
48*fad01993Sdan} {destination database is in use}
49*fad01993Sdan
50*fad01993Sdando_test 1.5 {
51*fad01993Sdan  sqlite3_reset $stmt
52*fad01993Sdan  sqlite3_backup B db2 main db main
53*fad01993Sdan  B step 200
54*fad01993Sdan  B finish
55*fad01993Sdan} {SQLITE_OK}
56*fad01993Sdan
57*fad01993Sdando_test 1.6 {
58*fad01993Sdan  list [sqlite3_step $stmt] [sqlite3_finalize $stmt]
59*fad01993Sdan} {SQLITE_ERROR SQLITE_ERROR}
60*fad01993Sdan
61*fad01993Sdando_test 1.7 {
62*fad01993Sdan  sqlite3_errmsg db2
63*fad01993Sdan} {no such table: t2}
64*fad01993Sdan
65*fad01993Sdanfinish_test
66