diff options
Diffstat (limited to 'components/external/SQLite-3.8.1/test/fts3malloc.test')
| -rw-r--r-- | components/external/SQLite-3.8.1/test/fts3malloc.test | 307 |
1 files changed, 0 insertions, 307 deletions
diff --git a/components/external/SQLite-3.8.1/test/fts3malloc.test b/components/external/SQLite-3.8.1/test/fts3malloc.test deleted file mode 100644 index ed30fe24c8..0000000000 --- a/components/external/SQLite-3.8.1/test/fts3malloc.test +++ /dev/null @@ -1,307 +0,0 @@ -# 2009 October 22 -# -# 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 contains tests to verify that malloc() errors that occur -# within the FTS3 module code are handled correctly. -# - -set testdir [file dirname $argv0] -source $testdir/tester.tcl -ifcapable !fts3 { finish_test ; return } -source $testdir/malloc_common.tcl -source $testdir/fts3_common.tcl - -# Ensure the lookaside buffer is disabled for these tests. -# -sqlite3 db test.db -sqlite3_db_config_lookaside db 0 0 0 - -set sqlite_fts3_enable_parentheses 1 -set DO_MALLOC_TEST 1 - -# Test organization: -# -# fts3_malloc-1.*: Test OOM during CREATE and DROP table statements. -# fts3_malloc-2.*: Test OOM during SELECT operations. -# fts3_malloc-3.*: Test OOM during SELECT operations with a larger database. -# fts3_malloc-4.*: Test OOM during database write operations. -# fts3_malloc-5.*: Test that a couple of memory leaks that could follow -# OOM in tokenizer code have been fixed. -# - - -proc normal_list {l} { - set ret [list] - foreach elem $l {lappend ret $elem} - set ret -} - -do_write_test fts3_malloc-1.1 sqlite_master { - CREATE VIRTUAL TABLE ft1 USING fts3(a, b) -} -do_write_test fts3_malloc-1.2 sqlite_master { - CREATE VIRTUAL TABLE ft2 USING fts3([a], [b]); -} -do_write_test fts3_malloc-1.3 sqlite_master { - CREATE VIRTUAL TABLE ft3 USING fts3('a', "b"); -} -do_write_test fts3_malloc-1.4 sqlite_master { - CREATE VIRTUAL TABLE ft4 USING fts3(`a`, 'fred''s column'); -} -do_error_test fts3_malloc-1.5 { - CREATE VIRTUAL TABLE ft5 USING fts3(a, b, tokenize unknown) -} {unknown tokenizer: unknown} -do_write_test fts3_malloc-1.6 sqlite_master { - CREATE VIRTUAL TABLE ft6 USING fts3(a, b, tokenize porter) -} -do_write_test fts3_malloc-1.7 sqlite_master { - CREATE VIRTUAL TABLE ft7 USING fts4(a, b, notindexed=b) -} - -# Test the xConnect/xDisconnect methods: -#db eval { ATTACH 'test2.db' AS aux } -#do_write_test fts3_malloc-1.6 aux.sqlite_master { -# CREATE VIRTUAL TABLE aux.ft7 USING fts3(a, b, c); -#} -#do_write_test fts3_malloc-1.6 aux.sqlite_master { -# CREATE VIRTUAL TABLE aux.ft7 USING fts3(a, b, c); -#} - - - -do_test fts3_malloc-2.0 { - execsql { - DROP TABLE ft1; - DROP TABLE ft2; - DROP TABLE ft3; - DROP TABLE ft4; - DROP TABLE ft6; - DROP TABLE ft7; - } - execsql { CREATE VIRTUAL TABLE ft USING fts3(a, b) } - for {set ii 1} {$ii < 32} {incr ii} { - set a [list] - set b [list] - if {$ii & 0x01} {lappend a one ; lappend b neung} - if {$ii & 0x02} {lappend a two ; lappend b song } - if {$ii & 0x04} {lappend a three ; lappend b sahm } - if {$ii & 0x08} {lappend a four ; lappend b see } - if {$ii & 0x10} {lappend a five ; lappend b hah } - execsql { INSERT INTO ft VALUES($a, $b) } - } -} {} - -foreach {tn sql result} { - 1 "SELECT count(*) FROM sqlite_master" {5} - 2 "SELECT * FROM ft WHERE docid = 1" {one neung} - 3 "SELECT * FROM ft WHERE docid = 2" {two song} - 4 "SELECT * FROM ft WHERE docid = 3" {{one two} {neung song}} - - 5 "SELECT a FROM ft" { - {one} {two} {one two} - {three} {one three} {two three} - {one two three} {four} {one four} - {two four} {one two four} {three four} - {one three four} {two three four} {one two three four} - {five} {one five} {two five} - {one two five} {three five} {one three five} - {two three five} {one two three five} {four five} - {one four five} {two four five} {one two four five} - {three four five} {one three four five} {two three four five} - {one two three four five} - } - - 6 "SELECT a FROM ft WHERE a MATCH 'one'" { - {one} {one two} {one three} {one two three} - {one four} {one two four} {one three four} {one two three four} - {one five} {one two five} {one three five} {one two three five} - {one four five} {one two four five} - {one three four five} {one two three four five} - } - - 7 "SELECT a FROM ft WHERE a MATCH 'o*'" { - {one} {one two} {one three} {one two three} - {one four} {one two four} {one three four} {one two three four} - {one five} {one two five} {one three five} {one two three five} - {one four five} {one two four five} - {one three four five} {one two three four five} - } - - 8 "SELECT a FROM ft WHERE a MATCH 'o* t*'" { - {one two} {one three} {one two three} - {one two four} {one three four} {one two three four} - {one two five} {one three five} {one two three five} - {one two four five} {one three four five} {one two three four five} - } - - 9 "SELECT a FROM ft WHERE a MATCH '\"o* t*\"'" { - {one two} {one three} {one two three} - {one two four} {one three four} {one two three four} - {one two five} {one three five} {one two three five} - {one two four five} {one three four five} {one two three four five} - } - - 10 {SELECT a FROM ft WHERE a MATCH '"o* f*"'} { - {one four} {one five} {one four five} - } - - 11 {SELECT a FROM ft WHERE a MATCH '"one two three"'} { - {one two three} - {one two three four} - {one two three five} - {one two three four five} - } - - 12 {SELECT a FROM ft WHERE a MATCH '"two three four"'} { - {two three four} - {one two three four} - {two three four five} - {one two three four five} - } - - 12 {SELECT a FROM ft WHERE a MATCH '"two three" five'} { - {two three five} {one two three five} - {two three four five} {one two three four five} - } - - 13 {SELECT a FROM ft WHERE ft MATCH '"song sahm" hah'} { - {two three five} {one two three five} - {two three four five} {one two three four five} - } - - 14 {SELECT a FROM ft WHERE b MATCH 'neung'} { - {one} {one two} - {one three} {one two three} - {one four} {one two four} - {one three four} {one two three four} - {one five} {one two five} - {one three five} {one two three five} - {one four five} {one two four five} - {one three four five} {one two three four five} - } - - 15 {SELECT a FROM ft WHERE b MATCH '"neung song sahm"'} { - {one two three} {one two three four} - {one two three five} {one two three four five} - } - - 16 {SELECT a FROM ft WHERE b MATCH 'hah "song sahm"'} { - {two three five} {one two three five} - {two three four five} {one two three four five} - } - - 17 {SELECT a FROM ft WHERE b MATCH 'song OR sahm'} { - {two} {one two} {three} - {one three} {two three} {one two three} - {two four} {one two four} {three four} - {one three four} {two three four} {one two three four} - {two five} {one two five} {three five} - {one three five} {two three five} {one two three five} - {two four five} {one two four five} {three four five} - {one three four five} {two three four five} {one two three four five} - } - - 18 {SELECT a FROM ft WHERE a MATCH 'three NOT two'} { - {three} {one three} {three four} - {one three four} {three five} {one three five} - {three four five} {one three four five} - } - - 19 {SELECT a FROM ft WHERE b MATCH 'sahm NOT song'} { - {three} {one three} {three four} - {one three four} {three five} {one three five} - {three four five} {one three four five} - } - - 20 {SELECT a FROM ft WHERE ft MATCH 'sahm NOT song'} { - {three} {one three} {three four} - {one three four} {three five} {one three five} - {three four five} {one three four five} - } - - 21 {SELECT a FROM ft WHERE b MATCH 'neung NEAR song NEAR sahm'} { - {one two three} {one two three four} - {one two three five} {one two three four five} - } - -} { - set result [normal_list $result] - do_select_test fts3_malloc-2.$tn $sql $result -} - -do_test fts3_malloc-3.0 { - execsql BEGIN - for {set ii 32} {$ii < 1024} {incr ii} { - set a [list] - set b [list] - if {$ii & 0x0001} {lappend a one ; lappend b neung } - if {$ii & 0x0002} {lappend a two ; lappend b song } - if {$ii & 0x0004} {lappend a three ; lappend b sahm } - if {$ii & 0x0008} {lappend a four ; lappend b see } - if {$ii & 0x0010} {lappend a five ; lappend b hah } - if {$ii & 0x0020} {lappend a six ; lappend b hok } - if {$ii & 0x0040} {lappend a seven ; lappend b jet } - if {$ii & 0x0080} {lappend a eight ; lappend b bairt } - if {$ii & 0x0100} {lappend a nine ; lappend b gow } - if {$ii & 0x0200} {lappend a ten ; lappend b sip } - execsql { INSERT INTO ft VALUES($a, $b) } - } - execsql COMMIT -} {} -foreach {tn sql result} { - 1 "SELECT count(*) FROM ft" {1023} - - 2 "SELECT a FROM ft WHERE a MATCH 'one two three four five six seven eight'" { - {one two three four five six seven eight} - {one two three four five six seven eight nine} - {one two three four five six seven eight ten} - {one two three four five six seven eight nine ten} - } - - 3 {SELECT count(*), sum(docid) FROM ft WHERE a MATCH 'o*'} { - 512 262144 - } - - 4 {SELECT count(*), sum(docid) FROM ft WHERE a MATCH '"two three four"'} { - 128 66368 - } -} { - set result [normal_list $result] - do_select_test fts3_malloc-3.$tn $sql $result -} - -do_test fts3_malloc-4.0 { - execsql { DELETE FROM ft WHERE docid>=32 } -} {} -foreach {tn sql} { - 1 "DELETE FROM ft WHERE ft MATCH 'one'" - 2 "DELETE FROM ft WHERE ft MATCH 'three'" - 3 "DELETE FROM ft WHERE ft MATCH 'five'" -} { - do_write_test fts3_malloc-4.1.$tn ft_content $sql -} -do_test fts3_malloc-4.2 { - execsql { SELECT a FROM ft } -} {two four {two four}} - -do_write_test fts3_malloc-5.1 ft_content { - INSERT INTO ft VALUES('short alongertoken reallyquitealotlongerimeanit andthistokenisjustsolongthatonemightbeforgivenforimaginingthatitwasmerelyacontrivedexampleandnotarealtoken', 'cynics!') -} -do_test fts3_malloc-5.2 { - execsql { CREATE VIRTUAL TABLE ft8 USING fts3(x, tokenize porter) } -} {} - -do_write_test fts3_malloc-5.3 ft_content { - INSERT INTO ft8 VALUES('short alongertoken reallyquitealotlongerimeanit andthistokenisjustsolongthatonemightbeforgivenforimaginingthatitwasmerelyacontrivedexampleandnotarealtoken') -} - - -finish_test |
