diff options
author | sebres <sebres@users.sourceforge.net> | 2018-08-30 11:13:09 (GMT) |
---|---|---|
committer | sebres <sebres@users.sourceforge.net> | 2018-08-30 11:13:09 (GMT) |
commit | cb9f3f92687994f262d7d65620616769857b590e (patch) | |
tree | a4b1c5b495df59cbf3479b700c65715239444715 /tests | |
parent | 77a26f5c95ac4404f7860eef2924c113e6c0de5f (diff) | |
parent | 6d88b01d1e2bb2a76d4e0f094f1e895e3b16c859 (diff) | |
download | tcl-cb9f3f92687994f262d7d65620616769857b590e.zip tcl-cb9f3f92687994f262d7d65620616769857b590e.tar.gz tcl-cb9f3f92687994f262d7d65620616769857b590e.tar.bz2 |
merge 8.5
Diffstat (limited to 'tests')
-rw-r--r-- | tests/winPipe.test | 30 |
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) |