github.com/linapex/ethereum-go-chinese@v0.0.0-20190316121929-f8b7a73c3fa1/common/fdlimit/fdlimit_test.go (about)

     1  
     2  //<developer>
     3  //    <name>linapex 曹一峰</name>
     4  //    <email>linapex@163.com</email>
     5  //    <wx>superexc</wx>
     6  //    <qqgroup>128148617</qqgroup>
     7  //    <url>https://jsq.ink</url>
     8  //    <role>pku engineer</role>
     9  //    <date>2019-03-16 19:16:33</date>
    10  //</624450073375281152>
    11  
    12  
    13  package fdlimit
    14  
    15  import (
    16  	"fmt"
    17  	"testing"
    18  )
    19  
    20  //testfiledescriptor限制只测试文件描述符是否允许
    21  //根据此过程可以检索。
    22  func TestFileDescriptorLimits(t *testing.T) {
    23  	target := 4096
    24  	hardlimit, err := Maximum()
    25  	if err != nil {
    26  		t.Fatal(err)
    27  	}
    28  	if hardlimit < target {
    29  		t.Skip(fmt.Sprintf("system limit is less than desired test target: %d < %d", hardlimit, target))
    30  	}
    31  
    32  	if limit, err := Current(); err != nil || limit <= 0 {
    33  		t.Fatalf("failed to retrieve file descriptor limit (%d): %v", limit, err)
    34  	}
    35  	if err := Raise(uint64(target)); err != nil {
    36  		t.Fatalf("failed to raise file allowance")
    37  	}
    38  	if limit, err := Current(); err != nil || limit < target {
    39  		t.Fatalf("failed to retrieve raised descriptor limit (have %v, want %v): %v", limit, target, err)
    40  	}
    41  }
    42