summaryrefslogtreecommitdiffstats
path: root/tests
diff options
context:
space:
mode:
authorsebres <sebres@users.sourceforge.net>2018-08-30 11:13:09 (GMT)
committersebres <sebres@users.sourceforge.net>2018-08-30 11:13:09 (GMT)
commitcb9f3f92687994f262d7d65620616769857b590e (patch)
treea4b1c5b495df59cbf3479b700c65715239444715 /tests
parent77a26f5c95ac4404f7860eef2924c113e6c0de5f (diff)
parent6d88b01d1e2bb2a76d4e0f094f1e895e3b16c859 (diff)
downloadtcl-cb9f3f92687994f262d7d65620616769857b590e.zip
tcl-cb9f3f92687994f262d7d65620616769857b590e.tar.gz
tcl-cb9f3f92687994f262d7d65620616769857b590e.tar.bz2
merge 8.5
Diffstat (limited to 'tests')
-rw-r--r--tests/winPipe.test30
1 files changed, 30 insertions, 0 deletions
diff --git a/tests/winPipe.test b/tests/winPipe.test
index e1838ff..9402db1 100644
--- a/tests/winPipe.test
+++ b/tests/winPipe.test
@@ -348,6 +348,10 @@ proc _testExecArgs {single args} {
if {$r ne $e} {
append broken "\[ERROR\]: exec [file extension [lindex $cmd 0]] on $args\n -- result:\n$r\n -- expected:\n$e\n"
}
+ if {$single & 8} {
+ # if test exe only:
+ break
+ }
}
}
return $broken
@@ -555,6 +559,32 @@ test winpipe-8.5 {BuildCommandLine/parse_cmdline pass-thru: check injection on s
unset -nocomplain lst args a map maps
}
+set injectList {
+ "test\"\nwhoami" "test\"\"\nwhoami"
+ "test\"\"\"\nwhoami" "test\"\"\"\"\nwhoami"
+ "test;\n&echo \"" "\"test;\n&echo \""
+ "test\";\n&echo \"" "\"test\";\n&echo \""
+ "\"\"test\";\n&echo \""
+}
+
+test winpipe-8.6 {BuildCommandLine/parse_cmdline pass-thru: check new-line quoted in args} \
+-constraints {win exec} -body {
+ # test exe only, because currently there is no proper way to escape a new-line char resp.
+ # to supply a new-line to the batch-files within arguments (command line is truncated).
+ _testExecArgs 8 \
+ [list START {*}$injectList END] \
+ [list "START\"" {*}$injectList END] \
+ [list START {*}$injectList "\"END"] \
+ [list "START\"" {*}$injectList "\"END"]
+} -result {}
+
+test winpipe-8.7 {BuildCommandLine/parse_cmdline pass-thru: check new-line quoted in args (batch)} \
+-constraints {win exec knownBug} -body {
+ # this will fail if executed batch-file, because currently there is no proper way to escape a new-line char.
+ _testExecArgs 0 $injectList
+} -result {}
+
+
rename _testExecArgs {}
# restore old values for env(TMP) and env(TEMP)