PageRenderTime 74ms CodeModel.GetById 39ms app.highlight 2ms RepoModel.GetById 0ms app.codeStats 0ms

/trunk/src/sqlite/test/fts3fault2.test

#
Unknown | 85 lines | 75 code | 10 blank | 0 comment | 0 complexity | f1f3ba860dec29142388ee5e5425a8bf MD5 | raw file
Possible License(s): BSD-3-Clause
 1# 2011 February 3
 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
13set testdir [file dirname $argv0]
14source $testdir/tester.tcl
15set ::testprefix fts3fault2
16
17# If SQLITE_ENABLE_FTS3 is not defined, omit this file.
18ifcapable !fts3 { finish_test ; return }
19
20do_test 1.0 {
21  execsql {
22    CREATE VIRTUAL TABLE t1 USING fts4(x);
23    INSERT INTO t1 VALUES('a b c');
24    INSERT INTO t1 VALUES('c d e');
25    CREATE VIRTUAL TABLE terms USING fts4aux(t1);
26  }
27  faultsim_save_and_close
28} {}
29
30do_faultsim_test 1.1 -prep {
31  faultsim_restore_and_reopen
32  db eval {SELECT * FROM sqlite_master}
33} -body {
34  execsql "CREATE VIRTUAL TABLE terms2 USING fts4aux(t1)"
35} -test {
36  faultsim_test_result {0 {}}
37}
38
39do_faultsim_test 1.2 -prep {
40  faultsim_restore_and_reopen
41  db eval {SELECT * FROM sqlite_master}
42} -body {
43  execsql "SELECT * FROM terms"
44} -test {
45  faultsim_test_result {0 {a * 1 1 a 0 1 1 b * 1 1 b 0 1 1 c * 2 2 c 0 2 2 d * 1 1 d 0 1 1 e * 1 1 e 0 1 1}}
46}
47
48do_faultsim_test 1.3 -prep {
49  faultsim_restore_and_reopen
50  db eval {SELECT * FROM sqlite_master}
51} -body {
52  execsql "SELECT * FROM terms WHERE term>'a' AND TERM < 'd'"
53} -test {
54  faultsim_test_result {0 {b * 1 1 b 0 1 1 c * 2 2 c 0 2 2}}
55}
56
57do_faultsim_test 1.4 -prep {
58  faultsim_restore_and_reopen
59  db eval {SELECT * FROM sqlite_master}
60} -body {
61  execsql "SELECT * FROM terms WHERE term='c'"
62} -test {
63  faultsim_test_result {0 {c * 2 2 c 0 2 2}}
64}
65
66do_test 2.0 {
67  faultsim_delete_and_reopen
68  execsql {
69    CREATE VIRTUAL TABLE tx USING fts4(a, b);
70    INSERT INTO tx VALUES('a b c', 'x y z');
71    CREATE VIRTUAL TABLE terms2 USING fts4aux(tx);
72  }
73  faultsim_save_and_close
74} {}
75
76do_faultsim_test 2.1 -prep {
77  faultsim_restore_and_reopen
78  db eval {SELECT * FROM sqlite_master}
79} -body {
80  execsql "SELECT * FROM terms2"
81} -test {
82  faultsim_test_result {0 {a * 1 1 a 0 1 1 b * 1 1 b 0 1 1 c * 1 1 c 0 1 1 x * 1 1 x 1 1 1 y * 1 1 y 1 1 1 z * 1 1 z 1 1 1}}
83}
84
85finish_test