diff options
author | Ricardo Domingos <ricardohsd@gmail.com> | 2018-01-12 04:55:21 +0800 |
---|---|---|
committer | Péter Szilágyi <peterke@gmail.com> | 2018-01-12 04:55:21 +0800 |
commit | 56152b31ac251d1cc68fcddbdad159ba5234c415 (patch) | |
tree | 0b3bca4a858593df684a20a37b5598a483f4b17f /common/fdlimit/fdlimit_test.go | |
parent | 023769d9d48fab92c1d4d7d97c0a08ae3ef2cdca (diff) | |
download | go-tangerine-56152b31ac251d1cc68fcddbdad159ba5234c415.tar go-tangerine-56152b31ac251d1cc68fcddbdad159ba5234c415.tar.gz go-tangerine-56152b31ac251d1cc68fcddbdad159ba5234c415.tar.bz2 go-tangerine-56152b31ac251d1cc68fcddbdad159ba5234c415.tar.lz go-tangerine-56152b31ac251d1cc68fcddbdad159ba5234c415.tar.xz go-tangerine-56152b31ac251d1cc68fcddbdad159ba5234c415.tar.zst go-tangerine-56152b31ac251d1cc68fcddbdad159ba5234c415.zip |
common/fdlimit: Move fdlimit files to separate package (#15850)
* common/fdlimit: Move fdlimit files to separate package
When go-ethereum is used as a library the calling program need to set
the FD limit.
This commit extract fdlimit files to a separate package so it can be
used outside of go-ethereum.
* common/fdlimit: Remove FdLimit from functions signature
* common/fdlimit: Rename fdlimit functions
Diffstat (limited to 'common/fdlimit/fdlimit_test.go')
-rw-r--r-- | common/fdlimit/fdlimit_test.go | 45 |
1 files changed, 45 insertions, 0 deletions
diff --git a/common/fdlimit/fdlimit_test.go b/common/fdlimit/fdlimit_test.go new file mode 100644 index 000000000..05e9f0b65 --- /dev/null +++ b/common/fdlimit/fdlimit_test.go @@ -0,0 +1,45 @@ +// Copyright 2016 The go-ethereum Authors +// This file is part of go-ethereum. +// +// go-ethereum is free software: you can redistribute it and/or modify +// it under the terms of the GNU General Public License as published by +// the Free Software Foundation, either version 3 of the License, or +// (at your option) any later version. +// +// go-ethereum is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +// GNU General Public License for more details. +// +// You should have received a copy of the GNU General Public License +// along with go-ethereum. If not, see <http://www.gnu.org/licenses/>. + +package fdlimit + +import ( + "fmt" + "testing" +) + +// TestFileDescriptorLimits simply tests whether the file descriptor allowance +// per this process can be retrieved. +func TestFileDescriptorLimits(t *testing.T) { + target := 4096 + hardlimit, err := Maximum() + if err != nil { + t.Fatal(err) + } + if hardlimit < target { + t.Skip(fmt.Sprintf("system limit is less than desired test target: %d < %d", hardlimit, target)) + } + + if limit, err := Current(); err != nil || limit <= 0 { + t.Fatalf("failed to retrieve file descriptor limit (%d): %v", limit, err) + } + if err := Raise(uint64(target)); err != nil { + t.Fatalf("failed to raise file allowance") + } + if limit, err := Current(); err != nil || limit < target { + t.Fatalf("failed to retrieve raised descriptor limit (have %v, want %v): %v", limit, target, err) + } +} |