]> git.ipfire.org Git - thirdparty/sqlite.git/commitdiff
Add the catchcmd_collapse_space command and use it to help make shell testing
authordrh <drh@noemail.net>
Fri, 25 Mar 2016 17:09:16 +0000 (17:09 +0000)
committerdrh <drh@noemail.net>
Fri, 25 Mar 2016 17:09:16 +0000 (17:09 +0000)
more robust against TCL space escapes.

FossilOrigin-Name: 93caabb66082f76ef161a51ac822b919517a7171

manifest
manifest.uuid
test/shell1.test
test/tester.tcl

index 9995948b77834a594f4ddd600896c625b6994010..b34eb55e7043afc0533adaff4a8c106bed0c370a 100644 (file)
--- a/manifest
+++ b/manifest
@@ -1,5 +1,5 @@
-C Fix\stwo\sinstances\sof\sundefined\sbehavior\sin\sthe\sC\scode\s-\sboth\sharmless\sfor\nall\scurrent\scompilers.
-D 2016-03-25T12:10:32.929
+C Add\sthe\scatchcmd_collapse_space\scommand\sand\suse\sit\sto\shelp\smake\sshell\stesting\nmore\srobust\sagainst\sTCL\sspace\sescapes.
+D 2016-03-25T17:09:16.750
 F Makefile.in f53429fb2f313c099283659d0df6f20f932c861f
 F Makefile.linux-gcc 7bc79876b875010e8c8f9502eb935ca92aa3c434
 F Makefile.msc df0bf9ff7f8b3f4dd9fb4cc43f92fe58f6ec5c66
@@ -1028,7 +1028,7 @@ F test/sharedA.test 0cdf1a76dfa00e6beee66af5b534b1e8df2720f5
 F test/sharedB.test 16cc7178e20965d75278f410943109b77b2e645e
 F test/shared_err.test 2f2aee20db294b9924e81f6ccbe60f19e21e8506
 F test/sharedlock.test 5ede3c37439067c43b0198f580fd374ebf15d304
-F test/shell1.test 94538224ee7b7a52952dea67d2633b358abde271
+F test/shell1.test 12d1774936facc17a889e0c31877670ef5526f8c
 F test/shell2.test 2e7a32c9ee03c6398478637d72416d5b9ebd9777
 F test/shell3.test c39453d3012a39ffec944566eca8a6bda10a2284
 F test/shell4.test 69995ee1cc278eb149aa8746ce1f935f4eaf98b9
@@ -1088,7 +1088,7 @@ F test/tclsqlite.test c6d9f546f79d15d0134c1e06583fb3ee0c3afad3
 F test/tempdb.test bd92eba8f20e16a9136e434e20b280794de3cdb6
 F test/temptable.test d2c9b87a54147161bcd1822e30c1d1cd891e5b30
 F test/temptrigger.test 8ec228b0db5d7ebc4ee9b458fc28cb9e7873f5e1
-F test/tester.tcl f2b99e912d4da1e5755969b8614febd883885c8b
+F test/tester.tcl 5604f2697e8fa9b12b6180122d84e1a9093ca8a3
 F test/thread001.test 9f22fd3525a307ff42a326b6bc7b0465be1745a5
 F test/thread002.test e630504f8a06c00bf8bbe68528774dd96aeb2e58
 F test/thread003.test ee4c9efc3b86a6a2767516a37bd64251272560a7
@@ -1459,7 +1459,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 817e93f42c09eb876421e27eb8eceb7b077cb45d
-R aca0111531dd13b444e2634c40aa3c16
+P 99fd194c83dbcfcdcc582983b86678b85b1b9570
+R cfe872b896f4c791395847cc13daead3
 U drh
-Z a7abe0dd0ebfdb648c54f66b764dd2a5
+Z 0d389fd777e66fc5d8e3b6840aab7902
index eec1194704a6bf70f120d704e444228a4e5dddb4..aa0e2349f291a7273b92951b37b0115f27ab444a 100644 (file)
@@ -1 +1 @@
-99fd194c83dbcfcdcc582983b86678b85b1b9570
\ No newline at end of file
+93caabb66082f76ef161a51ac822b919517a7171
\ No newline at end of file
index b08c08ffc04eeb519641e9ec6d163afa6f3d646a..87edc3c8168b9dca645fd7a4bfa3cd5a6ed108e7 100644 (file)
@@ -275,13 +275,11 @@ do_test shell1-3.2.4 {
 
 # .databases             List names and files of attached databases
 do_test shell1-3.3.1 {
-  set x [catchcmd "-csv test.db" ".databases"]
-  set x [subst -nocommands -novariables $x]
+  catchcmd_collapse_space "-csv test.db" ".databases"
 } "/0.+main.+[string map {/ .} [string range [get_pwd] 0 10]].*/"
 do_test shell1-3.3.2 {
   # extra arguments ignored
-  set x [catchcmd "test.db" ".databases BAD"]
-  set x [subst -nocommands -novariables $x]
+  catchcmd_collapse_space "test.db" ".databases BAD"
 } "/0.+main.+[string map {/ .} [string range [get_pwd] 0 10]].*/"
 
 # .dump ?TABLE? ...      Dump the database in an SQL text format
index eadaf2eb31a966822eaf9d26be572b0b3415d68d..75963e108d48e46fec273a3bf680d086e9952978 100644 (file)
@@ -823,6 +823,17 @@ proc catchcmd {db {cmd ""}} {
   list $rc $msg
 }
 
+proc catchcmd_collapse_space {db {cmd ""}} {
+  global CLI
+  set out [open cmds.txt w]
+  puts $out $cmd
+  close $out
+  set line "exec $CLI $db < cmds.txt"
+  set rc [catch { eval $line } msg]
+  regsub -all {\s+} $msg { } msg
+  list $rc $msg
+}
+
 proc catchcmdex {db {cmd ""}} {
   global CLI
   set out [open cmds.txt w]