mirror of
https://github.com/golang/go
synced 2024-11-24 23:57:57 -07:00
os: fix ForkExec() handling of envv == nil
R=golang-dev, r CC=golang-dev https://golang.org/cl/1913047
This commit is contained in:
parent
893fdbbe5d
commit
dbef0711d4
@ -8,6 +8,7 @@ import (
|
||||
"io"
|
||||
"io/ioutil"
|
||||
"testing"
|
||||
"os"
|
||||
)
|
||||
|
||||
func TestRunCat(t *testing.T) {
|
||||
@ -84,3 +85,25 @@ func TestMergeWithStdout(t *testing.T) {
|
||||
t.Fatal("close:", err)
|
||||
}
|
||||
}
|
||||
|
||||
func TestAddEnvVar(t *testing.T) {
|
||||
err := os.Setenv("NEWVAR", "hello world")
|
||||
if err != nil {
|
||||
t.Fatal("setenv:", err)
|
||||
}
|
||||
cmd, err := Run("/bin/sh", []string{"sh", "-c", "echo $NEWVAR"}, nil, "",
|
||||
DevNull, Pipe, DevNull)
|
||||
if err != nil {
|
||||
t.Fatal("run:", err)
|
||||
}
|
||||
buf, err := ioutil.ReadAll(cmd.Stdout)
|
||||
if err != nil {
|
||||
t.Fatal("read:", err)
|
||||
}
|
||||
if string(buf) != "hello world\n" {
|
||||
t.Fatalf("read: got %q", buf)
|
||||
}
|
||||
if err = cmd.Close(); err != nil {
|
||||
t.Fatal("close:", err)
|
||||
}
|
||||
}
|
||||
|
@ -16,6 +16,9 @@ import (
|
||||
// will cause the child to have no open file descriptor with that index.
|
||||
// If dir is not empty, the child chdirs into the directory before execing the program.
|
||||
func ForkExec(argv0 string, argv []string, envv []string, dir string, fd []*File) (pid int, err Error) {
|
||||
if envv == nil {
|
||||
envv = Environ()
|
||||
}
|
||||
// Create array of integer (system) fds.
|
||||
intfd := make([]int, len(fd))
|
||||
for i, f := range fd {
|
||||
|
Loading…
Reference in New Issue
Block a user