From: dan Date: Sat, 12 Aug 2023 19:25:26 +0000 (+0000) Subject: Fix testrunner.tcl so that it restarts itself using [testfixture] if its current... X-Git-Tag: version-3.43.0~50 X-Git-Url: http://git.ipfire.org/?a=commitdiff_plain;h=890a9ede3b01e8971cd812c820661558207cd1ca;p=thirdparty%2Fsqlite.git Fix testrunner.tcl so that it restarts itself using [testfixture] if its current interpreter does not support [package require sqlite3]. FossilOrigin-Name: 408be98dddf500f2d6c9049703997836d80d156d86cf297f664175a107f7331e --- diff --git a/manifest b/manifest index 32660b8a08..8048b098e7 100644 --- a/manifest +++ b/manifest @@ -1,5 +1,5 @@ -C Have\sthe\smdevtest\starget\ssupport\sthe\sOPTS\svariable\son\sunix. -D 2023-08-12T18:23:38.196 +C Fix\stestrunner.tcl\sso\sthat\sit\srestarts\sitself\susing\s[testfixture]\sif\sits\scurrent\sinterpreter\sdoes\snot\ssupport\s[package\srequire\ssqlite3]. +D 2023-08-12T19:25:26.853 F .fossil-settings/empty-dirs dbb81e8fc0401ac46a1491ab34a7f2c7c0452f2f06b54ebb845d024ca8283ef1 F .fossil-settings/ignore-glob 35175cdfcf539b2318cb04a9901442804be81cd677d8b889fcc9149c21f239ea F LICENSE.md df5091916dbb40e6e9686186587125e1b2ff51f022cc334e886c19a0e9982724 @@ -1562,7 +1562,7 @@ F test/temptable2.test 76821347810ecc88203e6ef0dd6897b6036ac788e9dd3e6b04fd4d163 F test/temptable3.test d11a0974e52b347e45ee54ef1923c91ed91e4637 F test/temptrigger.test 38f0ca479b1822d3117069e014daabcaacefffcc F test/tester.tcl 68454ef88508c196d19e8694daa27bff7107a91857799eaa12f417188ae53ede -F test/testrunner.tcl 3d34b921c035e36a65aa83ff86c90e025e5f49a7b60a1c659295ce203ec43d37 +F test/testrunner.tcl 0cf11ad8611e483f47e73d4893df855790c98fa610bc932316d194ea9fc4bb8a F test/testrunner_data.tcl 8169c68654ac8906833b8a6aadca973358a441ebf88270dd05c153e5f96f76b8 F test/thread001.test a0985c117eab62c0c65526e9fa5d1360dd1cac5b03bde223902763274ce21899 F test/thread002.test c24c83408e35ba5a952a3638b7ac03ccdf1ce4409289c54a050ac4c5f1de7502 @@ -2051,8 +2051,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 af354fbc0be06d5792a1e712ec4e9cec4c6cb4521335aa31f8f51ca5c94499ae -R 99fdc031851985867d9a29bdef499f9f +P 940f58d9b944d3344b40a4bc020842d9b6703685c9c51f4010e265afd98608ff +R 8eaf8f3ae70d104a58df886c85da18b1 U dan -Z 5f290b1952fc6dd878813fd1db55896a +Z 4074f3c8050d02c7dea851ab48461f73 # Remove this line to create a well-formed Fossil manifest. diff --git a/manifest.uuid b/manifest.uuid index 6b7ded816c..f47e15349e 100644 --- a/manifest.uuid +++ b/manifest.uuid @@ -1 +1 @@ -940f58d9b944d3344b40a4bc020842d9b6703685c9c51f4010e265afd98608ff \ No newline at end of file +408be98dddf500f2d6c9049703997836d80d156d86cf297f664175a107f7331e \ No newline at end of file diff --git a/test/testrunner.tcl b/test/testrunner.tcl index a51c7ae42a..e927a4f051 100644 --- a/test/testrunner.tcl +++ b/test/testrunner.tcl @@ -8,10 +8,36 @@ source [file join $testdir permutations.test] set argv $saved cd $dir +# This script requires an interpreter that supports [package require sqlite3] +# to run. If this is not such an intepreter, see if there is a [testfixture] +# in the current directory. If so, run the command using it. If not, +# recommend that the user build one. +# +proc find_interpreter {} { + set interpreter [file tail [info nameofexec]] + set rc [catch { package require sqlite3 }] + if {$rc} { + if { [string match -nocase testfixture* $interpreter]==0 + && [file executable ./testfixture] + } { + puts "Failed to find tcl package sqlite3. Restarting with ./testfixture.." + set status [catch { + exec ./testfixture [info script] {*}$::argv >@ stdout + } msg] + exit $status + } + } + if {$rc} { + puts stderr "Failed to find tcl package sqlite3" + puts stderr "Run \"make testfixture\" and then try again..." + exit 1 + } +} +find_interpreter + # Usually this script is run by [testfixture]. But it can also be run -# by a regular [tclsh]. For these cases, load the sqlite3 package and -# implement a [clock_milliseconds] command. -package require sqlite3 +# by a regular [tclsh]. For these cases, emulate the [clock_milliseconds] +# command. if {[info commands clock_milliseconds]==""} { proc clock_milliseconds {} { clock milliseconds