]> git.ipfire.org Git - thirdparty/sqlite.git/commitdiff
Add tests for structured-exception-handling and wal2. Fix a problem with the same. wal2-shm-exceptions
authordan <Dan Kennedy>
Thu, 10 Aug 2023 21:20:34 +0000 (21:20 +0000)
committerdan <Dan Kennedy>
Thu, 10 Aug 2023 21:20:34 +0000 (21:20 +0000)
FossilOrigin-Name: 87242777ec869d698c5c78283b98677105e8b5a8b0d8b71a696b8460d4303783

manifest
manifest.uuid
src/wal.c
test/walseh1.test

index 7664ce83c8875be9f4c60153fcd7015b76c4ee38..c5504f82b380c64d60a910fac8f81ca62bc7f21b 100644 (file)
--- a/manifest
+++ b/manifest
@@ -1,5 +1,5 @@
-C Experimental\smerge\sof\sthe\swal-shm-exceptions\sand\swal2\sbranches.
-D 2023-08-10T18:58:07.618
+C Add\stests\sfor\sstructured-exception-handling\sand\swal2.\sFix\sa\sproblem\swith\sthe\ssame.
+D 2023-08-10T21:20:34.013
 F .fossil-settings/empty-dirs dbb81e8fc0401ac46a1491ab34a7f2c7c0452f2f06b54ebb845d024ca8283ef1
 F .fossil-settings/ignore-glob 35175cdfcf539b2318cb04a9901442804be81cd677d8b889fcc9149c21f239ea
 F LICENSE.md df5091916dbb40e6e9686186587125e1b2ff51f022cc334e886c19a0e9982724
@@ -728,7 +728,7 @@ F src/vdbetrace.c fe0bc29ebd4e02c8bc5c1945f1d2e6be5927ec12c06d89b03ef2a4def34bf8
 F src/vdbevtab.c 57fa8f56478e5b5cb558cb425e7878515e0a105c54f96f1d1bbf4b9433529254
 F src/vtab.c 1ecf8c3745d29275688d583e12822fa984d421e0286b5ef50c137bc3bf6d7a64
 F src/vxworks.h d2988f4e5a61a4dfe82c6524dd3d6e4f2ce3cdb9
-F src/wal.c 15cf63e763e2613c89f5dd20e150e715f4dcc836a0488342a1ab60939ff4951e
+F src/wal.c 1ea71da11648befe8be082d0ef6adad144435a827d7ae1593da1bf375482c21d
 F src/wal.h a3e64f463acf027f041c2081841e15e8c81c56d0daa45e308df423d9d66fd5a7
 F src/walker.c 7c7ea0115345851c3da4e04e2e239a29983b61fb5b038b94eede6aba462640e2
 F src/where.c b8917792f1e0dbfa28fb29e6cd3d560060d69667be0ba4c491cbc772363264f5
@@ -1873,7 +1873,7 @@ F test/walprotocol2.test 7e4bedd5ee83607e2928ac438bf7332a396b980d3e02aa0746509ce
 F test/walro.test cb438d05ba0d191f10b688e39c4f0cd5b71569a1d1f4440e5bdf3c6880e08c20
 F test/walro2.test 33955a6fd874dd9724005e17f77fef89d334b3171454a1256fe4941a96766cdc
 F test/walrofault.test c70cb6e308c443867701856cce92ad8288cd99488fa52afab77cca6cfd51af68
-F test/walseh1.test 82da37763b0d87942dccd191e58321532ce3d44b87ef36e04ff9ce13f382bbae
+F test/walseh1.test 5971f753bd3504ac485ef2dd228894f6bbd20f6711f8e6ee65d62c7dc1a134c8
 F test/walsetlk.test 34c901443b31ab720afc463f5b236c86ca5c4134402573dce91aa0761de8db5a
 F test/walshared.test 42e3808582504878af237ea02c42ca793e8a0efaa19df7df26ac573370dbc7a3
 F test/walslow.test c05c68d4dc2700a982f89133ce103a1a84cc285f
@@ -2065,11 +2065,8 @@ F vsixtest/vsixtest.tcl 6a9a6ab600c25a91a7acc6293828957a386a8a93
 F vsixtest/vsixtest.vcxproj.data 2ed517e100c66dc455b492e1a33350c1b20fbcdc
 F vsixtest/vsixtest.vcxproj.filters 37e51ffedcdb064aad6ff33b6148725226cd608e
 F vsixtest/vsixtest_TemporaryKey.pfx e5b1b036facdb453873e7084e1cae9102ccc67a0
-P ae7f3bcb5babfa50084f5b4d3c5663489dbf306440706152642b7f0fb47fa1f5 3ed89c344fcb3b7ee8b764d95144643e42e053e1116150d6eda8355fbd6669df
-R 6d5e54ac94c2b0ca3b4f8e1bb783c1f1
-T *branch * wal2-shm-exceptions
-T *sym-wal2-shm-exceptions *
-T -sym-wal2 *
+P fd58c616244dc70a2d6c17b62830398cea8177366828260882df5ab1f361a347
+R 8c982794323889a4cb5909db4c119431
 U dan
-Z 906ed34078bfe0eb7b259e1913b75925
+Z fd542a929c1ac4ec2e467c191acdf6ca
 # Remove this line to create a well-formed Fossil manifest.
index c62ef76cad1ed35c5c919e8431b02fd042b9c9fc..0d3d5fdd096815b9b056c9445c9af93c66a1de91 100644 (file)
@@ -1 +1 @@
-fd58c616244dc70a2d6c17b62830398cea8177366828260882df5ab1f361a347
\ No newline at end of file
+87242777ec869d698c5c78283b98677105e8b5a8b0d8b71a696b8460d4303783
\ No newline at end of file
index 3e7207a5c696f2e4b781fe46480eb0a26406eac1..b96a0c6be549d8885bcb458b5c0fab7663a28972 100644 (file)
--- a/src/wal.c
+++ b/src/wal.c
@@ -3119,12 +3119,14 @@ int sqlite3WalClose(
 
         if( isWalMode2(pWal)==0 ) break;
 
-        walCkptInfo(pWal)->nBackfill = 0;
-        walidxSetFile(&pWal->hdr, !walidxGetFile(&pWal->hdr));
-        pWal->writeLock = 1;
-        walIndexWriteHdr(pWal);
-        pWal->writeLock = 0;
-
+        SEH_TRY {
+          walCkptInfo(pWal)->nBackfill = 0;
+          walidxSetFile(&pWal->hdr, !walidxGetFile(&pWal->hdr));
+          pWal->writeLock = 1;
+          walIndexWriteHdr(pWal);
+          pWal->writeLock = 0;
+        } 
+        SEH_EXCEPT( rc = SQLITE_IOERR_IN_PAGE; )
       }
     }
 
index c3a655f534c3a3c175dbad673799acddeca0fade..e61e2edca7b3b0d85eda8687523c8c7ba386d18a 100644 (file)
@@ -56,15 +56,22 @@ proc test_system_errno {db expect} {
   }  
 }
 
-do_execsql_test 1.0 {
-  PRAGMA journal_mode = wal;
+foreach {tn jmode} {
+  1 wal
+  2 wal2
+} {
+
+reset_db
+
+do_execsql_test $tn.1.0 "
+  PRAGMA journal_mode = $jmode;
   CREATE TABLE t1(x, y);
   INSERT INTO t1 VALUES(1, 2);
   INSERT INTO t1 VALUES(3, 4);
-} {wal}
+" $jmode
 faultsim_save_and_close
 
-do_faultsim_test 1 -faults seh -prep {
+do_faultsim_test $tn.1 -faults seh -prep {
   catch { db2 close }
   faultsim_restore_and_reopen
   execsql { SELECT * FROM sqlite_schema } 
@@ -79,7 +86,7 @@ catch { db2 close }
 
 faultsim_save_and_close
 
-do_faultsim_test 2 -faults seh -prep {
+do_faultsim_test $tn.2 -faults seh -prep {
   catch { db close }
   faultsim_restore_and_reopen
 } -body {
@@ -89,7 +96,7 @@ do_faultsim_test 2 -faults seh -prep {
   if {$testrc} { test_system_errno db $::seh_errno }
 }
 
-do_faultsim_test 3 -faults seh -prep {
+do_faultsim_test $tn.3 -faults seh -prep {
   catch { db close }
   faultsim_restore_and_reopen
 } -body {
@@ -100,7 +107,7 @@ do_faultsim_test 3 -faults seh -prep {
   if {$testrc} { test_system_errno db $::seh_errno }
 }
 
-do_faultsim_test 4 -faults seh -prep {
+do_faultsim_test $tn.4 -faults seh -prep {
   catch { db close }
   faultsim_restore_and_reopen
 } -body {
@@ -113,7 +120,7 @@ do_faultsim_test 4 -faults seh -prep {
 }
 catch { db close }
 
-do_faultsim_test 5 -faults seh -prep {
+do_faultsim_test $tn.5 -faults seh -prep {
   catch { db close }
   faultsim_restore_and_reopen
   execsql {
@@ -132,7 +139,7 @@ do_faultsim_test 5 -faults seh -prep {
 }
 catch { db close }
 
-do_faultsim_test 6 -faults seh -prep {
+do_faultsim_test $tn.6 -faults seh -prep {
   catch { db close }
   faultsim_restore_and_reopen
 } -body {
@@ -145,6 +152,8 @@ do_faultsim_test 6 -faults seh -prep {
 }
 catch { db close }
 
+}
+
 finish_test