File:  [ELWIX - Embedded LightWeight unIX -] / embedaddon / sqlite3 / test / fts3fault2.test
Revision 1.1.1.1 (vendor branch): download - view: text, annotated - select for diffs - revision graph
Tue Feb 21 17:04:16 2012 UTC (12 years, 4 months ago) by misho
Branches: sqlite3, MAIN
CVS tags: v3_7_10, HEAD
sqlite3

    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>