| Index: third_party/sqlite/src/test/misc7.test | 
| diff --git a/third_party/sqlite/src/test/misc7.test b/third_party/sqlite/src/test/misc7.test | 
| index 7d2ba6e8527958e48e4b73614234e0905d0a964e..8fd5fe754620713b95634277515f6965d48f17e6 100644 | 
| --- a/third_party/sqlite/src/test/misc7.test | 
| +++ b/third_party/sqlite/src/test/misc7.test | 
| @@ -15,9 +15,11 @@ | 
| set testdir [file dirname $argv0] | 
| source $testdir/tester.tcl | 
|  | 
| -do_test misc7-1-misuse { | 
| -  c_misuse_test | 
| -} {} | 
| +if {[clang_sanitize_address]==0} { | 
| +  do_test misc7-1-misuse { | 
| +    c_misuse_test | 
| +  } {} | 
| +} | 
|  | 
| do_test misc7-2 { | 
| c_realloc_test | 
| @@ -30,7 +32,7 @@ do_test misc7-3 { | 
| # Try to open a directory: | 
| # | 
| do_test misc7-4 { | 
| -  file delete mydir | 
| +  delete_file mydir | 
| file mkdir mydir | 
| set rc [catch { | 
| sqlite3 db2 ./mydir | 
| @@ -41,7 +43,7 @@ do_test misc7-4 { | 
| # Try to open a file with a directory where its journal file should be. | 
| # | 
| do_test misc7-5 { | 
| -  file delete mydir | 
| +  delete_file mydir | 
| file mkdir mydir-journal | 
| sqlite3 db2 ./mydir | 
| catchsql { | 
| @@ -151,9 +153,15 @@ db2 close | 
| # Test that nothing goes horribly wrong when attaching a database | 
| # after the omit_readlock pragma has been exercised. | 
| # | 
| +# Note:  The PRAGMA omit_readlock was an early hack to disable the | 
| +# fcntl() calls for read-only databases so that read-only databases could | 
| +# be read on broken NFS systems.  That pragma has now been removed. | 
| +# (Use the unix-none VFS as a replacement, if needed.)  But these tests | 
| +# do not really depend on omit_readlock, so we left them in place. | 
| +# | 
| do_test misc7-7.1 { | 
| -  file delete -force test2.db | 
| -  file delete -force test2.db-journal | 
| +  forcedelete test2.db | 
| +  forcedelete test2.db-journal | 
| execsql { | 
| PRAGMA omit_readlock = 1; | 
| ATTACH 'test2.db' AS aux; | 
| @@ -254,8 +262,8 @@ ifcapable vtab { | 
| } | 
|  | 
| db close | 
| -file delete -force test.db | 
| -file delete -force test.db-journal | 
| +forcedelete test.db | 
| +forcedelete test.db-journal | 
| sqlite3 db test.db | 
|  | 
| ifcapable explain { | 
| @@ -263,23 +271,23 @@ ifcapable explain { | 
| CREATE TABLE abc(a PRIMARY KEY, b, c); | 
| EXPLAIN QUERY PLAN SELECT * FROM abc AS t2 WHERE rowid = 1; | 
| } { | 
| -    0 0 0 {SEARCH TABLE abc AS t2 USING INTEGER PRIMARY KEY (rowid=?) (~1 rows)} | 
| +    0 0 0 {SEARCH TABLE abc AS t2 USING INTEGER PRIMARY KEY (rowid=?)} | 
| } | 
| do_execsql_test misc7-14.2 { | 
| EXPLAIN QUERY PLAN SELECT * FROM abc AS t2 WHERE a = 1; | 
| } {0 0 0 | 
| -     {SEARCH TABLE abc AS t2 USING INDEX sqlite_autoindex_abc_1 (a=?) (~1 rows)} | 
| +     {SEARCH TABLE abc AS t2 USING INDEX sqlite_autoindex_abc_1 (a=?)} | 
| } | 
| do_execsql_test misc7-14.3 { | 
| EXPLAIN QUERY PLAN SELECT * FROM abc AS t2 ORDER BY a; | 
| } {0 0 0 | 
| -     {SCAN TABLE abc AS t2 USING INDEX sqlite_autoindex_abc_1 (~1000000 rows)} | 
| +     {SCAN TABLE abc AS t2 USING INDEX sqlite_autoindex_abc_1} | 
| } | 
| } | 
|  | 
| db close | 
| -file delete -force test.db | 
| -file delete -force test.db-journal | 
| +forcedelete test.db | 
| +forcedelete test.db-journal | 
| sqlite3 db test.db | 
|  | 
| #-------------------------------------------------------------------- | 
| @@ -323,8 +331,8 @@ do_test misc7-15.2 { | 
| } {} | 
|  | 
| db close | 
| -file delete -force test.db | 
| -file delete -force test.db-journal | 
| +forcedelete test.db | 
| +forcedelete test.db-journal | 
| sqlite3 db test.db | 
|  | 
| do_ioerr_test misc7-16 -sqlprep { | 
| @@ -349,7 +357,7 @@ do_ioerr_test misc7-16 -sqlprep { | 
| COMMIT; | 
| }} msg] | 
|  | 
| -  if {!$rc || ($rc && [string first "columns" $msg]==0)} { | 
| +  if {!$rc || ($rc && [string first "UNIQUE" $msg]==0)} { | 
| set msg | 
| } else { | 
| error $msg | 
| @@ -371,7 +379,7 @@ do_test misc7-16.X { | 
| # These tests do not work on windows due to restrictions in the | 
| # windows file system. | 
| # | 
| -if {$tcl_platform(platform)!="windows" && $tcl_platform(platform)!="os2"} { | 
| +if {$tcl_platform(platform)!="windows"} { | 
|  | 
| # Some network filesystems (ex: AFP) do not support setting read-only | 
| # permissions.  Only run these tests if full unix permission setting | 
| @@ -385,15 +393,15 @@ if {$tcl_platform(platform)!="windows" && $tcl_platform(platform)!="os2"} { | 
| BEGIN; | 
| DELETE FROM t3 WHERE (oid%3)==0; | 
| } | 
| -      copy_file test.db bak.db | 
| -      copy_file test.db-journal bak.db-journal | 
| +      forcecopy test.db bak.db | 
| +      forcecopy test.db-journal bak.db-journal | 
| execsql { | 
| COMMIT; | 
| } | 
|  | 
| db close | 
| -      copy_file bak.db test.db | 
| -      copy_file bak.db-journal test.db-journal | 
| +      forcecopy bak.db test.db | 
| +      forcecopy bak.db-journal test.db-journal | 
| sqlite3 db test.db | 
|  | 
| catch {file attributes test.db-journal -permissions r--------} | 
| @@ -477,13 +485,41 @@ do_test misc7-20.1 { | 
| # Try to open a really long file name. | 
| # | 
| do_test misc7-21.1 { | 
| -  set zFile [file join [pwd] "[string repeat abcde 104].db"] | 
| +  set zFile [file join [get_pwd] "[string repeat abcde 104].db"] | 
| set rc [catch {sqlite3 db2 $zFile} msg] | 
| list $rc $msg | 
| } {1 {unable to open database file}} | 
|  | 
| +# Try to do hot-journal rollback with a read-only connection. The | 
| +# error code should be SQLITE_READONLY_ROLLBACK. | 
| +# | 
| +do_test misc7-22.1 { | 
| +  db close | 
| +  forcedelete test.db copy.db-journal | 
| +  sqlite3 db test.db | 
| +  execsql { | 
| +    CREATE TABLE t1(a, b); | 
| +    INSERT INTO t1 VALUES(1, 2); | 
| +    INSERT INTO t1 VALUES(3, 4); | 
| +  } | 
| +  db close | 
| +  sqlite3 db test.db -readonly 1 | 
| +  catchsql { | 
| +    INSERT INTO t1 VALUES(5, 6); | 
| +  } | 
| +} {1 {attempt to write a readonly database}} | 
| +do_test misc7-22.2 { execsql { SELECT * FROM t1 } } {1 2 3 4} | 
| +do_test misc7-22.3 { | 
| +  set fd [open test.db-journal w] | 
| +  puts $fd [string repeat abc 1000] | 
| +  close $fd | 
| +  catchsql { SELECT * FROM t1 } | 
| +} {1 {attempt to write a readonly database}} | 
| +do_test misc7-22.4 { | 
| +  sqlite3_extended_errcode db | 
| +} SQLITE_READONLY_ROLLBACK | 
|  | 
| db close | 
| -file delete -force test.db | 
| +forcedelete test.db | 
|  | 
| finish_test | 
|  |