1# 2014 June 17 2# 3# The author disclaims copyright to this source code. In place of 4# 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 SQLite library. The 12# focus of this script is testing the FTS5 module. 13# 14# Specifically, it tests transactions and savepoints 15# 16 17source [file join [file dirname [info script]] fts5_common.tcl] 18set testprefix fts5ai 19 20# If SQLITE_ENABLE_FTS5 is defined, omit this file. 21ifcapable !fts5 { 22 finish_test 23 return 24} 25 26foreach_detail_mode $testprefix { 27 28do_execsql_test 1.0 { 29 CREATE VIRTUAL TABLE t1 USING fts5(a, detail=%DETAIL%); 30} {} 31 32do_execsql_test 1.1 { 33 BEGIN; 34 INSERT INTO t1 VALUES('a b c'); 35 INSERT INTO t1 VALUES('d e f'); 36 SAVEPOINT one; 37 INSERT INTO t1 VALUES('g h i'); 38 SAVEPOINT two; 39 INSERT INTO t1 VALUES('j k l'); 40 ROLLBACK TO one; 41 INSERT INTO t1 VALUES('m n o'); 42 SAVEPOINT two; 43 INSERT INTO t1 VALUES('p q r'); 44 RELEASE one; 45 SAVEPOINT one; 46 INSERT INTO t1 VALUES('s t u'); 47 ROLLBACK TO one; 48 COMMIT; 49} 50 51do_execsql_test 1.2 { 52 INSERT INTO t1(t1) VALUES('integrity-check'); 53} 54 55do_execsql_test 1.3 { 56 SAVEPOINT one; 57 INSERT INTO t1 VALUES('v w x'); 58 ROLLBACK TO one; 59} 60} 61 62 63finish_test 64