Many hyperlinks are disabled.
Use anonymous login
to enable hyperlinks.
Overview
Comment: | Add extra tests to cover untested branches in fts5. |
---|---|
Downloads: | Tarball | ZIP archive |
Timelines: | family | ancestors | descendants | both | trunk |
Files: | files | file ages | folders |
SHA1: |
61deab043dcea860070dba6b02601a7d |
User & Date: | dan 2016-01-16 21:06:41.650 |
Context
2016-01-18
| ||
00:20 | Fix a problem with SQLITE_TEST_REALLOC_STRESS. (check-in: 0aaf3febb0 user: drh tags: trunk) | |
2016-01-16
| ||
21:06 | Add extra tests to cover untested branches in fts5. (check-in: 61deab043d user: dan tags: trunk) | |
20:50 | Improvements to the way sqlite3VdbeAddOpList() works, resulting in a slightly smaller and faster binary. (check-in: 88ceb588bc user: drh tags: trunk) | |
Changes
Changes to ext/fts5/test/fts5fault9.test.
︙ | ︙ | |||
22 23 24 25 26 27 28 | return } foreach_detail_mode $testprefix { fts5_aux_test_functions db | < < | 22 23 24 25 26 27 28 29 30 31 32 33 34 35 | return } foreach_detail_mode $testprefix { fts5_aux_test_functions db do_execsql_test 1.0 { CREATE VIRTUAL TABLE t1 USING fts5(a, b, detail=%DETAIL%); INSERT INTO t1(t1, rank) VALUES('pgsz', 32); WITH seq(s) AS ( SELECT 1 UNION ALL SELECT s+1 FROM seq WHERE s<50) INSERT INTO t1 SELECT 'x x x y y y', 'a b c d e f' FROM seq; } |
︙ | ︙ | |||
106 107 108 109 110 111 112 | do_faultsim_test 4.2 -faults oom-t* -body { execsql { SELECT rowid, fts5_test_collist(t4) FROM t4('a5 OR b5 OR c5') } } -test { faultsim_test_result \ {0 {4 {0.0 0.1 0.2} 5 {1.0 1.1 1.2} 6 {2.0 2.1 2.2}}} {1 SQLITE_NOMEM} } | < < | 104 105 106 107 108 109 110 111 112 113 114 115 116 117 | do_faultsim_test 4.2 -faults oom-t* -body { execsql { SELECT rowid, fts5_test_collist(t4) FROM t4('a5 OR b5 OR c5') } } -test { faultsim_test_result \ {0 {4 {0.0 0.1 0.2} 5 {1.0 1.1 1.2} 6 {2.0 2.1 2.2}}} {1 SQLITE_NOMEM} } #------------------------------------------------------------------------- # An OOM within an "ORDER BY rank" query. # db func rnddoc fts5_rnddoc do_execsql_test 5.0 { CREATE VIRTUAL TABLE xx USING fts5(x, y, detail=%DETAIL%); |
︙ | ︙ | |||
129 130 131 132 133 134 135 136 137 138 139 140 | faultsim_restore_and_reopen execsql { SELECT * FROM xx } } -body { execsql { SELECT rowid FROM xx('abc AND def') ORDER BY rank } } -test { faultsim_test_result [list 0 {3 2 1}] } } ;# foreach_detail_mode... finish_test | > > > > > > > > > > > > > > > > > > > > | 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 | faultsim_restore_and_reopen execsql { SELECT * FROM xx } } -body { execsql { SELECT rowid FROM xx('abc AND def') ORDER BY rank } } -test { faultsim_test_result [list 0 {3 2 1}] } set doc [string repeat "xyz " 500] do_execsql_test 6.0 { CREATE VIRTUAL TABLE yy USING fts5(y, detail=%DETAIL%); INSERT INTO yy(yy, rank) VALUES('pgsz', 64); INSERT INTO yy VALUES ($doc); INSERT INTO yy VALUES ('1 2 3'); INSERT INTO yy VALUES ('xyz'); UPDATE yy SET y = y WHERE rowid = 1; UPDATE yy SET y = y WHERE rowid = 1; UPDATE yy SET y = y WHERE rowid = 1; UPDATE yy SET y = y WHERE rowid = 1; } {} do_faultsim_test 6 -faults oom-* -body { execsql { SELECT rowid FROM yy('xyz') } } -test { faultsim_test_result [list 0 {1 3}] } } ;# foreach_detail_mode... finish_test |
Changes to ext/fts5/test/fts5rowid.test.
︙ | ︙ | |||
59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 | do_execsql_test 2.2 { WITH r(a, b) AS ( SELECT rnddoc(6), rnddoc(6) UNION ALL SELECT rnddoc(6), rnddoc(6) FROM r ) INSERT INTO x1 SELECT * FROM r LIMIT 10000; } set res [db one {SELECT count(*) FROM x1_data}] do_execsql_test 2.3 { SELECT count(fts5_decode(rowid, block)) FROM x1_data; } $res do_execsql_test 2.4 { UPDATE x1_data SET block = X''; | > | < | 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 | do_execsql_test 2.2 { WITH r(a, b) AS ( SELECT rnddoc(6), rnddoc(6) UNION ALL SELECT rnddoc(6), rnddoc(6) FROM r ) INSERT INTO x1 SELECT * FROM r LIMIT 10000; DELETE FROM x1 WHERE (rowid%2); } set res [db one {SELECT count(*) FROM x1_data}] do_execsql_test 2.3 { SELECT count(fts5_decode(rowid, block)) FROM x1_data; } $res do_execsql_test 2.4 { UPDATE x1_data SET block = X''; SELECT count(fts5_decode(rowid, block)) FROM x1_data; } $res do_execsql_test 2.5 { INSERT INTO x1(x1, rank) VALUES('pgsz', 1024); INSERT INTO x1(x1) VALUES('rebuild'); } |
︙ | ︙ |
Changes to ext/fts5/test/fts5update.test.
︙ | ︙ | |||
82 83 84 85 86 87 88 89 90 91 92 93 | do_test 1.4 { execsql { INSERT INTO t1(t1, rank) VALUES('pgsz', 32) } for {set i 0} {$i < 50} {incr i} { execsql { UPDATE t1 SET a=a AND b=b } execsql { INSERT INTO t1(t1) VALUES('integrity-check') } } } {} } finish_test | > > > > > > > > > > > > > > > > > > > > > > > > > > > > | 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 | do_test 1.4 { execsql { INSERT INTO t1(t1, rank) VALUES('pgsz', 32) } for {set i 0} {$i < 50} {incr i} { execsql { UPDATE t1 SET a=a AND b=b } execsql { INSERT INTO t1(t1) VALUES('integrity-check') } } } {} #------------------------------------------------------------------------- # Lots of deletes/inserts of the same document with the same rowid. # do_execsql_test 2.0 { CREATE VIRTUAL TABLE x2 USING fts5(x, detail=%DETAIL%); INSERT INTO x2(x2, rank) VALUES('crisismerge', 2); INSERT INTO x2 VALUES('a b c'); INSERT INTO x2 VALUES('a b c'); } do_test 2.1 { for {set i 0} {$i < 1000} {incr i} { execsql { DELETE FROM x2 WHERE rowid = 2 } execsql { INSERT INTO x2(rowid, x) VALUES(2, 'a b c') } } } {} do_execsql_test 2.1.integrity { INSERT INTO x2(x2) VALUES('integrity-check'); } do_test 2.2 { for {set i 0} {$i < 1000} {incr i} { execsql { UPDATE x2 SET x=x WHERE rowid=2 } } } {} do_execsql_test 2.2.integrity { INSERT INTO x2(x2) VALUES('integrity-check'); } } finish_test |
Changes to main.mk.
︙ | ︙ | |||
330 331 332 333 334 335 336 | $(TOP)/ext/misc/series.c \ $(TOP)/ext/misc/spellfix.c \ $(TOP)/ext/misc/totype.c \ $(TOP)/ext/misc/wholenumber.c \ $(TOP)/ext/misc/vfslog.c \ $(TOP)/ext/fts5/fts5_tcl.c \ $(TOP)/ext/fts5/fts5_test_mi.c \ | | < | 330 331 332 333 334 335 336 337 338 339 340 341 342 343 344 | $(TOP)/ext/misc/series.c \ $(TOP)/ext/misc/spellfix.c \ $(TOP)/ext/misc/totype.c \ $(TOP)/ext/misc/wholenumber.c \ $(TOP)/ext/misc/vfslog.c \ $(TOP)/ext/fts5/fts5_tcl.c \ $(TOP)/ext/fts5/fts5_test_mi.c \ $(TOP)/ext/fts5/fts5_test_tok.c #TESTSRC += $(TOP)/ext/fts2/fts2_tokenizer.c #TESTSRC += $(TOP)/ext/fts3/fts3_tokenizer.c TESTSRC2 = \ $(TOP)/src/attach.c \ |
︙ | ︙ |