diff options
author | sebres <sebres@users.sourceforge.net> | 2018-08-30 11:08:51 (GMT) |
---|---|---|
committer | sebres <sebres@users.sourceforge.net> | 2018-08-30 11:08:51 (GMT) |
commit | 6d88b01d1e2bb2a76d4e0f094f1e895e3b16c859 (patch) | |
tree | 35d1b926b9f3f3aac9c069a8f28dbf3d7554d304 /tests | |
parent | 9cec6bac276f8925b60a49891c272be0b5e3e3f3 (diff) | |
download | tcl-6d88b01d1e2bb2a76d4e0f094f1e895e3b16c859.zip tcl-6d88b01d1e2bb2a76d4e0f094f1e895e3b16c859.tar.gz tcl-6d88b01d1e2bb2a76d4e0f094f1e895e3b16c859.tar.bz2 |
test-cases to cover quoting of the newline character, and the documentation extended.
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 4385690..6a02147 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) |