add rollback tcl tests

This commit is contained in:
Pere Diaz Bou
2025-06-24 19:49:44 +02:00
parent a3ad138df8
commit b3e0ba030d
2 changed files with 57 additions and 0 deletions

View File

@@ -37,3 +37,4 @@ source $testdir/create_table.test
source $testdir/collate.test
source $testdir/values.test
source $testdir/integrity_check.test
source $testdir/rollback.test

56
testing/rollback.test Executable file
View File

@@ -0,0 +1,56 @@
#!/usr/bin/env tclsh
set testdir [file dirname $argv0]
source $testdir/tester.tcl
do_execsql_test_on_specific_db {:memory:} simple-rollback {
create table t (x);
insert into t values (1);
begin;
insert into t values (2);
rollback;
select * from t;
} {1}
do_execsql_test_on_specific_db {:memory:} simple-rollback-2 {
create table t (x);
begin;
insert into t values (1);
insert into t values (2);
rollback;
select * from t;
} {}
do_execsql_test_on_specific_db {:memory:} rollback-after-update {
create table t (x);
insert into t values (1);
insert into t values (2);
begin;
update t set x = x + 10;
rollback;
select * from t;
} {1 2}
do_execsql_test_on_specific_db {:memory:} rollback-after-delete {
create table t (x);
insert into t values (1);
insert into t values (2);
insert into t values (3);
begin;
delete from t where x = 2;
rollback;
select * from t order by x;
} {1 2 3}
do_execsql_test_on_specific_db {:memory:} rollback-mixed-operations {
create table t (x);
insert into t values (1);
insert into t values (2);
begin;
insert into t values (3);
update t set x = x + 10 where x = 1;
delete from t where x = 2;
rollback;
select * from t order by x;
} {1 2}