aboutsummaryrefslogtreecommitdiff
path: root/lib/os/exec/exec_test.go
diff options
context:
space:
mode:
authorShulhan <ms@kilabit.info>2021-08-11 13:26:17 +0700
committerShulhan <ms@kilabit.info>2021-08-11 13:26:17 +0700
commit8148fdb18dbcf22a9c9c724fc9b22b8adb5ee7dd (patch)
treea38bcc3e98f7fa70ffc746a472b55c28a0b7529b /lib/os/exec/exec_test.go
parent3bfc7c7518d59f78b40145c949b57ea90e05d56c (diff)
downloadpakakeh.go-8148fdb18dbcf22a9c9c724fc9b22b8adb5ee7dd.tar.xz
os/exec: check for escaped backslash when ParseCommandArgs
Given the following string "cmd /a\ b" to ParseCommandArgs now it should return "cmd" and ["/a b"] not ["/a\", "b"], because the space after a is escaped using backslash.
Diffstat (limited to 'lib/os/exec/exec_test.go')
-rw-r--r--lib/os/exec/exec_test.go12
1 files changed, 12 insertions, 0 deletions
diff --git a/lib/os/exec/exec_test.go b/lib/os/exec/exec_test.go
index 90771dbb..38e089d0 100644
--- a/lib/os/exec/exec_test.go
+++ b/lib/os/exec/exec_test.go
@@ -41,6 +41,18 @@ func TestParseCommandArg(t *testing.T) {
in: "a `b'c`",
expCmd: `a`,
expArgs: []string{`b'c`},
+ }, {
+ in: `a\ b c\ d`,
+ expCmd: "a b",
+ expArgs: []string{"c d"},
+ }, {
+ in: `a\\ b c\\ d`,
+ expCmd: `a\`,
+ expArgs: []string{"b", `c\`, "d"},
+ }, {
+ in: `a\\\ b c\\\ d`,
+ expCmd: `a\ b`,
+ expArgs: []string{`c\ d`},
}}
for _, c := range cases {