CoolFace
Modelpublic

AryaWu/sqlite

sourceHugging Faceupdated 9mo agoView on Hugging Face
0likes
fuzzerfault.test112 linesDownload Raw Back to test
1# 2012 February 212#3# The author disclaims copyright to this source code.  In place of4# 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# This file implements regression tests for TCL interface to the12# SQLite library. 13#14 15set testdir [file dirname $argv0]16source $testdir/tester.tcl17ifcapable !vtab { finish_test ; return }18set ::testprefix fuzzerfault19 20load_static_extension db fuzzer21 22do_test 1-pre1 {23  execsql {24    CREATE TABLE x1_rules(ruleset, cFrom, cTo, cost);25    INSERT INTO x1_rules VALUES(0, 'a', 'b', 1);26    INSERT INTO x1_rules VALUES(0, 'a', 'c', 2);27    INSERT INTO x1_rules VALUES(0, 'a', 'd', 3);28  }29  faultsim_save_and_close30} {}31do_faultsim_test 1 -prep {32  faultsim_restore_and_reopen33  load_static_extension db fuzzer34} -body {35  execsql { 36    CREATE VIRTUAL TABLE x1 USING fuzzer(x1_rules);37    SELECT word FROM x1 WHERE word MATCH 'xax';38  }39} -test {40  faultsim_test_result {0 {xax xbx xcx xdx}}               \41                       {1 {vtable constructor failed: x1}}42}43 44do_test 2-pre1 {45  faultsim_delete_and_reopen46  load_static_extension db fuzzer47  execsql {48    CREATE TABLE x2_rules(ruleset, cFrom, cTo, cost);49    INSERT INTO x2_rules VALUES(0, 'a', 'x', 1);50    INSERT INTO x2_rules VALUES(0, 'b', 'x', 2);51    INSERT INTO x2_rules VALUES(0, 'c', 'x', 3);52    CREATE VIRTUAL TABLE x2 USING fuzzer(x2_rules);53  }54  faultsim_save_and_close55} {}56 57do_faultsim_test 2 -prep {58  faultsim_restore_and_reopen59  load_static_extension db fuzzer60} -body {61  execsql { 62    SELECT count(*) FROM x2 WHERE word MATCH 'abc';63  }64} -test {65  faultsim_test_result {0 8} {1 {vtable constructor failed: x2}}66}67 68do_test 3-pre1 {69  faultsim_delete_and_reopen70  execsql {71    CREATE TABLE x1_rules(ruleset, cFrom, cTo, cost);72    INSERT INTO x1_rules VALUES(0, 'a', 73      '123456789012345678901234567890a1234567890123456789', 1074    );75  }76  faultsim_save_and_close77} {}78 79do_faultsim_test 3 -prep {80  faultsim_restore_and_reopen81  load_static_extension db fuzzer82} -body {83  execsql { 84    CREATE VIRTUAL TABLE x1 USING fuzzer(x1_rules);85    SELECT count(*) FROM (SELECT * FROM x1 WHERE word MATCH 'a' LIMIT 2);86  }87} -test {88  faultsim_test_result {0 2} {1 {vtable constructor failed: x1}}89}90 91#-------------------------------------------------------------------------92reset_db93do_execsql_test 4.0 {94  CREATE TABLE t1_a(a INTEFDR PRIMARY KEY, b TEXT);95  CREATE TABLE t3_a(k FnTEGER PRIMARY KEY, v TEXT);96  CREATE TABLE t3_b(k INTEÀ5R PRIMARY KEY, v TEXT);97  CREATE VIEW t3 AS SELECT * FROM t3_a UNION ALL SELECT * FROM t3_b;98}99faultsim_save_and_close100 101do_faultsim_test 4 -faults oom-t* -prep {102  faultsim_restore_and_reopen103} -body {104  execsql { 105    SELECT 1 FROM t1_a LEFT JOIN t3 ON ((1+1) AND k=1)106  }107} -test {108  faultsim_test_result {0 {}} 109}110 111finish_test112