Many hyperlinks are disabled.
Use anonymous login
to enable hyperlinks.
Overview
Comment: | Add a malloc failure test case that covers a few previously untested lines in pager.c (CVS 6154) |
---|---|
Downloads: | Tarball | ZIP archive |
Timelines: | family | ancestors | descendants | both | trunk |
Files: | files | file ages | folders |
SHA1: |
000aedb0471b5f5a69e7b61f5e1d4b26 |
User & Date: | danielk1977 2009-01-10 11:10:19.000 |
Context
2009-01-10
| ||
11:13 | Fix a bug in the previous commit - use SQL comments instead of Tcl comments in SQL blocks. (CVS 6155) (check-in: 3d7a8de248 user: danielk1977 tags: trunk) | |
11:10 | Add a malloc failure test case that covers a few previously untested lines in pager.c (CVS 6154) (check-in: 000aedb047 user: danielk1977 tags: trunk) | |
2009-01-09
| ||
21:41 | Coverage improvements in pragma.c. Change the __DARWIN__ macro to __APPLE__, which is available by default on Leopard. (CVS 6153) (check-in: 64c56226b9 user: drh tags: trunk) | |
Changes
Changes to test/malloc.test.
︙ | ︙ | |||
12 13 14 15 16 17 18 | # This file attempts to check the behavior of the SQLite library in # an out-of-memory situation. When compiled with -DSQLITE_DEBUG=1, # the SQLite library accepts a special command (sqlite3_memdebug_fail N C) # which causes the N-th malloc to fail. This special feature is used # to see what happens in the library if a malloc were to really fail # due to an out-of-memory situation. # | | | 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 | # This file attempts to check the behavior of the SQLite library in # an out-of-memory situation. When compiled with -DSQLITE_DEBUG=1, # the SQLite library accepts a special command (sqlite3_memdebug_fail N C) # which causes the N-th malloc to fail. This special feature is used # to see what happens in the library if a malloc were to really fail # due to an out-of-memory situation. # # $Id: malloc.test,v 1.71 2009/01/10 11:10:19 danielk1977 Exp $ set testdir [file dirname $argv0] source $testdir/tester.tcl # Only run these tests if memory debugging is turned on. # |
︙ | ︙ | |||
673 674 675 676 677 678 679 680 681 682 683 684 685 686 687 688 689 | do_malloc_test 29 -sqlprep { CREATE TABLE t1(a TEXT, b TEXT); } -sqlbody { INSERT INTO t1 VALUES(1, -234); INSERT INTO t1 SELECT * FROM t1 UNION ALL SELECT * FROM t1; } # Ensure that no file descriptors were leaked. do_test malloc-99.X { catch {db close} set sqlite_open_file_count } {0} puts open-file-count=$sqlite_open_file_count finish_test | > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > | 673 674 675 676 677 678 679 680 681 682 683 684 685 686 687 688 689 690 691 692 693 694 695 696 697 698 699 700 701 702 703 704 705 706 707 708 709 710 711 712 713 714 715 716 717 718 719 | do_malloc_test 29 -sqlprep { CREATE TABLE t1(a TEXT, b TEXT); } -sqlbody { INSERT INTO t1 VALUES(1, -234); INSERT INTO t1 SELECT * FROM t1 UNION ALL SELECT * FROM t1; } do_malloc_test 29 -tclprep { db eval { CREATE TABLE t1(x PRIMARY KEY); INSERT INTO t1 VALUES(randstr(500,500)); INSERT INTO t1 VALUES(randstr(500,500)); INSERT INTO t1 VALUES(randstr(500,500)); } db close sqlite3 db test.db # The DELETE command in the following block moves the overflow pages that # are part of the primary key index to the free-list. But it does not # actually load the content of the pages. This leads to the peculiar # situation where cache entries exist, but are not populated with data. # They are populated next time they are requested by the b-tree layer. # db eval { BEGIN; DELETE FROM t1; ROLLBACK; } } -sqlbody { # This statement requires the 'no-content' pages loaded by the DELETE # statement above. When requesting the pages, the content is loaded # from the database file. The point of this test case is to test handling # of malloc errors (including SQLITE_IOERR_NOMEM errors) when loading # the content. SELECT * FROM t1 ORDER BY x; } # Ensure that no file descriptors were leaked. do_test malloc-99.X { catch {db close} set sqlite_open_file_count } {0} puts open-file-count=$sqlite_open_file_count finish_test |