summaryrefslogtreecommitdiff
path: root/src/pkg/syscall/rlimit_linux_test.go
diff options
context:
space:
mode:
authorMichael Stapelberg <michael@stapelberg.de>2013-08-13 13:44:24 +0200
committerMichael Stapelberg <michael@stapelberg.de>2013-08-13 13:44:24 +0200
commitb901efe83e212f0c34c769c079e41373da12d723 (patch)
treeae9d79e0fe6e4972cdd46aa196327cde714dd4f8 /src/pkg/syscall/rlimit_linux_test.go
parent09f84a75bc63a6316d575f531489d69ec8ade2e8 (diff)
downloadgolang-b901efe83e212f0c34c769c079e41373da12d723.tar.gz
Imported Upstream version 1.1.2upstream/1.1.2
Diffstat (limited to 'src/pkg/syscall/rlimit_linux_test.go')
-rw-r--r--src/pkg/syscall/rlimit_linux_test.go41
1 files changed, 41 insertions, 0 deletions
diff --git a/src/pkg/syscall/rlimit_linux_test.go b/src/pkg/syscall/rlimit_linux_test.go
new file mode 100644
index 000000000..4ec720e93
--- /dev/null
+++ b/src/pkg/syscall/rlimit_linux_test.go
@@ -0,0 +1,41 @@
+// Copyright 2013 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.
+
+package syscall_test
+
+import (
+ "syscall"
+ "testing"
+)
+
+func TestRlimit(t *testing.T) {
+ var rlimit, zero syscall.Rlimit
+ err := syscall.Getrlimit(syscall.RLIMIT_NOFILE, &rlimit)
+ if err != nil {
+ t.Fatalf("Getrlimit: save failed: %v", err)
+ }
+ if zero == rlimit {
+ t.Fatalf("Getrlimit: save failed: got zero value %#v", rlimit)
+ }
+ set := rlimit
+ set.Cur = set.Max - 1
+ err = syscall.Setrlimit(syscall.RLIMIT_NOFILE, &set)
+ if 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 {
+ t.Fatalf("Getrlimit: get failed: %v", err)
+ }
+ set = rlimit
+ set.Cur = set.Max - 1
+ if set != get {
+ t.Fatalf("Rlimit: change failed: wanted %#v got %#v", set, get)
+ }
+ err = syscall.Setrlimit(syscall.RLIMIT_NOFILE, &rlimit)
+ if err != nil {
+ t.Fatalf("Setrlimit: restore failed: %#v %v", rlimit, err)
+ }
+}