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