From e4852aaa7e95e49d8a54584370644714fbcf2c8c Mon Sep 17 00:00:00 2001 From: Mostyn Bramley-Moore Date: Fri, 21 Apr 2017 02:21:41 +0200 Subject: [PATCH] cmd/go/internal/work: fix TestRespectGroupSticky on FreeBSD FreeBSD doesn't allow non-root users to enable the SetGID bit on files or directories in /tmp, however it does allow this in subdirectories, so create the test directory one level deeper. Followup to golang/go#19596. Change-Id: I30e71c6d6a156badc863e8068df10ef6ed817e26 Reviewed-on: https://go-review.googlesource.com/41216 Reviewed-by: Ian Lance Taylor Run-TryBot: Ian Lance Taylor TryBot-Result: Gobot Gobot --- src/cmd/go/internal/work/build_test.go | 11 ++++++++--- 1 file changed, 8 insertions(+), 3 deletions(-) diff --git a/src/cmd/go/internal/work/build_test.go b/src/cmd/go/internal/work/build_test.go index 3f811ddc82..d68711432b 100644 --- a/src/cmd/go/internal/work/build_test.go +++ b/src/cmd/go/internal/work/build_test.go @@ -195,8 +195,13 @@ func TestRespectGroupSticky(t *testing.T) { } defer os.RemoveAll(stickydir) - // Change stickydir's permissions to include group sticky bit. - if err := os.Chmod(stickydir, 0755|os.ModeSetgid); err != nil { + testdir, err := ioutil.TempDir(stickydir, "testdir") + if err != nil { + t.Fatal(err) + } + + // Change testdir's permissions to include group sticky bit. + if err := os.Chmod(testdir, 0755|os.ModeSetgid); err != nil { t.Fatal(err) } @@ -207,7 +212,7 @@ func TestRespectGroupSticky(t *testing.T) { defer os.Remove(pkgfile.Name()) defer pkgfile.Close() - stickyFile := filepath.Join(stickydir, "sticky") + stickyFile := filepath.Join(testdir, "sticky") if err := b.moveOrCopyFile(nil, stickyFile, pkgfile.Name(), 0666, true); err != nil { t.Fatalf("moveOrCopyFile: %v", err) } -- 2.50.0