mirror of
https://github.com/sqlite/sqlite.git
synced 2025-07-24 22:22:08 +03:00
Add tests for malloc() failure when the atomic-write optimization is being used. Also fix things so that rollback can occur without a malloc(), even if there is a master journal file. (CVS 4330)
FossilOrigin-Name: 481fd3a89e50e329596d96565170e3d9977aae29
This commit is contained in:
54
test/mallocD.test
Normal file
54
test/mallocD.test
Normal file
@ -0,0 +1,54 @@
|
||||
# 2007 Aug 29
|
||||
#
|
||||
# The author disclaims copyright to this source code. In place of
|
||||
# a legal notice, here is a blessing:
|
||||
#
|
||||
# May you do good and not evil.
|
||||
# May you find forgiveness for yourself and forgive others.
|
||||
# May you share freely, never taking more than you give.
|
||||
#
|
||||
#***********************************************************************
|
||||
#
|
||||
# $Id: mallocD.test,v 1.1 2007/08/30 08:08:17 danielk1977 Exp $
|
||||
|
||||
set testdir [file dirname $argv0]
|
||||
source $testdir/tester.tcl
|
||||
source $testdir/malloc_common.tcl
|
||||
|
||||
sqlite3_simulate_device -char atomic
|
||||
|
||||
set PREP {
|
||||
PRAGMA page_size = 1024;
|
||||
CREATE TABLE abc(a, b, c);
|
||||
}
|
||||
|
||||
do_malloc_test mallocD-1 -sqlprep $PREP -sqlbody {
|
||||
INSERT INTO abc VALUES(1, 2, 3);
|
||||
}
|
||||
|
||||
do_malloc_test mallocD-2 -sqlprep $PREP -sqlbody {
|
||||
BEGIN;
|
||||
INSERT INTO abc VALUES(1, 2, 3);
|
||||
INSERT INTO abc VALUES(4, 5, 6);
|
||||
ROLLBACK;
|
||||
}
|
||||
|
||||
do_malloc_test mallocD-3 -sqlprep $PREP -sqlbody {
|
||||
BEGIN;
|
||||
INSERT INTO abc VALUES(1, 2, 3);
|
||||
INSERT INTO abc VALUES(4, 5, randstr(1500,1500));
|
||||
COMMIT;
|
||||
}
|
||||
|
||||
do_malloc_test mallocD-4 -sqlprep $PREP -sqlbody {
|
||||
ATTACH 'test2.db' AS aux;
|
||||
BEGIN;
|
||||
CREATE TABLE aux.def(d, e, f);
|
||||
INSERT INTO abc VALUES(4, 5, 6);
|
||||
COMMIT;
|
||||
}
|
||||
|
||||
sqlite3_simulate_device -char {}
|
||||
|
||||
finish_test
|
||||
|
Reference in New Issue
Block a user