| Index: third_party/sqlite/src/ext/fts5/test/fts5determin.test
|
| diff --git a/third_party/sqlite/src/ext/fts5/test/fts5determin.test b/third_party/sqlite/src/ext/fts5/test/fts5determin.test
|
| new file mode 100644
|
| index 0000000000000000000000000000000000000000..e368c4704e7b026f6c89bcdc8cbc59d96bf9f091
|
| --- /dev/null
|
| +++ b/third_party/sqlite/src/ext/fts5/test/fts5determin.test
|
| @@ -0,0 +1,67 @@
|
| +# 2016 March 21
|
| +#
|
| +# 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.
|
| +#
|
| +#*************************************************************************
|
| +# This file implements regression tests for SQLite library. The
|
| +# focus of this script is testing the FTS5 module.
|
| +#
|
| +# Specifically, that the fts5 module is deterministic. At one point, when
|
| +# segment ids were allocated using sqlite3_randomness(), this was not the
|
| +# case.
|
| +#
|
| +
|
| +source [file join [file dirname [info script]] fts5_common.tcl]
|
| +set testprefix fts5aa
|
| +return_if_no_fts5
|
| +
|
| +proc do_determin_test {tn} {
|
| + uplevel [list
|
| + do_execsql_test $tn {
|
| + SELECT (SELECT md5sum(id, block) FROM t1_data)==
|
| + (SELECT md5sum(id, block) FROM t2_data),
|
| + (SELECT md5sum(id, block) FROM t1_data)==
|
| + (SELECT md5sum(id, block) FROM t3_data)
|
| + } {1 1}
|
| + ]
|
| +}
|
| +
|
| +foreach_detail_mode $::testprefix {
|
| + do_execsql_test 1.0 {
|
| + CREATE VIRTUAL TABLE t1 USING fts5(a, b, prefix="1 2", detail=%DETAIL%);
|
| + CREATE VIRTUAL TABLE t2 USING fts5(a, b, prefix="1 2", detail=%DETAIL%);
|
| + CREATE VIRTUAL TABLE t3 USING fts5(a, b, prefix="1 2", detail=%DETAIL%);
|
| + }
|
| +
|
| + do_test 1.1 {
|
| + foreach t {t1 t2 t3} {
|
| + execsql [string map [list TBL $t] {
|
| + INSERT INTO TBL VALUES('a b c', 'd e f');
|
| + INSERT INTO TBL VALUES('c1 c2 c3', 'c1 c2 c3');
|
| + INSERT INTO TBL VALUES('xyzxyzxyz', 'xyzxyzxyz');
|
| + }]
|
| + }
|
| + } {}
|
| +
|
| + do_determin_test 1.2
|
| +
|
| + do_test 1.3 {
|
| + foreach t {t1 t2 t3} {
|
| + execsql [string map [list TBL $t] {
|
| + INSERT INTO TBL(TBL) VALUES('optimize');
|
| + }]
|
| + }
|
| + } {}
|
| +
|
| + do_determin_test 1.4
|
| +}
|
| +
|
| +
|
| +finish_test
|
| +
|
| +
|
|
|