| // 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) | |
| } | |
| } | |
| } |