From: drh <> Date: Sat, 16 Nov 2024 23:32:56 +0000 (+0000) Subject: Add simple test cases. In doing so I found that the feature does not work X-Git-Url: http://git.ipfire.org/?a=commitdiff_plain;h=30d5b2fd21adc7e6c4d55e16e2f178dfc8a766f3;p=thirdparty%2Fsqlite.git Add simple test cases. In doing so I found that the feature does not work on a Linux ramdisk. FossilOrigin-Name: 80b98446fc070d9a2ab5816dd941cb829f067b2fcf2a3db7a19bf73806fbcdcc --- diff --git a/manifest b/manifest index 37e59198e2..5a46a8e357 100644 --- a/manifest +++ b/manifest @@ -1,5 +1,5 @@ -C Merge\sall\sthe\slatest\strunk\senhancements\sinto\sthe\scommit-and-continue\sbranch. -D 2024-11-16T18:59:31.678 +C Add\ssimple\stest\scases.\s\sIn\sdoing\sso\sI\sfound\sthat\sthe\sfeature\sdoes\snot\swork\non\sa\sLinux\sramdisk. +D 2024-11-16T23:32:56.155 F .fossil-settings/empty-dirs dbb81e8fc0401ac46a1491ab34a7f2c7c0452f2f06b54ebb845d024ca8283ef1 F .fossil-settings/ignore-glob 35175cdfcf539b2318cb04a9901442804be81cd677d8b889fcc9149c21f239ea F LICENSE.md e108e1e69ae8e8a59e93c455654b8ac9356a11720d3345df2a4743e9590fb20d @@ -1888,6 +1888,7 @@ F test/trace3.test 4f418ed30d15d9d17dcf13a17f0bd99a92e3038e038798e35db7525f82f4c F test/trans.test 45f6f9ab6f66a7b5744f1caac06b558f95da62501916906cf55586a896f9f439 F test/trans2.test 62bd045bfc7a1c14c5ba83ba64d21ade31583f76 F test/trans3.test 91a100e5412b488e22a655fe423a14c26403ab94 +F test/trans4.test 9f6b30b09e9475a0b0590db5a71c09596e1546a9ec508ed73cddd5d812e2aad3 F test/transitive1.test f8ee983600b33d167da1885657f064aec404e1c0d0bc8765fdf163f4c749237a F test/trigger1.test 2834f8830a1ae338d95c2e3ea0c2a7bc4cda126cdeb715004cf0fd071892e44f F test/trigger2.test 30fcb3a6aa6782020d47968735ee6086ed795f73a7affa9406c8d5a36e7b5265 @@ -2189,7 +2190,7 @@ F tool/stack_usage.tcl f8e71b92cdb099a147dad572375595eae55eca43 F tool/stripccomments.c 20b8aabc4694d0d4af5566e42da1f1a03aff057689370326e9269a9ddcffdc37 F tool/symbols-mingw.sh 4dbcea7e74768305384c9fd2ed2b41bbf9f0414d F tool/symbols.sh 1612bd947750e21e7b47befad5f6b3825b06cce0705441f903bf35ced65ae9b9 -F tool/tclConfigShToAutoDef.sh 44ec55046d86a3febb2cb3e099399b41794e80e9cd138eee7b9b016f819e882b x tool/tclConfigShToTcl.sh +F tool/tclConfigShToAutoDef.sh 44ec55046d86a3febb2cb3e099399b41794e80e9cd138eee7b9b016f819e882b x F tool/tclConfigShToMake.sh 7c065d81c2d178e15e45a77372c6e5a38b5a1b08755301cd6f20a3a862db7312 x F tool/varint.c 5d94cb5003db9dbbcbcc5df08d66f16071aee003 F tool/vdbe-compress.tcl fa2f37ab39b2a0087fafb6a7f3ce19503e25e624ffa8ed9951717ab72920c088 @@ -2198,8 +2199,8 @@ F tool/version-info.c 3b36468a90faf1bbd59c65fd0eb66522d9f941eedd364fabccd7227350 F tool/warnings-clang.sh bbf6a1e685e534c92ec2bfba5b1745f34fb6f0bc2a362850723a9ee87c1b31a7 F tool/warnings.sh 49a486c5069de041aedcbde4de178293e0463ae9918ecad7539eedf0ec77a139 F tool/win/sqlite.vsix deb315d026cc8400325c5863eef847784a219a2f -P 17360660bbaf1b6009fc608f9687914789853f25ae38c1377a1ea5e5a621f34c c38b9db3c4f71706a7d211424da64311e6e5daf64b224565a6d82d4b1a68e261 -R 26d31ce98a5c77002d0edaeed13cd540 +P d217b4847ecc4b3ce3eb3d1dc5e4774758d1f1f93b0df02c11f3c5944557c799 +R 5909ae71df1633b40ad9d4a2b82a36e8 U drh -Z 9bd21c0b05972923def930ceb9c3b683 +Z 8146320975380736b73f05c691b3a25e # Remove this line to create a well-formed Fossil manifest. diff --git a/manifest.uuid b/manifest.uuid index bc92ab6efb..d2adc23ce6 100644 --- a/manifest.uuid +++ b/manifest.uuid @@ -1 +1 @@ -d217b4847ecc4b3ce3eb3d1dc5e4774758d1f1f93b0df02c11f3c5944557c799 +80b98446fc070d9a2ab5816dd941cb829f067b2fcf2a3db7a19bf73806fbcdcc diff --git a/test/trans4.test b/test/trans4.test new file mode 100644 index 0000000000..99cf18ec43 --- /dev/null +++ b/test/trans4.test @@ -0,0 +1,95 @@ +# 2024-11-16 +# +# The author disclaims copyright to this source code. In place of +# a legal notice, here is a blessing: +# +# May you do good and not evil. +# May you find forgiveness for yourself and forgive others. +# May you share freely, never taking more than you give. +# +#*********************************************************************** +# +# Test cases for COMMIT AND CONTINUE TRANSACTION. +# +set testdir [file dirname $argv0] +source $testdir/tester.tcl +unset -nocomplain ecode + +db close +sqlite3 db test.db +sqlite3 db2 test.db +do_execsql_test -db db2 trans4-1.1 { + CREATE TABLE t1(x); + BEGIN; + INSERT INTO t1 VALUES(1),(2),(3); + SELECT * FROM t1; +} {1 2 3} + +do_catchsql_test trans4-1.2 { + SELECT * FROM t1; +} {0 {}} + +do_execsql_test -db db2 trans4-1.3 { + COMMIT AND CONTINUE TRANSACTION; +} + +do_catchsql_test trans4-1.4 { + SELECT * FROM t1; +} {1 {database is locked}} + +do_execsql_test -db db2 trans4-1.5 { + INSERT INTO t1 VALUES(4); + INSERT INTO t1 VALUES(5); + COMMIT; +} + +do_catchsql_test trans4-1.6 { + SELECT * FROM t1; +} {0 {1 2 3 4 5}} + +db2 close +db eval {PRAGMA journal_mode=WAL; VACUUM;} +sqlite3 db2 test.db + +do_execsql_test -db db2 trans4-2.1 { + DELETE FROM t1; + BEGIN; + INSERT INTO t1 VALUES(1),(2),(3); + SELECT * FROM t1; +} {1 2 3} + +do_catchsql_test trans4-2.2 { + SELECT * FROM t1; +} {0 {}} + +do_execsql_test -db db2 trans4-2.3 { + COMMIT AND CONTINUE TRANSACTION; + INSERT INTO t1 VALUES(4); +} + +do_catchsql_test trans4-2.4 { + SELECT * FROM t1; +} {0 {1 2 3}} + +do_execsql_test -db db2 trans4-2.5 { + INSERT INTO t1 VALUES(5); + COMMIT; +} + +do_catchsql_test trans4-2.6 { + SELECT * FROM t1; +} {0 {1 2 3 4 5}} + +do_catchsql_test trans4-3.1 { + BEGIN; + COMMIT AND continuex TRANSACTION; +} {1 {near "continuex": syntax error}} +do_catchsql_test trans4-3.2 { + COMMIT AND continue; +} {1 {near ";": syntax error}} +do_catchsql_test trans4-3.3 { + COMMIT AND continue Transaction; +} {0 {}} +db2 close + +finish_test