/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
- # 2011 February 3
- #
- # The author disclaims copyright to this source code. In place of
- # a legal notice, here is a blessing:
- #
- # May you do good and not evil.
- # May you find forgiveness for yourself and forgive others.
- # May you share freely, never taking more than you give.
- #
- #***********************************************************************
- #
- set testdir [file dirname $argv0]
- source $testdir/tester.tcl
- set ::testprefix fts3fault2
- # If SQLITE_ENABLE_FTS3 is not defined, omit this file.
- ifcapable !fts3 { finish_test ; return }
- do_test 1.0 {
- execsql {
- CREATE VIRTUAL TABLE t1 USING fts4(x);
- INSERT INTO t1 VALUES('a b c');
- INSERT INTO t1 VALUES('c d e');
- CREATE VIRTUAL TABLE terms USING fts4aux(t1);
- }
- faultsim_save_and_close
- } {}
- do_faultsim_test 1.1 -prep {
- faultsim_restore_and_reopen
- db eval {SELECT * FROM sqlite_master}
- } -body {
- execsql "CREATE VIRTUAL TABLE terms2 USING fts4aux(t1)"
- } -test {
- faultsim_test_result {0 {}}
- }
- do_faultsim_test 1.2 -prep {
- faultsim_restore_and_reopen
- db eval {SELECT * FROM sqlite_master}
- } -body {
- execsql "SELECT * FROM terms"
- } -test {
- 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}}
- }
- do_faultsim_test 1.3 -prep {
- faultsim_restore_and_reopen
- db eval {SELECT * FROM sqlite_master}
- } -body {
- execsql "SELECT * FROM terms WHERE term>'a' AND TERM < 'd'"
- } -test {
- faultsim_test_result {0 {b * 1 1 b 0 1 1 c * 2 2 c 0 2 2}}
- }
- do_faultsim_test 1.4 -prep {
- faultsim_restore_and_reopen
- db eval {SELECT * FROM sqlite_master}
- } -body {
- execsql "SELECT * FROM terms WHERE term='c'"
- } -test {
- faultsim_test_result {0 {c * 2 2 c 0 2 2}}
- }
- do_test 2.0 {
- faultsim_delete_and_reopen
- execsql {
- CREATE VIRTUAL TABLE tx USING fts4(a, b);
- INSERT INTO tx VALUES('a b c', 'x y z');
- CREATE VIRTUAL TABLE terms2 USING fts4aux(tx);
- }
- faultsim_save_and_close
- } {}
- do_faultsim_test 2.1 -prep {
- faultsim_restore_and_reopen
- db eval {SELECT * FROM sqlite_master}
- } -body {
- execsql "SELECT * FROM terms2"
- } -test {
- 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}}
- }
- finish_test