1
0
mirror of https://github.com/golang/go synced 2024-11-25 12:57:58 -07:00

exec: enable tests on windows

Fixes #1104.

R=golang-dev, mattn, r
CC=Joe Poirier, golang-dev
https://golang.org/cl/3051041
This commit is contained in:
Alex Brainman 2010-11-13 11:15:09 +11:00
parent 8f651ff742
commit a2a4e0c01a
2 changed files with 18 additions and 27 deletions

View File

@ -197,7 +197,6 @@ endif
# Disable tests that windows cannot run yet. # Disable tests that windows cannot run yet.
ifeq ($(GOOS),windows) ifeq ($(GOOS),windows)
NOTEST+=exec # no pipe
NOTEST+=os/signal # no signals NOTEST+=os/signal # no signals
NOTEST+=path # tree walking does not work NOTEST+=path # tree walking does not work
NOTEST+=syslog # no network NOTEST+=syslog # no network

View File

@ -9,15 +9,23 @@ import (
"io/ioutil" "io/ioutil"
"testing" "testing"
"os" "os"
"runtime"
) )
func TestRunCat(t *testing.T) { func run(argv []string, stdin, stdout, stderr int) (p *Cmd, err os.Error) {
cat, err := LookPath("cat") if runtime.GOOS == "windows" {
if err != nil { argv = append([]string{"cmd", "/c"}, argv...)
t.Fatal("cat: ", err)
} }
cmd, err := Run(cat, []string{"cat"}, nil, "", exe, err := LookPath(argv[0])
Pipe, Pipe, DevNull) if err != nil {
return nil, err
}
p, err = Run(exe, argv, nil, "", stdin, stdout, stderr)
return p, err
}
func TestRunCat(t *testing.T) {
cmd, err := run([]string{"cat"}, Pipe, Pipe, DevNull)
if err != nil { if err != nil {
t.Fatal("run:", err) t.Fatal("run:", err)
} }
@ -36,11 +44,7 @@ func TestRunCat(t *testing.T) {
} }
func TestRunEcho(t *testing.T) { func TestRunEcho(t *testing.T) {
echo, err := LookPath("echo") cmd, err := run([]string{"sh", "-c", "echo hello world"},
if err != nil {
t.Fatal("echo: ", err)
}
cmd, err := Run(echo, []string{"echo", "hello", "world"}, nil, "",
DevNull, Pipe, DevNull) DevNull, Pipe, DevNull)
if err != nil { if err != nil {
t.Fatal("run:", err) t.Fatal("run:", err)
@ -58,11 +62,7 @@ func TestRunEcho(t *testing.T) {
} }
func TestStderr(t *testing.T) { func TestStderr(t *testing.T) {
sh, err := LookPath("sh") cmd, err := run([]string{"sh", "-c", "echo hello world 1>&2"},
if err != nil {
t.Fatal("sh: ", err)
}
cmd, err := Run(sh, []string{"sh", "-c", "echo hello world 1>&2"}, nil, "",
DevNull, DevNull, Pipe) DevNull, DevNull, Pipe)
if err != nil { if err != nil {
t.Fatal("run:", err) t.Fatal("run:", err)
@ -80,11 +80,7 @@ func TestStderr(t *testing.T) {
} }
func TestMergeWithStdout(t *testing.T) { func TestMergeWithStdout(t *testing.T) {
sh, err := LookPath("sh") cmd, err := run([]string{"sh", "-c", "echo hello world 1>&2"},
if err != nil {
t.Fatal("sh: ", err)
}
cmd, err := Run(sh, []string{"sh", "-c", "echo hello world 1>&2"}, nil, "",
DevNull, Pipe, MergeWithStdout) DevNull, Pipe, MergeWithStdout)
if err != nil { if err != nil {
t.Fatal("run:", err) t.Fatal("run:", err)
@ -106,11 +102,7 @@ func TestAddEnvVar(t *testing.T) {
if err != nil { if err != nil {
t.Fatal("setenv:", err) t.Fatal("setenv:", err)
} }
sh, err := LookPath("sh") cmd, err := run([]string{"sh", "-c", "echo $NEWVAR"},
if err != nil {
t.Fatal("sh: ", err)
}
cmd, err := Run(sh, []string{"sh", "-c", "echo $NEWVAR"}, nil, "",
DevNull, Pipe, DevNull) DevNull, Pipe, DevNull)
if err != nil { if err != nil {
t.Fatal("run:", err) t.Fatal("run:", err)