Annotation of embedaddon/sqlite3/test/fts2h.test, revision 1.1.1.1

1.1       misho       1: # 2006 October 31 (scaaarey)
                      2: #
                      3: # The author disclaims copyright to this source code.
                      4: #
                      5: #*************************************************************************
                      6: # This file implements regression tests for SQLite library.  The focus
                      7: # here is testing correct handling of excessively long terms.
                      8: #
                      9: # $Id: fts2h.test,v 1.1 2006/11/29 21:03:01 shess Exp $
                     10: #
                     11: 
                     12: set testdir [file dirname $argv0]
                     13: source $testdir/tester.tcl
                     14: 
                     15: # If SQLITE_ENABLE_FTS2 is defined, omit this file.
                     16: ifcapable !fts2 {
                     17:   finish_test
                     18:   return
                     19: }
                     20: 
                     21: # Generate a term of len copies of char.
                     22: proc bigterm {char len} {
                     23:   for {set term ""} {$len>0} {incr len -1} {
                     24:     append term $char
                     25:   }
                     26:   return $term
                     27: }
                     28: 
                     29: # Generate a document of bigterms based on characters from the list
                     30: # chars.
                     31: proc bigtermdoc {chars len} {
                     32:   set doc ""
                     33:   foreach char $chars {
                     34:     append doc " " [bigterm $char $len]
                     35:   }
                     36:   return $doc
                     37: }
                     38: 
                     39: set len 5000
                     40: set doc1 [bigtermdoc {a b c d} $len]
                     41: set doc2 [bigtermdoc {b d e f} $len]
                     42: set doc3 [bigtermdoc {a c e} $len]
                     43: 
                     44: set aterm [bigterm a $len]
                     45: set bterm [bigterm b $len]
                     46: set xterm [bigterm x $len]
                     47: 
                     48: db eval {
                     49:   CREATE VIRTUAL TABLE t1 USING fts2(content);
                     50:   INSERT INTO t1 (rowid, content) VALUES(1, $doc1);
                     51:   INSERT INTO t1 (rowid, content) VALUES(2, $doc2);
                     52:   INSERT INTO t1 (rowid, content) VALUES(3, $doc3);
                     53: }
                     54: 
                     55: # No hits at all.  Returns empty doclists from termSelect().
                     56: do_test fts2h-1.1 {
                     57:   execsql {SELECT rowid FROM t1 WHERE t1 MATCH 'something'}
                     58: } {}
                     59: 
                     60: do_test fts2h-1.2 {
                     61:   execsql {SELECT rowid FROM t1 WHERE t1 MATCH $aterm}
                     62: } {1 3}
                     63: 
                     64: do_test fts2h-1.2 {
                     65:   execsql {SELECT rowid FROM t1 WHERE t1 MATCH $xterm}
                     66: } {}
                     67: 
                     68: do_test fts2h-1.3 {
                     69:   execsql "SELECT rowid FROM t1 WHERE t1 MATCH '$aterm -$xterm'"
                     70: } {1 3}
                     71: 
                     72: do_test fts2h-1.4 {
                     73:   execsql "SELECT rowid FROM t1 WHERE t1 MATCH '\"$aterm $bterm\"'"
                     74: } {1}
                     75: 
                     76: finish_test

FreeBSD-CVSweb <freebsd-cvsweb@FreeBSD.org>