github.com/spotify/syslog-redirector-golang@v0.0.0-20140320174030-4859f03d829a/src/pkg/syscall/rlimit_linux_test.go (about) 1 // Copyright 2013 The Go Authors. All rights reserved. 2 // Use of this source code is governed by a BSD-style 3 // license that can be found in the LICENSE file. 4 5 package syscall_test 6 7 import ( 8 "syscall" 9 "testing" 10 ) 11 12 func TestRlimit(t *testing.T) { 13 var rlimit, zero syscall.Rlimit 14 err := syscall.Getrlimit(syscall.RLIMIT_NOFILE, &rlimit) 15 if err != nil { 16 t.Fatalf("Getrlimit: save failed: %v", err) 17 } 18 if zero == rlimit { 19 t.Fatalf("Getrlimit: save failed: got zero value %#v", rlimit) 20 } 21 set := rlimit 22 set.Cur = set.Max - 1 23 err = syscall.Setrlimit(syscall.RLIMIT_NOFILE, &set) 24 if err != nil { 25 t.Fatalf("Setrlimit: set failed: %#v %v", set, err) 26 } 27 var get syscall.Rlimit 28 err = syscall.Getrlimit(syscall.RLIMIT_NOFILE, &get) 29 if err != nil { 30 t.Fatalf("Getrlimit: get failed: %v", err) 31 } 32 set = rlimit 33 set.Cur = set.Max - 1 34 if set != get { 35 t.Fatalf("Rlimit: change failed: wanted %#v got %#v", set, get) 36 } 37 err = syscall.Setrlimit(syscall.RLIMIT_NOFILE, &rlimit) 38 if err != nil { 39 t.Fatalf("Setrlimit: restore failed: %#v %v", rlimit, err) 40 } 41 }