aboutsummaryrefslogtreecommitdiff
path: root/src/syscall
diff options
context:
space:
mode:
authorTamir Duberstein <tamird@google.com>2022-01-27 15:29:04 +0000
committerIan Lance Taylor <iant@golang.org>2022-02-09 22:06:20 +0000
commitea3c546e9e2b507d497f8093f8414cb31c112062 (patch)
tree2d0653eedb6d9f014941e6c774a71f0ea931baf8 /src/syscall
parent2e2ef31778800856d9db87ad06cc963ef2530eeb (diff)
downloadgo-ea3c546e9e2b507d497f8093f8414cb31c112062.tar.xz
syscall: use RLIMIT_CPU instead of RLIMIT_NOFILE
The latter is subject to kern.maxfilelimit restrictions on darwin which are not reflected in the return value. This makes it difficult to reliably restore the default after the test is complete. RLIMIT_CPU should hopefully sidestep this problem. Updates #40564. Change-Id: Ifb33c7d46f2708130cef366dc245c643a2d5e465 Reviewed-on: https://go-review.googlesource.com/c/go/+/383234 Run-TryBot: Ian Lance Taylor <iant@golang.org> TryBot-Result: Gopher Robot <gobot@golang.org> Reviewed-by: Ian Lance Taylor <iant@golang.org> Reviewed-by: Bryan Mills <bcmills@google.com> Trust: Bryan Mills <bcmills@google.com>
Diffstat (limited to 'src/syscall')
-rw-r--r--src/syscall/syscall_unix_test.go21
1 files changed, 4 insertions, 17 deletions
diff --git a/src/syscall/syscall_unix_test.go b/src/syscall/syscall_unix_test.go
index e4af0ba4a5..1ef2634fa1 100644
--- a/src/syscall/syscall_unix_test.go
+++ b/src/syscall/syscall_unix_test.go
@@ -328,8 +328,7 @@ func TestUnixRightsRoundtrip(t *testing.T) {
func TestRlimit(t *testing.T) {
var rlimit, zero syscall.Rlimit
- err := syscall.Getrlimit(syscall.RLIMIT_NOFILE, &rlimit)
- if err != nil {
+ if err := syscall.Getrlimit(syscall.RLIMIT_CPU, &rlimit); err != nil {
t.Fatalf("Getrlimit: save failed: %v", err)
}
if zero == rlimit {
@@ -337,31 +336,19 @@ func TestRlimit(t *testing.T) {
}
set := rlimit
set.Cur = set.Max - 1
- if (runtime.GOOS == "darwin" || runtime.GOOS == "ios") && set.Cur > 4096 {
- // rlim_min for RLIMIT_NOFILE should be equal to
- // or lower than kern.maxfilesperproc, which on
- // some machines are 4096. See #40564.
- set.Cur = 4096
- }
- err = syscall.Setrlimit(syscall.RLIMIT_NOFILE, &set)
- if err != nil {
+ if err := syscall.Setrlimit(syscall.RLIMIT_CPU, &set); err != nil {
t.Fatalf("Setrlimit: set failed: %#v %v", set, err)
}
var get syscall.Rlimit
- err = syscall.Getrlimit(syscall.RLIMIT_NOFILE, &get)
- if err != nil {
+ if err := syscall.Getrlimit(syscall.RLIMIT_CPU, &get); err != nil {
t.Fatalf("Getrlimit: get failed: %v", err)
}
set = rlimit
set.Cur = set.Max - 1
- if (runtime.GOOS == "darwin" || runtime.GOOS == "ios") && set.Cur > 4096 {
- set.Cur = 4096
- }
if set != get {
t.Fatalf("Rlimit: change failed: wanted %#v got %#v", set, get)
}
- err = syscall.Setrlimit(syscall.RLIMIT_NOFILE, &rlimit)
- if err != nil {
+ if err := syscall.Setrlimit(syscall.RLIMIT_CPU, &rlimit); err != nil {
t.Fatalf("Setrlimit: restore failed: %#v %v", rlimit, err)
}
}