From: Mostyn Bramley-Moore Date: Fri, 21 Apr 2017 00:21:41 +0000 (+0200) Subject: cmd/go/internal/work: fix TestRespectGroupSticky on FreeBSD X-Git-Tag: go1.9beta1~576 X-Git-Url: http://www.git.cypherpunks.su/?a=commitdiff_plain;h=e4852aaa7e95e49d8a54584370644714fbcf2c8c;p=gostls13.git 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 --- 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) }