xref: /titanic_50/usr/src/lib/libsqlite/test/crashme2.off (revision c5c4113dfcabb1eed3d4bdf7609de5170027a794)
1*c5c4113dSnw141292
2*c5c4113dSnw141292#pragma ident	"%Z%%M%	%I%	%E% SMI"
3*c5c4113dSnw141292
4*c5c4113dSnw141292
5*c5c4113dSnw141292set testdir [file dirname $argv0]
6*c5c4113dSnw141292source $testdir/tester.tcl
7*c5c4113dSnw141292
8*c5c4113dSnw141292db close
9*c5c4113dSnw141292set DB [sqlite db test.db]
10*c5c4113dSnw141292
11*c5c4113dSnw141292execsql {
12*c5c4113dSnw141292  CREATE TABLE t1(a);
13*c5c4113dSnw141292  INSERT INTO t1 VALUES(1);
14*c5c4113dSnw141292  INSERT INTO t1 VALUES(2);
15*c5c4113dSnw141292  INSERT INTO t1 VALUES(3);
16*c5c4113dSnw141292  INSERT INTO t1 VALUES(4);
17*c5c4113dSnw141292}
18*c5c4113dSnw141292
19*c5c4113dSnw141292do_test capi3-13.1 {
20*c5c4113dSnw141292  execsql {
21*c5c4113dSnw141292    CREATE TABLE t3(a unique on conflict rollback);
22*c5c4113dSnw141292    INSERT INTO t3 SELECT a FROM t1;
23*c5c4113dSnw141292    BEGIN;
24*c5c4113dSnw141292    INSERT INTO t1 SELECT * FROM t1;
25*c5c4113dSnw141292  }
26*c5c4113dSnw141292} {}
27*c5c4113dSnw141292do_test capi3-13.2 {
28*c5c4113dSnw141292  set STMT [sqlite_compile $DB "SELECT a FROM t1" TAIL]
29*c5c4113dSnw141292  sqlite_step $STMT
30*c5c4113dSnw141292  sqlite_step $STMT
31*c5c4113dSnw141292  sqlite_step $STMT
32*c5c4113dSnw141292  sqlite_step $STMT
33*c5c4113dSnw141292  sqlite_step $STMT
34*c5c4113dSnw141292} {SQLITE_ROW}
35*c5c4113dSnw141292do_test capi3-13.3 {
36*c5c4113dSnw141292# This causes a ROLLBACK, which deletes the table out from underneath the
37*c5c4113dSnw141292# SELECT statement. Causes a crash.
38*c5c4113dSnw141292  catchsql {
39*c5c4113dSnw141292    INSERT INTO t3 SELECT a FROM t1;
40*c5c4113dSnw141292  }
41*c5c4113dSnw141292} {1 {column a is not unique}}
42*c5c4113dSnw141292do_test capi3-13.4 {
43*c5c4113dSnw141292  sqlite_step $STMT
44*c5c4113dSnw141292  sqlite_step $STMT
45*c5c4113dSnw141292  sqlite_step $STMT
46*c5c4113dSnw141292  sqlite_step $STMT
47*c5c4113dSnw141292} {SQLITE_DONE}
48*c5c4113dSnw141292do_test capi3-13.5 {
49*c5c4113dSnw141292  sqlite_finalize $STMT
50*c5c4113dSnw141292} {SQLITE_OK}
51*c5c4113dSnw141292
52*c5c4113dSnw141292finish_test
53