| Index: third_party/sqlite/src/test/corruptC.test | 
| diff --git a/third_party/sqlite/src/test/corruptC.test b/third_party/sqlite/src/test/corruptC.test | 
| index 05804263884a661648fb2208ca3b6e7dea1c3bc0..adf6f44c44863de6deda63d665ff120b693a25e5 100644 | 
| --- a/third_party/sqlite/src/test/corruptC.test | 
| +++ b/third_party/sqlite/src/test/corruptC.test | 
| @@ -17,7 +17,7 @@ | 
| # | 
| # $Id: corruptC.test,v 1.14 2009/07/11 06:55:34 danielk1977 Exp $ | 
|  | 
| -catch {file delete -force test.db test.db-journal test.bu} | 
| +catch {forcedelete test.db test.db-journal test.bu} | 
|  | 
| set testdir [file dirname $argv0] | 
| source $testdir/tester.tcl | 
| @@ -27,6 +27,10 @@ source $testdir/tester.tcl | 
| # | 
| do_not_use_codec | 
|  | 
| +# These tests deal with corrupt database files | 
| +# | 
| +database_may_be_corrupt | 
| + | 
| # Construct a compact, dense database for testing. | 
| # | 
| do_test corruptC-1.1 { | 
| @@ -58,16 +62,10 @@ proc random {range} { | 
| return [expr {round(rand()*$range)}] | 
| } | 
|  | 
| -# Copy file $from into $to | 
| -# | 
| -proc copy_file {from to} { | 
| -  file copy -force $from $to | 
| -} | 
| - | 
| # Setup for the tests.  Make a backup copy of the good database in test.bu. | 
| # | 
| db close | 
| -copy_file test.db test.bu | 
| +forcecopy test.db test.bu | 
| sqlite3 db test.db | 
| set fsize [file size test.db] | 
|  | 
| @@ -92,7 +90,7 @@ expr srand($qseed) | 
| # test that a corrupt content offset size is handled (seed 5577) | 
| do_test corruptC-2.1 { | 
| db close | 
| -  copy_file test.bu test.db | 
| +  forcecopy test.bu test.db | 
|  | 
| # insert corrupt byte(s) | 
| hexio_write test.db 2053 [format %02x 0x04] | 
| @@ -104,7 +102,7 @@ do_test corruptC-2.1 { | 
| # test that a corrupt content offset size is handled (seed 5649) | 
| do_test corruptC-2.2 { | 
| db close | 
| -  copy_file test.bu test.db | 
| +  forcecopy test.bu test.db | 
|  | 
| # insert corrupt byte(s) | 
| hexio_write test.db 27   [format %02x 0x08] | 
| @@ -125,7 +123,7 @@ do_test corruptC-2.2 { | 
| # test that a corrupt free cell size is handled (seed 13329) | 
| do_test corruptC-2.3 { | 
| db close | 
| -  copy_file test.bu test.db | 
| +  forcecopy test.bu test.db | 
|  | 
| # insert corrupt byte(s) | 
| hexio_write test.db 1094 [format %02x 0x76] | 
| @@ -137,7 +135,7 @@ do_test corruptC-2.3 { | 
| # test that a corrupt free cell size is handled (seed 169571) | 
| do_test corruptC-2.4 { | 
| db close | 
| -  copy_file test.bu test.db | 
| +  forcecopy test.bu test.db | 
|  | 
| # insert corrupt byte(s) | 
| hexio_write test.db 3119 [format %02x 0xdf] | 
| @@ -149,7 +147,7 @@ do_test corruptC-2.4 { | 
| # test that a corrupt free cell size is handled (seed 169571) | 
| do_test corruptC-2.5 { | 
| db close | 
| -  copy_file test.bu test.db | 
| +  forcecopy test.bu test.db | 
|  | 
| # insert corrupt byte(s) | 
| hexio_write test.db 3119 [format %02x 0xdf] | 
| @@ -169,7 +167,7 @@ Page 4: btreeInitPage() returns error code 11}}} | 
| # test that a corrupt free cell size is handled (seed 169595) | 
| do_test corruptC-2.6 { | 
| db close | 
| -  copy_file test.bu test.db | 
| +  forcecopy test.bu test.db | 
|  | 
| # insert corrupt byte(s) | 
| hexio_write test.db 619 [format %02x 0xe2] | 
| @@ -182,7 +180,7 @@ do_test corruptC-2.6 { | 
| # corruption (seed 178692) | 
| do_test corruptC-2.7 { | 
| db close | 
| -  copy_file test.bu test.db | 
| +  forcecopy test.bu test.db | 
|  | 
| # insert corrupt byte(s) | 
| hexio_write test.db 3074 [format %02x 0xa0] | 
| @@ -194,7 +192,7 @@ do_test corruptC-2.7 { | 
| # corruption (seed 179069) | 
| do_test corruptC-2.8 { | 
| db close | 
| -  copy_file test.bu test.db | 
| +  forcecopy test.bu test.db | 
|  | 
| # insert corrupt byte(s) | 
| hexio_write test.db 1393 [format %02x 0x7d] | 
| @@ -208,21 +206,25 @@ do_test corruptC-2.8 { | 
| } {1 {database disk image is malformed}} | 
|  | 
| # corruption (seed 170434) | 
| +# | 
| +# UPDATE: Prior to 3.8.2, this used to return SQLITE_CORRUPT. It no longer | 
| +# does. That is Ok, the point of these tests is to verify that no buffer | 
| +# overruns or overreads can be caused by corrupt databases. | 
| do_test corruptC-2.9 { | 
| db close | 
| -  copy_file test.bu test.db | 
| +  forcecopy test.bu test.db | 
|  | 
| # insert corrupt byte(s) | 
| hexio_write test.db 2095 [format %02x 0xd6] | 
|  | 
| sqlite3 db test.db | 
| catchsql {BEGIN; DELETE FROM t1 WHERE x>13; ROLLBACK;} | 
| -} {1 {database disk image is malformed}} | 
| +} {0 {}} | 
|  | 
| # corruption (seed 186504) | 
| do_test corruptC-2.10 { | 
| db close | 
| -  copy_file test.bu test.db | 
| +  forcecopy test.bu test.db | 
|  | 
| # insert corrupt byte(s) | 
| hexio_write test.db 3130 [format %02x 0x02] | 
| @@ -234,7 +236,7 @@ do_test corruptC-2.10 { | 
| # corruption (seed 1589) | 
| do_test corruptC-2.11 { | 
| db close | 
| -  copy_file test.bu test.db | 
| +  forcecopy test.bu test.db | 
|  | 
| # insert corrupt byte(s) | 
| hexio_write test.db 55 [format %02x 0xa7] | 
| @@ -246,7 +248,7 @@ do_test corruptC-2.11 { | 
| # corruption (seed 14166) | 
| do_test corruptC-2.12 { | 
| db close | 
| -  copy_file test.bu test.db | 
| +  forcecopy test.bu test.db | 
|  | 
| # insert corrupt byte(s) | 
| hexio_write test.db 974 [format %02x 0x2e] | 
| @@ -258,7 +260,7 @@ do_test corruptC-2.12 { | 
| # corruption (seed 218803) | 
| do_test corruptC-2.13 { | 
| db close | 
| -  copy_file test.bu test.db | 
| +  forcecopy test.bu test.db | 
|  | 
| # insert corrupt byte(s) | 
| hexio_write test.db 102 [format %02x 0x12] | 
| @@ -269,7 +271,7 @@ do_test corruptC-2.13 { | 
|  | 
| do_test corruptC-2.14 { | 
| db close | 
| -  copy_file test.bu test.db | 
| +  forcecopy test.bu test.db | 
|  | 
| sqlite3 db test.db | 
| set blob [string repeat abcdefghij 10000] | 
| @@ -286,7 +288,7 @@ do_test corruptC-2.14 { | 
| # | 
| do_test corruptC-2.15 { | 
| db close | 
| -  copy_file test.bu test.db | 
| +  forcecopy test.bu test.db | 
| hexio_write test.db 986 b9 | 
| sqlite3 db test.db | 
| catchsql {SELECT count(*) FROM sqlite_master;} | 
| @@ -300,7 +302,7 @@ for {set tn 0} {$tn<$fsize} {incr tn 1} { | 
|  | 
| # setup for test | 
| db close | 
| -  copy_file test.bu test.db | 
| +  forcecopy test.bu test.db | 
| sqlite3 db test.db | 
|  | 
| # Seek to a random location in the file, and write a random single byte | 
|  |