Add the catchcmd_collapse_space command and use it to help make shell testing

more robust against TCL space escapes.

FossilOrigin-Name: 93caabb66082f76ef161a51ac822b919517a7171
This commit is contained in:
drh 2016-03-25 17:09:16 +00:00
parent ddb2b4a310
commit 5729c31daf
4 changed files with 21 additions and 12 deletions

View File

@ -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

View File

@ -1 +1 @@
99fd194c83dbcfcdcc582983b86678b85b1b9570
93caabb66082f76ef161a51ac822b919517a7171

View 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

View 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]