]> Cypherpunks repositories - gostls13.git/commitdiff
cmd/go/internal/work: fix TestRespectGroupSticky on FreeBSD
authorMostyn Bramley-Moore <mostyn@antipode.se>
Fri, 21 Apr 2017 00:21:41 +0000 (02:21 +0200)
committerIan Lance Taylor <iant@golang.org>
Fri, 21 Apr 2017 01:23:58 +0000 (01:23 +0000)
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 <iant@golang.org>
Run-TryBot: Ian Lance Taylor <iant@golang.org>
TryBot-Result: Gobot Gobot <gobot@golang.org>

src/cmd/go/internal/work/build_test.go

index 3f811ddc8207aff66079563e81308d95c80e94e8..d68711432b4460c9f9ace4d419da9631d1a3980e 100644 (file)
@@ -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)
        }