Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
A few tests need to be skipped, but otherwise tests run perfectly fine.
- Loading branch information
Showing
4 changed files
with
231 additions
and
3 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,13 @@ | ||
Fixes go1.19 error on i686 - | ||
runtime/cgo(.text): unknown symbol __stack_chk_fail_local in pcrel | ||
|
||
--- a/go/src/cmd/go/script_test.go | ||
+++ b/go/src/cmd/go/script_test.go | ||
@@ -148,6 +148,7 @@ var extraEnvKeys = []string{ | ||
"GO_TESTING_GOTOOLS", // for gccgo testing | ||
"GCCGO", // for gccgo testing | ||
"GCCGOTOOLDIR", // for gccgo testing | ||
+ "CGO_CFLAGS", // for working around go1.19 "unknown symbol __stack_chk_fail_local" error on x86 | ||
} | ||
|
||
// setup sets up the test execution temporary directory and environment. |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,29 @@ | ||
These tests fail on musl because /proc/../status doesn't contain the "Groups" | ||
field, because musl lacks the getgroups() syscall. | ||
|
||
--- a/go/src/syscall/syscall_linux_test.go | ||
+++ b/go/src/syscall/syscall_linux_test.go | ||
@@ -530,10 +530,6 @@ func TestSetuidEtc(t *testing.T) { | ||
{call: "Setgid(1)", fn: func() error { return syscall.Setgid(1) }, filter: "Gid:", expect: "\t1\t1\t1\t1"}, | ||
{call: "Setgid(0)", fn: func() error { return syscall.Setgid(0) }, filter: "Gid:", expect: "\t0\t0\t0\t0"}, | ||
|
||
- {call: "Setgroups([]int{0,1,2,3})", fn: func() error { return syscall.Setgroups([]int{0, 1, 2, 3}) }, filter: "Groups:", expect: "\t0 1 2 3"}, | ||
- {call: "Setgroups(nil)", fn: func() error { return syscall.Setgroups(nil) }, filter: "Groups:", expect: ""}, | ||
- {call: "Setgroups([]int{0})", fn: func() error { return syscall.Setgroups([]int{0}) }, filter: "Groups:", expect: "\t0"}, | ||
- | ||
{call: "Setregid(101,0)", fn: func() error { return syscall.Setregid(101, 0) }, filter: "Gid:", expect: "\t101\t0\t0\t0"}, | ||
{call: "Setregid(0,102)", fn: func() error { return syscall.Setregid(0, 102) }, filter: "Gid:", expect: "\t0\t102\t102\t102"}, | ||
{call: "Setregid(0,0)", fn: func() error { return syscall.Setregid(0, 0) }, filter: "Gid:", expect: "\t0\t0\t0\t0"}, | ||
--- a/go/misc/cgo/test/issue1435.go | ||
+++ b/go/misc/cgo/test/issue1435.go | ||
@@ -165,10 +165,6 @@ func test1435(t *testing.T) { | ||
{call: "Setgid(1)", fn: func() error { return syscall.Setgid(1) }, filter: "Gid:", expect: "\t1\t1\t1\t1"}, | ||
{call: "Setgid(0)", fn: func() error { return syscall.Setgid(0) }, filter: "Gid:", expect: "\t0\t0\t0\t0"}, | ||
|
||
- {call: "Setgroups([]int{0,1,2,3})", fn: func() error { return syscall.Setgroups([]int{0, 1, 2, 3}) }, filter: "Groups:", expect: "\t0 1 2 3"}, | ||
- {call: "Setgroups(nil)", fn: func() error { return syscall.Setgroups(nil) }, filter: "Groups:", expect: ""}, | ||
- {call: "Setgroups([]int{0})", fn: func() error { return syscall.Setgroups([]int{0}) }, filter: "Groups:", expect: "\t0"}, | ||
- | ||
{call: "Setregid(101,0)", fn: func() error { return syscall.Setregid(101, 0) }, filter: "Gid:", expect: "\t101\t0\t0\t0"}, | ||
{call: "Setregid(0,102)", fn: func() error { return syscall.Setregid(0, 102) }, filter: "Gid:", expect: "\t0\t102\t102\t102"}, | ||
{call: "Setregid(0,0)", fn: func() error { return syscall.Setregid(0, 0) }, filter: "Gid:", expect: "\t0\t0\t0\t0"}, |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,150 @@ | ||
Inside user namespaces, if GID == OVERFLOWGID (65534), then chown won't work. | ||
https://github.com/golang/go/issues/42525 | ||
|
||
--- a/go/src/os/os_unix_test.go | ||
+++ b/go/src/os/os_unix_test.go | ||
@@ -39,144 +39,6 @@ func checkUidGid(t *testing.T, path string, uid, gid int) { | ||
} | ||
} | ||
|
||
-func TestChown(t *testing.T) { | ||
- // Use TempDir() to make sure we're on a local file system, | ||
- // so that the group ids returned by Getgroups will be allowed | ||
- // on the file. On NFS, the Getgroups groups are | ||
- // basically useless. | ||
- f := newFile("TestChown", t) | ||
- defer Remove(f.Name()) | ||
- defer f.Close() | ||
- dir, err := f.Stat() | ||
- if err != nil { | ||
- t.Fatalf("stat %s: %s", f.Name(), err) | ||
- } | ||
- | ||
- // Can't change uid unless root, but can try | ||
- // changing the group id. First try our current group. | ||
- gid := Getgid() | ||
- t.Log("gid:", gid) | ||
- if err = Chown(f.Name(), -1, gid); err != nil { | ||
- t.Fatalf("chown %s -1 %d: %s", f.Name(), gid, err) | ||
- } | ||
- sys := dir.Sys().(*syscall.Stat_t) | ||
- checkUidGid(t, f.Name(), int(sys.Uid), gid) | ||
- | ||
- // Then try all the auxiliary groups. | ||
- groups, err := Getgroups() | ||
- if err != nil { | ||
- t.Fatalf("getgroups: %s", err) | ||
- } | ||
- t.Log("groups: ", groups) | ||
- for _, g := range groups { | ||
- if err = Chown(f.Name(), -1, g); err != nil { | ||
- t.Fatalf("chown %s -1 %d: %s", f.Name(), g, err) | ||
- } | ||
- checkUidGid(t, f.Name(), int(sys.Uid), g) | ||
- | ||
- // change back to gid to test fd.Chown | ||
- if err = f.Chown(-1, gid); err != nil { | ||
- t.Fatalf("fchown %s -1 %d: %s", f.Name(), gid, err) | ||
- } | ||
- checkUidGid(t, f.Name(), int(sys.Uid), gid) | ||
- } | ||
-} | ||
- | ||
-func TestFileChown(t *testing.T) { | ||
- // Use TempDir() to make sure we're on a local file system, | ||
- // so that the group ids returned by Getgroups will be allowed | ||
- // on the file. On NFS, the Getgroups groups are | ||
- // basically useless. | ||
- f := newFile("TestFileChown", t) | ||
- defer Remove(f.Name()) | ||
- defer f.Close() | ||
- dir, err := f.Stat() | ||
- if err != nil { | ||
- t.Fatalf("stat %s: %s", f.Name(), err) | ||
- } | ||
- | ||
- // Can't change uid unless root, but can try | ||
- // changing the group id. First try our current group. | ||
- gid := Getgid() | ||
- t.Log("gid:", gid) | ||
- if err = f.Chown(-1, gid); err != nil { | ||
- t.Fatalf("fchown %s -1 %d: %s", f.Name(), gid, err) | ||
- } | ||
- sys := dir.Sys().(*syscall.Stat_t) | ||
- checkUidGid(t, f.Name(), int(sys.Uid), gid) | ||
- | ||
- // Then try all the auxiliary groups. | ||
- groups, err := Getgroups() | ||
- if err != nil { | ||
- t.Fatalf("getgroups: %s", err) | ||
- } | ||
- t.Log("groups: ", groups) | ||
- for _, g := range groups { | ||
- if err = f.Chown(-1, g); err != nil { | ||
- t.Fatalf("fchown %s -1 %d: %s", f.Name(), g, err) | ||
- } | ||
- checkUidGid(t, f.Name(), int(sys.Uid), g) | ||
- | ||
- // change back to gid to test fd.Chown | ||
- if err = f.Chown(-1, gid); err != nil { | ||
- t.Fatalf("fchown %s -1 %d: %s", f.Name(), gid, err) | ||
- } | ||
- checkUidGid(t, f.Name(), int(sys.Uid), gid) | ||
- } | ||
-} | ||
- | ||
-func TestLchown(t *testing.T) { | ||
- // Use TempDir() to make sure we're on a local file system, | ||
- // so that the group ids returned by Getgroups will be allowed | ||
- // on the file. On NFS, the Getgroups groups are | ||
- // basically useless. | ||
- f := newFile("TestLchown", t) | ||
- defer Remove(f.Name()) | ||
- defer f.Close() | ||
- dir, err := f.Stat() | ||
- if err != nil { | ||
- t.Fatalf("stat %s: %s", f.Name(), err) | ||
- } | ||
- | ||
- linkname := f.Name() + "2" | ||
- if err := Symlink(f.Name(), linkname); err != nil { | ||
- if runtime.GOOS == "android" && IsPermission(err) { | ||
- t.Skip("skipping test on Android; permission error creating symlink") | ||
- } | ||
- t.Fatalf("link %s -> %s: %v", f.Name(), linkname, err) | ||
- } | ||
- defer Remove(linkname) | ||
- | ||
- // Can't change uid unless root, but can try | ||
- // changing the group id. First try our current group. | ||
- gid := Getgid() | ||
- t.Log("gid:", gid) | ||
- if err = Lchown(linkname, -1, gid); err != nil { | ||
- if err, ok := err.(*PathError); ok && err.Err == syscall.ENOSYS { | ||
- t.Skip("lchown is unavailable") | ||
- } | ||
- t.Fatalf("lchown %s -1 %d: %s", linkname, gid, err) | ||
- } | ||
- sys := dir.Sys().(*syscall.Stat_t) | ||
- checkUidGid(t, linkname, int(sys.Uid), gid) | ||
- | ||
- // Then try all the auxiliary groups. | ||
- groups, err := Getgroups() | ||
- if err != nil { | ||
- t.Fatalf("getgroups: %s", err) | ||
- } | ||
- t.Log("groups: ", groups) | ||
- for _, g := range groups { | ||
- if err = Lchown(linkname, -1, g); err != nil { | ||
- t.Fatalf("lchown %s -1 %d: %s", linkname, g, err) | ||
- } | ||
- checkUidGid(t, linkname, int(sys.Uid), g) | ||
- | ||
- // Check that link target's gid is unchanged. | ||
- checkUidGid(t, f.Name(), int(sys.Uid), int(sys.Gid)) | ||
- } | ||
-} | ||
- | ||
// Issue 16919: Readdir must return a non-empty slice or an error. | ||
func TestReaddirRemoveRace(t *testing.T) { | ||
oldStat := *LstatP |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters