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} {
27 dbX eval { CREATE TABLE t1(a INTEGER PRIMARY KEY, b) }
33 ATTACH 'test.db1' AS aux;
34 CREATE TABLE aux.t1(a INTEGER PRIMARY KEY, b);
35 INSERT INTO aux.t1 VALUES(1, NULL);
36 INSERT INTO aux.t1 VALUES(2, NULL);
37 INSERT INTO aux.t1 VALUES(9, NULL);
41 faultsim_save_and_close
42 do_faultsim_test 1.1 -faults oom* -prep {
43 faultsim_restore_and_reopen
44 db func fetch_db fetch_db
45 load_static_extension db unionvtab
47 CREATE VIRTUAL TABLE temp.xyz USING swarmvtab(
49 ("test.db1", "t1", 1, 10),
50 ("test.db2", "t1", 11, 20)
55 execsql { SELECT a FROM xyz }
57 faultsim_test_result {0 {1 2 9}} {1 {sql error: out of memory}}