mirror of
https://github.com/golang/go
synced 2024-11-21 15:44:44 -07:00
os: change TestForkExec so it can run on windows
R=brainman, vcc, Joe Poirier, rsc CC=golang-dev https://golang.org/cl/2530041
This commit is contained in:
parent
a3bcf4b664
commit
a9725396c0
@ -410,15 +410,24 @@ func TestRename(t *testing.T) {
|
||||
}
|
||||
|
||||
func TestForkExec(t *testing.T) {
|
||||
// TODO(brainman): Try to enable this test once ForkExec is working.
|
||||
if syscall.OS == "windows" {
|
||||
return
|
||||
}
|
||||
var cmd, adir, expect string
|
||||
var args []string
|
||||
r, w, err := Pipe()
|
||||
if err != nil {
|
||||
t.Fatalf("Pipe: %v", err)
|
||||
}
|
||||
pid, err := ForkExec("/bin/pwd", []string{"pwd"}, nil, "/", []*File{nil, w, Stderr})
|
||||
if syscall.OS == "windows" {
|
||||
cmd = Getenv("COMSPEC")
|
||||
args = []string{Getenv("COMSPEC"), "/c cd"}
|
||||
adir = Getenv("SystemRoot")
|
||||
expect = Getenv("SystemRoot") + "\r\n"
|
||||
} else {
|
||||
cmd = "/bin/pwd"
|
||||
args = []string{"pwd"}
|
||||
adir = "/"
|
||||
expect = "/\n"
|
||||
}
|
||||
pid, err := ForkExec(cmd, args, nil, adir, []*File{nil, w, Stderr})
|
||||
if err != nil {
|
||||
t.Fatalf("ForkExec: %v", err)
|
||||
}
|
||||
@ -427,9 +436,9 @@ func TestForkExec(t *testing.T) {
|
||||
var b bytes.Buffer
|
||||
io.Copy(&b, r)
|
||||
output := b.String()
|
||||
expect := "/\n"
|
||||
if output != expect {
|
||||
t.Errorf("exec /bin/pwd returned %q wanted %q", output, expect)
|
||||
args[0] = cmd
|
||||
t.Errorf("exec %q returned %q wanted %q", strings.Join(args, " "), output, expect)
|
||||
}
|
||||
Wait(pid, 0)
|
||||
}
|
||||
|
Loading…
Reference in New Issue
Block a user