xref: /sqlite-3.40.0/test/tkt-9f2eb3abac.test (revision a23bc8a3)
1
2# 2013 August 29
3#
4# The author disclaims copyright to this source code.  In place of
5# a legal notice, here is a blessing:
6#
7#    May you do good and not evil.
8#    May you find forgiveness for yourself and forgive others.
9#    May you share freely, never taking more than you give.
10#
11#***********************************************************************
12# This file implements regression tests for SQLite library.
13#
14
15set testdir [file dirname $argv0]
16source $testdir/tester.tcl
17source $testdir/malloc_common.tcl
18set ::testprefix tkt-9f2eb3abac
19
20do_execsql_test 1.1 {
21  CREATE TABLE t1(a,b,c,d,e, PRIMARY KEY(a,b,c,d,e));
22  SELECT * FROM t1 WHERE a=? AND b=? AND c=? AND d=? AND e=?;
23} {}
24
25do_execsql_test 1.2 {
26  CREATE TABLE "a" (
27      "b" integer NOT NULL,
28      "c" integer NOT NULL,
29      PRIMARY KEY ("b", "c")
30      );
31
32  CREATE TABLE "d" (
33      "e" integer NOT NULL,
34      "g" integer NOT NULL,
35      "f" integer NOT NULL,
36      "h" integer NOT NULL,
37      "i" character(10) NOT NULL,
38      "j" int,
39      PRIMARY KEY ("e", "g", "f", "h")
40      );
41
42  CREATE TABLE "d_to_a" (
43      "f_e" integer NOT NULL,
44      "f_g" integer NOT NULL,
45      "f_f" integer NOT NULL,
46      "f_h" integer NOT NULL,
47      "t_b" integer NOT NULL,
48      "t_c" integer NOT NULL,
49      "r" character NOT NULL,
50      "s" integer,
51      PRIMARY KEY ("f_e", "f_g", "f_f", "f_h", "t_b", "t_c")
52      );
53
54  INSERT INTO d (g, e, h, f, j, i) VALUES ( 1, 1, 1, 1, 1, 1 );
55  INSERT INTO a (b, c) VALUES ( 1, 1 );
56  INSERT INTO d_to_a VALUES (1, 1, 1, 1, 1, 1, 1, 1);
57
58  DELETE FROM d_to_a
59  WHERE f_g = 1 AND f_e = 1 AND f_h = 1 AND f_f = 1 AND t_b = 1 AND t_c = 1;
60
61  SELECT * FROM d_to_a;
62} {}
63
64faultsim_delete_and_reopen
65do_execsql_test 2.0 { CREATE TABLE t1(a,b,c,d,e, PRIMARY KEY(a,b,c,d,e)) }
66do_execsql_test 2.1 { CREATE TABLE t2(x) }
67faultsim_save_and_close
68
69do_faultsim_test 3 -faults oom* -prep {
70  faultsim_restore_and_reopen
71  execsql { SELECT 1 FROM sqlite_master }
72} -body {
73  execsql { SELECT * FROM t1,t2 WHERE a=? AND b=? AND c=? AND d=? AND e=? }
74} -test {
75  faultsim_test_result {0 {}}
76}
77
78finish_test
79