From d5704a8961a237d07ad8c58ec550e439bf7e9ca9 Mon Sep 17 00:00:00 2001 From: drh Date: Mon, 14 Mar 2016 13:42:29 +0000 Subject: [PATCH 1/3] Run TCL tests in a subdirectory "testdir". FossilOrigin-Name: f632bba0d6ad3edc60f4127380ce8320378dac42 --- manifest | 16 ++++++++-------- manifest.uuid | 2 +- test/analyzer1.test | 9 ++++++--- test/tester.tcl | 13 ++++++++++++- 4 files changed, 27 insertions(+), 13 deletions(-) diff --git a/manifest b/manifest index 437c838595..be4618cf04 100644 --- a/manifest +++ b/manifest @@ -1,5 +1,5 @@ -C Fix\sa\smemory\sleak\sin\sfts5\sthat\scould\soccur\sfollowing\sa\ssyntax\serror\sin\sa\squery\sexpression. -D 2016-03-14T12:16:23.063 +C Run\sTCL\stests\sin\sa\ssubdirectory\s"testdir". +D 2016-03-14T13:42:29.333 F Makefile.in f53429fb2f313c099283659d0df6f20f932c861f F Makefile.linux-gcc 7bc79876b875010e8c8f9502eb935ca92aa3c434 F Makefile.msc df0bf9ff7f8b3f4dd9fb4cc43f92fe58f6ec5c66 @@ -460,7 +460,7 @@ F test/analyzeC.test 555a6cc388b9818b6eda6df816f01ce0a75d3a93 F test/analyzeD.test 42af58de25a6436502e43006e9e59e2d71bcb0cf F test/analyzeE.test 8684e8ac5722fb97c251887ad97e5d496a98af1d F test/analyzeF.test 5d1fe1024ba2dfea3c18bede8c1ccef8aba1ab34 -F test/analyzer1.test 498e2ff4b62740c2751c3a2f8b744fe26689fae9 +F test/analyzer1.test 459fa02c445ddbf0101a3bad47b34290a35f2e49 F test/async.test 1d0e056ba1bb9729283a0f22718d3a25e82c277b F test/async2.test c0a9bd20816d7d6a2ceca7b8c03d3d69c28ffb8b F test/async3.test d73a062002376d7edc1fe3edff493edbec1fc2f7 @@ -1085,7 +1085,7 @@ F test/tclsqlite.test 7fb866443c7deceed22b63948ccd6f76b52ad054 F test/tempdb.test bd92eba8f20e16a9136e434e20b280794de3cdb6 F test/temptable.test d2c9b87a54147161bcd1822e30c1d1cd891e5b30 F test/temptrigger.test 8ec228b0db5d7ebc4ee9b458fc28cb9e7873f5e1 -F test/tester.tcl 750365ff97047ded5f2d6e28df82a998f7c66ae0 +F test/tester.tcl 5e4888b6bfa9862716531c085a7d450d80427884 F test/thread001.test 9f22fd3525a307ff42a326b6bc7b0465be1745a5 F test/thread002.test e630504f8a06c00bf8bbe68528774dd96aeb2e58 F test/thread003.test ee4c9efc3b86a6a2767516a37bd64251272560a7 @@ -1456,7 +1456,7 @@ F vsixtest/vsixtest.tcl 6a9a6ab600c25a91a7acc6293828957a386a8a93 F vsixtest/vsixtest.vcxproj.data 2ed517e100c66dc455b492e1a33350c1b20fbcdc F vsixtest/vsixtest.vcxproj.filters 37e51ffedcdb064aad6ff33b6148725226cd608e F vsixtest/vsixtest_TemporaryKey.pfx e5b1b036facdb453873e7084e1cae9102ccc67a0 -P 10a827ae5f3f322af836c15e581fdc958a433a5a -R 044bc4807e350ab5b23a4e059317d425 -U dan -Z 7cd8dbc9719c56da8d0f172ae33ba6b2 +P 54b8968e335760105206b894672213c1d56771a4 +R 51c96c83fefb55fe62e20e36b1c079f2 +U drh +Z ad4f0a6837143665327a52812ce6dad2 diff --git a/manifest.uuid b/manifest.uuid index d8fc8d0201..837a8076f0 100644 --- a/manifest.uuid +++ b/manifest.uuid @@ -1 +1 @@ -54b8968e335760105206b894672213c1d56771a4 \ No newline at end of file +f632bba0d6ad3edc60f4127380ce8320378dac42 \ No newline at end of file diff --git a/test/analyzer1.test b/test/analyzer1.test index ac46704fba..51b5f8b6af 100644 --- a/test/analyzer1.test +++ b/test/analyzer1.test @@ -25,9 +25,12 @@ if {$tcl_platform(platform)=="windows"} { set PROG "./sqlite3_analyzer" } if {![file exe $PROG]} { - puts "analyzer1 cannot run because $PROG is not available" - finish_test - return + set PROG [file normalize [file join $::cmdlinearg(TESTFIXTURE_HOME) $PROG]] + if {![file exe $PROG]} { + puts "analyzer1 cannot run because $PROG is not available" + finish_test + return + } } db close forcedelete test.db test.db-journal test.db-wal diff --git a/test/tester.tcl b/test/tester.tcl index 231cef5333..e8d41fd4a2 100644 --- a/test/tester.tcl +++ b/test/tester.tcl @@ -411,6 +411,8 @@ if {[info exists cmdlinearg]==0} { # --match=$pattern # --verbose=$val # --output=$filename + # -q Reduce output + # --testdir=$dir Run tests in subdirectory $dir # --help # set cmdlinearg(soft-heap-limit) 0 @@ -425,6 +427,7 @@ if {[info exists cmdlinearg]==0} { set cmdlinearg(match) "" set cmdlinearg(verbose) "" set cmdlinearg(output) "" + set cmdlinearg(testdir) "testdir" set leftover [list] foreach a $argv { @@ -498,6 +501,9 @@ if {[info exists cmdlinearg]==0} { error "option --verbose= must be set to a boolean or to \"file\"" } } + {^-+testdir=.*$} { + foreach {dummy cmdlinearg(testdir)} [split $a =] break + } {.*help.*} { print_help_and_quit } @@ -507,10 +513,15 @@ if {[info exists cmdlinearg]==0} { } default { - lappend leftover $a + lappend leftover [file normalize $a] } } } + set cmdlinearg(TESTFIXTURE_HOME) [pwd] + if {$cmdlinearg(testdir)!=""} { + file mkdir $cmdlinearg(testdir) + cd $cmdlinearg(testdir) + } set argv $leftover # Install the malloc layer used to inject OOM errors. And the 'automatic' From bea14132cf8f814e52de30676f098c94a50c49b9 Mon Sep 17 00:00:00 2001 From: drh Date: Mon, 14 Mar 2016 14:28:43 +0000 Subject: [PATCH 2/3] Normalize the $testdir and $argv0 paths so that they continue to work in the testing subdirectory. FossilOrigin-Name: 19225b8130f1640772fc54250583b571a89063b6 --- manifest | 12 ++++++------ manifest.uuid | 2 +- test/tester.tcl | 2 ++ 3 files changed, 9 insertions(+), 7 deletions(-) diff --git a/manifest b/manifest index be4618cf04..8f5aa6a6b2 100644 --- a/manifest +++ b/manifest @@ -1,5 +1,5 @@ -C Run\sTCL\stests\sin\sa\ssubdirectory\s"testdir". -D 2016-03-14T13:42:29.333 +C Normalize\sthe\s$testdir\sand\s$argv0\spaths\sso\sthat\sthey\scontinue\sto\swork\nin\sthe\stesting\ssubdirectory. +D 2016-03-14T14:28:43.708 F Makefile.in f53429fb2f313c099283659d0df6f20f932c861f F Makefile.linux-gcc 7bc79876b875010e8c8f9502eb935ca92aa3c434 F Makefile.msc df0bf9ff7f8b3f4dd9fb4cc43f92fe58f6ec5c66 @@ -1085,7 +1085,7 @@ F test/tclsqlite.test 7fb866443c7deceed22b63948ccd6f76b52ad054 F test/tempdb.test bd92eba8f20e16a9136e434e20b280794de3cdb6 F test/temptable.test d2c9b87a54147161bcd1822e30c1d1cd891e5b30 F test/temptrigger.test 8ec228b0db5d7ebc4ee9b458fc28cb9e7873f5e1 -F test/tester.tcl 5e4888b6bfa9862716531c085a7d450d80427884 +F test/tester.tcl 91d34b1d829a25b63ad79160fafce8d626f433ef F test/thread001.test 9f22fd3525a307ff42a326b6bc7b0465be1745a5 F test/thread002.test e630504f8a06c00bf8bbe68528774dd96aeb2e58 F test/thread003.test ee4c9efc3b86a6a2767516a37bd64251272560a7 @@ -1456,7 +1456,7 @@ F vsixtest/vsixtest.tcl 6a9a6ab600c25a91a7acc6293828957a386a8a93 F vsixtest/vsixtest.vcxproj.data 2ed517e100c66dc455b492e1a33350c1b20fbcdc F vsixtest/vsixtest.vcxproj.filters 37e51ffedcdb064aad6ff33b6148725226cd608e F vsixtest/vsixtest_TemporaryKey.pfx e5b1b036facdb453873e7084e1cae9102ccc67a0 -P 54b8968e335760105206b894672213c1d56771a4 -R 51c96c83fefb55fe62e20e36b1c079f2 +P f632bba0d6ad3edc60f4127380ce8320378dac42 +R 22b406abedcbf80fe60cfc67f5d3bedf U drh -Z ad4f0a6837143665327a52812ce6dad2 +Z 43e678777243a6003b283ca0fdf3c95b diff --git a/manifest.uuid b/manifest.uuid index 837a8076f0..63fbc091c0 100644 --- a/manifest.uuid +++ b/manifest.uuid @@ -1 +1 @@ -f632bba0d6ad3edc60f4127380ce8320378dac42 \ No newline at end of file +19225b8130f1640772fc54250583b571a89063b6 \ No newline at end of file diff --git a/test/tester.tcl b/test/tester.tcl index e8d41fd4a2..d8b37579a6 100644 --- a/test/tester.tcl +++ b/test/tester.tcl @@ -517,7 +517,9 @@ if {[info exists cmdlinearg]==0} { } } } + set testdir [file normalize $testdir] set cmdlinearg(TESTFIXTURE_HOME) [pwd] + set argv0 [file normalize $argv0] if {$cmdlinearg(testdir)!=""} { file mkdir $cmdlinearg(testdir) cd $cmdlinearg(testdir) From e500f65a2c4b1d5df8053c33bc697721cf7733f3 Mon Sep 17 00:00:00 2001 From: drh Date: Mon, 14 Mar 2016 14:59:35 +0000 Subject: [PATCH 3/3] More file pathname normalization. FossilOrigin-Name: fa8c12921f8361f1889724bb7c5f7eca9c48b075 --- manifest | 12 ++++++------ manifest.uuid | 2 +- test/tester.tcl | 2 ++ 3 files changed, 9 insertions(+), 7 deletions(-) diff --git a/manifest b/manifest index 8f5aa6a6b2..5c365e1771 100644 --- a/manifest +++ b/manifest @@ -1,5 +1,5 @@ -C Normalize\sthe\s$testdir\sand\s$argv0\spaths\sso\sthat\sthey\scontinue\sto\swork\nin\sthe\stesting\ssubdirectory. -D 2016-03-14T14:28:43.708 +C More\sfile\spathname\snormalization. +D 2016-03-14T14:59:35.248 F Makefile.in f53429fb2f313c099283659d0df6f20f932c861f F Makefile.linux-gcc 7bc79876b875010e8c8f9502eb935ca92aa3c434 F Makefile.msc df0bf9ff7f8b3f4dd9fb4cc43f92fe58f6ec5c66 @@ -1085,7 +1085,7 @@ F test/tclsqlite.test 7fb866443c7deceed22b63948ccd6f76b52ad054 F test/tempdb.test bd92eba8f20e16a9136e434e20b280794de3cdb6 F test/temptable.test d2c9b87a54147161bcd1822e30c1d1cd891e5b30 F test/temptrigger.test 8ec228b0db5d7ebc4ee9b458fc28cb9e7873f5e1 -F test/tester.tcl 91d34b1d829a25b63ad79160fafce8d626f433ef +F test/tester.tcl 8fbf071b23ec66ce9bb8607fc92fdc4326393697 F test/thread001.test 9f22fd3525a307ff42a326b6bc7b0465be1745a5 F test/thread002.test e630504f8a06c00bf8bbe68528774dd96aeb2e58 F test/thread003.test ee4c9efc3b86a6a2767516a37bd64251272560a7 @@ -1456,7 +1456,7 @@ F vsixtest/vsixtest.tcl 6a9a6ab600c25a91a7acc6293828957a386a8a93 F vsixtest/vsixtest.vcxproj.data 2ed517e100c66dc455b492e1a33350c1b20fbcdc F vsixtest/vsixtest.vcxproj.filters 37e51ffedcdb064aad6ff33b6148725226cd608e F vsixtest/vsixtest_TemporaryKey.pfx e5b1b036facdb453873e7084e1cae9102ccc67a0 -P f632bba0d6ad3edc60f4127380ce8320378dac42 -R 22b406abedcbf80fe60cfc67f5d3bedf +P 19225b8130f1640772fc54250583b571a89063b6 +R e6d4ff0cfaea5c603741eca2f2c0aea1 U drh -Z 43e678777243a6003b283ca0fdf3c95b +Z f2a7315c22032835cedc7ee778272809 diff --git a/manifest.uuid b/manifest.uuid index 63fbc091c0..4c4029ef69 100644 --- a/manifest.uuid +++ b/manifest.uuid @@ -1 +1 @@ -19225b8130f1640772fc54250583b571a89063b6 \ No newline at end of file +fa8c12921f8361f1889724bb7c5f7eca9c48b075 \ No newline at end of file diff --git a/test/tester.tcl b/test/tester.tcl index d8b37579a6..6dc507f70e 100644 --- a/test/tester.tcl +++ b/test/tester.tcl @@ -457,6 +457,7 @@ if {[info exists cmdlinearg]==0} { } {^-+binarylog=.+$} { foreach {dummy cmdlinearg(binarylog)} [split $a =] break + set cmdlinearg(binarylog) [file normalize $cmdlinearg(binarylog)] } {^-+soak=.+$} { foreach {dummy cmdlinearg(soak)} [split $a =] break @@ -489,6 +490,7 @@ if {[info exists cmdlinearg]==0} { {^-+output=.+$} { foreach {dummy cmdlinearg(output)} [split $a =] break + set cmdlinearg(output) [file normalize $cmdlinearg(output)] if {$cmdlinearg(verbose)==""} { set cmdlinearg(verbose) 2 }