libgo patch committed: Append to, don't clobber, environment in test

Ian Lance Taylor iant@golang.org
Tue May 12 00:32:36 GMT 2020


This libgo patch changes some tests in the syscall package to append
to the environment in tests rather than clobbering the environment.
In particular, this preserves LD_LIBRARY_PATH.

This is a partial backport of https://golang.org/cl/233318 from the
master sources.  It's only a partial backport because part of the
change was already applied to libgo in https://golang.org/cl/193497 as
part of the update to the Go 1.13beta1 release.  This additional parts
weren't applied then because they only show up when running the test
as root, and I didn't do that.

This fixes GCC PR 95061.

Bootstrapped and ran Go testsuite on x86_64-pc-linux-gnu.  Committed
to master and GCC 10 branch.

Ian
-------------- next part --------------
diff --git a/gcc/go/gofrontend/MERGE b/gcc/go/gofrontend/MERGE
index 428b329382b..939ba7c8929 100644
--- a/gcc/go/gofrontend/MERGE
+++ b/gcc/go/gofrontend/MERGE
@@ -1,4 +1,4 @@
-41019d50ae519328dd3cf200815a2a2b0b64674e
+8645632618262d1661ece0c9e6fe9e04c6e3a878
 
 The first line of this file holds the git revision number of the last
 merge done from the gofrontend repository.
diff --git a/libgo/go/syscall/syscall_linux_test.go b/libgo/go/syscall/syscall_linux_test.go
index 97059c87d3d..c12df4cf5c7 100644
--- a/libgo/go/syscall/syscall_linux_test.go
+++ b/libgo/go/syscall/syscall_linux_test.go
@@ -187,7 +187,7 @@ func TestLinuxDeathSignal(t *testing.T) {
 	}
 
 	cmd := exec.Command(tmpBinary)
-	cmd.Env = []string{"GO_DEATHSIG_PARENT=1"}
+	cmd.Env = append(os.Environ(), "GO_DEATHSIG_PARENT=1")
 	chldStdin, err := cmd.StdinPipe()
 	if err != nil {
 		t.Fatalf("failed to create new stdin pipe: %v", err)
@@ -225,7 +225,10 @@ func TestLinuxDeathSignal(t *testing.T) {
 
 func deathSignalParent() {
 	cmd := exec.Command(os.Args[0])
-	cmd.Env = []string{"GO_DEATHSIG_CHILD=1"}
+	cmd.Env = append(os.Environ(),
+		"GO_DEATHSIG_PARENT=",
+		"GO_DEATHSIG_CHILD=1",
+	)
 	cmd.Stdin = os.Stdin
 	cmd.Stdout = os.Stdout
 	attrs := syscall.SysProcAttr{
@@ -360,7 +363,7 @@ func TestSyscallNoError(t *testing.T) {
 	}
 
 	cmd := exec.Command(tmpBinary)
-	cmd.Env = []string{"GO_SYSCALL_NOERROR=1"}
+	cmd.Env = append(os.Environ(), "GO_SYSCALL_NOERROR=1")
 
 	out, err := cmd.CombinedOutput()
 	if err != nil {


More information about the Gcc-patches mailing list