blob: eda1d3687780527ace85845bf348658a444572c4 [file] [log] [blame]
// Copyright 2020 The Go Authors. All rights reserved.
// Use of this source code is governed by a BSD-style
// license that can be found in the LICENSE file.
package syscall_test
import (
"syscall"
"testing"
)
func TestEscapeArg(t *testing.T) {
var tests = []struct {
input, output string
}{
{``, `""`},
{`a`, `a`},
{` `, `" "`},
{`\`, `\`},
{`"`, `\"`},
{`\"`, `\\\"`},
{`\\"`, `\\\\\"`},
{`\\ `, `"\\ "`},
{` \\`, `" \\\\"`},
{`a `, `"a "`},
{`C:\`, `C:\`},
{`C:\Program Files (x32)\Common\`, `"C:\Program Files (x32)\Common\\"`},
{`C:\Users\Игорь\`, `C:\Users\Игорь\`},
{`Андрей\file`, `Андрей\file`},
{`C:\Windows\temp`, `C:\Windows\temp`},
{`c:\temp\newfile`, `c:\temp\newfile`},
{`\\?\C:\Windows`, `\\?\C:\Windows`},
{`\\?\`, `\\?\`},
{`\\.\C:\Windows\`, `\\.\C:\Windows\`},
{`\\server\share\file`, `\\server\share\file`},
{`\\newserver\tempshare\really.txt`, `\\newserver\tempshare\really.txt`},
}
for _, test := range tests {
if got := syscall.EscapeArg(test.input); got != test.output {
t.Errorf("EscapeArg(%#q) = %#q, want %#q", test.input, got, test.output)
}
}
}