Annotation of embedaddon/sqlite3/test/fts3fault2.test, revision 1.1
1.1 ! misho 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:
! 13: set testdir [file dirname $argv0]
! 14: source $testdir/tester.tcl
! 15: set ::testprefix fts3fault2
! 16:
! 17: # If SQLITE_ENABLE_FTS3 is not defined, omit this file.
! 18: ifcapable !fts3 { finish_test ; return }
! 19:
! 20: do_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:
! 30: do_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:
! 39: do_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:
! 48: do_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:
! 57: do_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:
! 66: do_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:
! 76: do_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:
! 85: do_faultsim_test 3.0 -faults oom* -prep {
! 86: faultsim_delete_and_reopen
! 87: db eval { CREATE TABLE 'xx yy'(a, b); }
! 88: } -body {
! 89: execsql {
! 90: CREATE VIRTUAL TABLE tt USING fts4(content="xx yy");
! 91: }
! 92: } -test {
! 93: faultsim_test_result {0 {}}
! 94: }
! 95:
! 96: do_faultsim_test 3.1 -faults oom* -prep {
! 97: faultsim_delete_and_reopen
! 98: db func zip zip
! 99: db func unzip unzip
! 100: } -body {
! 101: execsql {
! 102: CREATE VIRTUAL TABLE tt USING fts4(compress=zip, uncompress=unzip);
! 103: }
! 104: } -test {
! 105: faultsim_test_result {0 {}}
! 106: }
! 107:
! 108: do_test 4.0 {
! 109: faultsim_delete_and_reopen
! 110: execsql {
! 111: CREATE VIRTUAL TABLE ft USING fts4(a, b);
! 112: INSERT INTO ft VALUES('U U T C O', 'F N D E S');
! 113: INSERT INTO ft VALUES('P H X G B', 'I D M R U');
! 114: INSERT INTO ft VALUES('P P X D M', 'Y V N T C');
! 115: INSERT INTO ft VALUES('Z L Q O W', 'D F U N Q');
! 116: INSERT INTO ft VALUES('A J D U P', 'C H M Q E');
! 117: INSERT INTO ft VALUES('P S A O H', 'S Z C W D');
! 118: INSERT INTO ft VALUES('T B N L W', 'C A K T I');
! 119: INSERT INTO ft VALUES('K E Z L O', 'L L Y C E');
! 120: INSERT INTO ft VALUES('C R E S V', 'Q V F W P');
! 121: INSERT INTO ft VALUES('S K H G W', 'R W Q F G');
! 122: }
! 123: faultsim_save_and_close
! 124: } {}
! 125: do_faultsim_test 4.1 -prep {
! 126: faultsim_restore_and_reopen
! 127: db eval {SELECT * FROM sqlite_master}
! 128: } -body {
! 129: execsql { INSERT INTO ft(ft) VALUES('rebuild') }
! 130: } -test {
! 131: faultsim_test_result {0 {}}
! 132: }
! 133:
! 134: finish_test
FreeBSD-CVSweb <freebsd-cvsweb@FreeBSD.org>