1
0
mirror of https://github.com/golang/go synced 2024-11-21 22:34:48 -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:
Yasuhiro Matsumoto 2010-10-20 09:46:24 +11:00 committed by Alex Brainman
parent a3bcf4b664
commit a9725396c0

View File

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