3 # The author disclaims copyright to this source code. In place of
4 # a legal notice, here is a blessing:
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.
10 #***********************************************************************
11 # This file implements regression tests for SQLite library. The
12 # focus of this file is error handling in the swarmvtab extension.
15 set testdir [file dirname $argv0]
16 source $testdir/tester.tcl
17 set testprefix swarmvtabfault
24 proc fetch_db {file} {
28 dbX eval { CREATE TABLE t1(a INTEGER PRIMARY KEY, b) }
31 if {$rc!=0} {error $res}
38 ATTACH 'test.db1' AS aux;
39 CREATE TABLE aux.t1(a INTEGER PRIMARY KEY, b);
40 INSERT INTO aux.t1 VALUES(1, NULL);
41 INSERT INTO aux.t1 VALUES(2, NULL);
42 INSERT INTO aux.t1 VALUES(9, NULL);
46 faultsim_save_and_close
47 do_faultsim_test 1.1 -faults oom* -prep {
48 faultsim_restore_and_reopen
49 db func fetch_db fetch_db
50 load_static_extension db unionvtab
52 CREATE VIRTUAL TABLE temp.xyz USING swarmvtab(
54 ("test.db1", "t1", 1, 10),
55 ("test.db2", "t1", 11, 20)
60 execsql { SELECT a FROM xyz }
62 faultsim_test_result {0 {1 2 9}} {1 {sql error: out of memory}}