diff options
Diffstat (limited to 'src/syscall/rlimit_test.go')
-rw-r--r-- | src/syscall/rlimit_test.go | 42 |
1 files changed, 42 insertions, 0 deletions
diff --git a/src/syscall/rlimit_test.go b/src/syscall/rlimit_test.go new file mode 100644 index 0000000..764694f --- /dev/null +++ b/src/syscall/rlimit_test.go @@ -0,0 +1,42 @@ +// Copyright 2022 The Go Authors. All rights reserved. +// Use of this source code is governed by a BSD-style +// license that can be found in the LICENSE file. + +//go:build unix + +package syscall_test + +import ( + "os" + "runtime" + "testing" +) + +func TestOpenFileLimit(t *testing.T) { + // For open file count, + // macOS sets the default soft limit to 256 and no hard limit. + // CentOS and Fedora set the default soft limit to 1024, + // with hard limits of 4096 and 524288, respectively. + // Check that we can open 1200 files, which proves + // that the rlimit is being raised appropriately on those systems. + fileCount := 1200 + + // OpenBSD has a default soft limit of 512 and hard limit of 1024. + if runtime.GOOS == "openbsd" { + fileCount = 768 + } + + var files []*os.File + for i := 0; i < fileCount; i++ { + f, err := os.Open("rlimit.go") + if err != nil { + t.Error(err) + break + } + files = append(files, f) + } + + for _, f := range files { + f.Close() + } +} |