]> Cypherpunks repositories - gostls13.git/commitdiff
exec: enable tests on windows
authorAlex Brainman <alex.brainman@gmail.com>
Sat, 13 Nov 2010 00:15:09 +0000 (11:15 +1100)
committerAlex Brainman <alex.brainman@gmail.com>
Sat, 13 Nov 2010 00:15:09 +0000 (11:15 +1100)
Fixes #1104.

R=golang-dev, mattn, r
CC=Joe Poirier, golang-dev
https://golang.org/cl/3051041

src/pkg/Makefile
src/pkg/exec/exec_test.go

index cfb16d2004a218d1c0c2033fb6c56a92531a36e1..48649846b8298d9d045d3d1f3c7c1aec8e985bd9 100644 (file)
@@ -197,7 +197,6 @@ endif
 
 # Disable tests that windows cannot run yet.
 ifeq ($(GOOS),windows)
-NOTEST+=exec         # no pipe
 NOTEST+=os/signal    # no signals
 NOTEST+=path         # tree walking does not work
 NOTEST+=syslog       # no network
index 04f72cf833bc235ff01cf47d93b03a354e163c72..3a3d3b1a53ed05c706eba2926e6dd7c76ce12df7 100644 (file)
@@ -9,15 +9,23 @@ import (
        "io/ioutil"
        "testing"
        "os"
+       "runtime"
 )
 
-func TestRunCat(t *testing.T) {
-       cat, err := LookPath("cat")
+func run(argv []string, stdin, stdout, stderr int) (p *Cmd, err os.Error) {
+       if runtime.GOOS == "windows" {
+               argv = append([]string{"cmd", "/c"}, argv...)
+       }
+       exe, err := LookPath(argv[0])
        if err != nil {
-               t.Fatal("cat: ", err)
+               return nil, err
        }
-       cmd, err := Run(cat, []string{"cat"}, nil, "",
-               Pipe, Pipe, DevNull)
+       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 {
                t.Fatal("run:", err)
        }
@@ -36,11 +44,7 @@ func TestRunCat(t *testing.T) {
 }
 
 func TestRunEcho(t *testing.T) {
-       echo, err := LookPath("echo")
-       if err != nil {
-               t.Fatal("echo: ", err)
-       }
-       cmd, err := Run(echo, []string{"echo", "hello", "world"}, nil, "",
+       cmd, err := run([]string{"sh", "-c", "echo hello world"},
                DevNull, Pipe, DevNull)
        if err != nil {
                t.Fatal("run:", err)
@@ -58,11 +62,7 @@ func TestRunEcho(t *testing.T) {
 }
 
 func TestStderr(t *testing.T) {
-       sh, err := LookPath("sh")
-       if err != nil {
-               t.Fatal("sh: ", err)
-       }
-       cmd, err := Run(sh, []string{"sh", "-c", "echo hello world 1>&2"}, nil, "",
+       cmd, err := run([]string{"sh", "-c", "echo hello world 1>&2"},
                DevNull, DevNull, Pipe)
        if err != nil {
                t.Fatal("run:", err)
@@ -80,11 +80,7 @@ func TestStderr(t *testing.T) {
 }
 
 func TestMergeWithStdout(t *testing.T) {
-       sh, err := LookPath("sh")
-       if err != nil {
-               t.Fatal("sh: ", err)
-       }
-       cmd, err := Run(sh, []string{"sh", "-c", "echo hello world 1>&2"}, nil, "",
+       cmd, err := run([]string{"sh", "-c", "echo hello world 1>&2"},
                DevNull, Pipe, MergeWithStdout)
        if err != nil {
                t.Fatal("run:", err)
@@ -106,11 +102,7 @@ func TestAddEnvVar(t *testing.T) {
        if err != nil {
                t.Fatal("setenv:", err)
        }
-       sh, err := LookPath("sh")
-       if err != nil {
-               t.Fatal("sh: ", err)
-       }
-       cmd, err := Run(sh, []string{"sh", "-c", "echo $NEWVAR"}, nil, "",
+       cmd, err := run([]string{"sh", "-c", "echo $NEWVAR"},
                DevNull, Pipe, DevNull)
        if err != nil {
                t.Fatal("run:", err)