Commit Graph

34 Commits

Author SHA1 Message Date
drh
2c6c98dbf0 Fix incorrect b-tree root page reports from the enhanced PRAGMA integrity_check
output introduced in version 3.42.0.

FossilOrigin-Name: 9b538f62539bcde7d7d7ad06eccdc558ecbd3f9160db35197568f4d3b4247c76
2023-05-18 23:25:48 +00:00
drh
e5ea81ae85 Improved error messages from PRAGMA integrity_check. Identify the root of
the tree when a problem is found in a b-tree, making it easier to track the
problem to a specific table or index.

FossilOrigin-Name: a1cb152e69c7c6cdd99300c91a8104716089de459d9d19e33ef38432aad70908
2023-04-01 13:14:53 +00:00
drh
6813350966 Fix test cases. Avoid unnecessary tests for MemPage.nFree less than zero.
FossilOrigin-Name: 480a5090befdc29eaeb6f0b22831c980d6ee92438d9b2e766de68b037ded38b8
2019-02-11 17:22:30 +00:00
drh
0f0d3ddf71 Enable DEFENSIVE mode by default for tests. This requires lots of case of
turning DEFENSIVE off in order to dodgy things to the database for testing
purposes.  No all of those cases are yet handled, so "make test" does not run
to completion.

FossilOrigin-Name: a1d6c6712c3304fd736077432c8c180692cf7d79be7f3a073510b6dab0eb951f
2018-11-06 19:26:04 +00:00
drh
91d5866eb6 Enhanced detection of problems on the freelist and on overflow list in
PRAGMA integrity_check.

FossilOrigin-Name: 11e58f5b37d99848978007d834d187c262d904eb9d58924742e028d7cb324e64
2018-07-20 13:39:28 +00:00
drh
ff4fa772f5 Update error message text for standard error codes to better describe the
latest usage of those error codes.  Modify sqlite3_open_v2() so that it does
return a valid sqlite3 object in the event of SQLITE_MISUSE due to bad
open flags, so that sqlite3_errmsg() does not report "out of memory" in that
case.

FossilOrigin-Name: f27b6370407842e2c175ea4aa9ce018723c57eaac0cccc1f8399bc20f33324be
2017-07-10 12:07:53 +00:00
drh
82f525406a More test-case changes so that everything works when the reserved_bytes
value in the header is non-zero.

FossilOrigin-Name: 2fd095b14b03a508169bba710d2e8e2addf4b8f5
2016-03-15 12:37:08 +00:00
dan
ad41f5eda3 Ensure that "PRAGMA integrity_check" reports an error if the free-list count header field contains a value smaller than the actual number of pages on the database free-list.
FossilOrigin-Name: 26f64986d1ed59c554a7cb9e00e86a7f148f1fc6
2015-09-18 14:45:01 +00:00
drh
cbc6b71f39 Smaller and faster PRAGMA integrity_check that also does a better job of
detecting errors.  Some output text describing discovered file corruption
has changed for clarity.

FossilOrigin-Name: 251a7590ff4f65f59a1c871892533e4e2c544515
2015-07-02 16:17:30 +00:00
drh
09fe614372 Add a new sqlite3_test_control() that indicates that database files are
always well-formed.  Use this during testing to enable assert() statements
that prove conditions that are always true for well-formed databases.

FossilOrigin-Name: 15e4f63d1f3cbcd0aa789fd3e460cd6e4d3338f9
2013-11-29 15:06:27 +00:00
mistachkin
fda06befd5 Add retry logic for AV defense to winOpen. Also, refactor test suite to allow the key Tcl file operations (e.g. copy and delete) to be retried.
FossilOrigin-Name: 9007586fdabed8dbcc78581ea9821cfd1f9a4c8c
2011-08-02 00:57:34 +00:00
dan
cb35460330 Changes to test scripts so that the "inmemory_journal" permutation works with [ef126e775a].
FossilOrigin-Name: f553c8ed04b4b2df8ff4929e0754e3ffd1d01ba4
2010-07-08 09:44:42 +00:00
dan
68928b6c3e Some changes to test scripts related to codec enabled versions of sqlite.
FossilOrigin-Name: 85dd51a75c75b2a123744f646e04538e4e5d89b3
2010-06-22 13:46:43 +00:00
drh
dd3cd977cc Experimental changes that cause SQLite to use bytes 28..31 of the database
header to determine the database size, rather than using the actual database
size.  This allows database space to be preallocated.

FossilOrigin-Name: b844ac6fcb72595a71e5c5283ec461309a87ba79
2010-03-27 17:12:36 +00:00
danielk1977
ef165cedeb Test cases and minor code changes to increase coverage of btree.c. (CVS 6456)
FossilOrigin-Name: def3a016914f683818b5f013ec4efecbb8fd4c0d
2009-04-06 17:50:03 +00:00
danielk1977
fa542f1fc8 Fix a problem causing the BtShared.isPending flag to be cleared to early. Also coverage improvements for btree.c. (CVS 6440)
FossilOrigin-Name: 8f1423445b29a5f52ed907de6db82128a96ebfe2
2009-04-02 18:28:08 +00:00
danielk1977
71d5d2cd49 Instead of storing a pointer to the parent page in the MemPage structure, have each B-Tree cursor keep track of the ancestry of the current page. (CVS 5747)
FossilOrigin-Name: 40425e93421286cca1965d7a5769084526210c7a
2008-09-29 11:49:47 +00:00
danielk1977
38816ecf99 Avoid deleting a file while it is still open in corrupt2.test. Not all platforms support this. (CVS 5687)
FossilOrigin-Name: 099adfd31167a78d803e2992e5f50cf4e292dd43
2008-09-10 11:28:37 +00:00
danielk1977
ff9b2e75b4 If the 'rootpage' column of the sqlite_master table contains a NULL value, return SQLITE_CORRUPT to the caller. (CVS 5681)
FossilOrigin-Name: a7b7b126e9e9b0cd2d68643d8dff321cf41ce2ee
2008-09-08 09:06:18 +00:00
drh
8af6906348 Clear the $result variable prior to using it in corrupt2.test. (CVS 5624)
FossilOrigin-Name: 12f2d24f88e55d170dd7750e7904ff14e84e820e
2008-08-27 16:14:20 +00:00
drh
e6a6464895 Test scripts revised to work when auto_vacuum defaults on. (CVS 5528)
FossilOrigin-Name: e63186b0b6defce9ce16b3c334887c1f5a0bfcf0
2008-08-02 20:09:36 +00:00
danielk1977
1bc71590c4 Test another corruption case in btree.c. And an IO error related scenario. (CVS 5371)
FossilOrigin-Name: d74fbb81ca3f973ac46534344e5076afc5dd5491
2008-07-08 17:13:59 +00:00
danielk1977
9ffe5d7247 3 more coverage tests for btree.c. (CVS 5370)
FossilOrigin-Name: 96df0a5fa4bb2b3dfedf034d81704e152cdc63a9
2008-07-08 15:59:51 +00:00
danielk1977
35af9ba095 Another corruption related test case. (CVS 5367)
FossilOrigin-Name: f781a68127c97e30763447a12314180f0728deb9
2008-07-08 14:31:14 +00:00
danielk1977
a961339cd7 Extra coverage tests for btree.c. (CVS 5365)
FossilOrigin-Name: 08334f60303e63b581fa7f1f00d3e8833f1710ca
2008-07-08 12:07:32 +00:00
danielk1977
3aa4b67f04 Improve coverage of btree.c. (CVS 5363)
FossilOrigin-Name: f6d9cb835b8f75545f455328d61ba225e7da9bc4
2008-07-08 10:19:58 +00:00
danielk1977
75c5fa88e9 Fix a problem in shared_err.test preventing it from running properly and add a test to corrupt2.test to cover another corruption detection case. (CVS 5355)
FossilOrigin-Name: 2dcd5287a0d71140baa23aae2ab3d95d78a5676d
2008-07-07 17:55:28 +00:00
danielk1977
b34a4ede32 Another test case to test a specific kind of database corruption. (CVS 5352)
FossilOrigin-Name: 38e04d67635d49661f9b95338fc1cb8197bf0bc7
2008-07-07 17:04:22 +00:00
danielk1977
2b76b05dcc Add a test case to test corruption discovered as part of the ptrmapPut() routine. (CVS 5351)
FossilOrigin-Name: cbb9536fc4fb2419e0eb6f3a32c67eeb7a73da82
2008-07-07 15:39:11 +00:00
drh
345331507f When a parse of the sqlite_master table fails, include the name of the
object being parsed as part of the error message. (CVS 4881)

FossilOrigin-Name: 57805b588f6b6d070918102a0ff096ade674279a
2008-03-19 13:03:33 +00:00
danielk1977
d45a0315cb Do not crash when a corrupt database contains two indices with the same name. (CVS 3684)
FossilOrigin-Name: 48b2a40008a09881ed9da3548095495a3d4a6647
2007-03-13 16:32:25 +00:00
drh
920769d3a6 In the corrupt2.test script,
change uses of (open ... a) to (open ... RDWR) to work around
inconsistencies in behavior across various platforms. (CVS 3645)

FossilOrigin-Name: 50e86b0368ae0268e7f07e44a746e13ad86a3b8b
2007-02-14 12:32:13 +00:00
danielk1977
32554c10d0 Test script changes: Bug fix and cleanup on ioerr tests. Also, don't use TCL "file copy" command on windows. (CVS 2264)
FossilOrigin-Name: 764b55adb5dff944db36d0d19ce5e7cc758b3a9e
2005-01-22 03:39:39 +00:00
danielk1977
2812956b18 Test cases to improve coverage of btree.c (and minor bugfixes). (CVS 2190)
FossilOrigin-Name: 8ced491588764b1e1066787d0abf3cde8b60970b
2005-01-11 10:25:06 +00:00