github.com/opencontainers/runtime-tools@v0.9.0/validation/process_rlimits/process_rlimits.go (about)

     1  package main
     2  
     3  import (
     4  	"os"
     5  	"runtime"
     6  
     7  	"github.com/opencontainers/runtime-tools/validation/util"
     8  )
     9  
    10  func main() {
    11  	if "linux" != runtime.GOOS && "solaris" != runtime.GOOS {
    12  		util.Skip("POSIX-specific process.rlimits test", map[string]string{"OS": runtime.GOOS})
    13  		os.Exit(0)
    14  	}
    15  
    16  	g, err := util.GetDefaultGenerator()
    17  	if err != nil {
    18  		util.Fatal(err)
    19  	}
    20  
    21  	var gigaBytes uint64 = 1024 * 1024 * 1024
    22  	g.AddProcessRlimits("RLIMIT_AS", 2*gigaBytes, 1*gigaBytes)
    23  	g.AddProcessRlimits("RLIMIT_CORE", 4*gigaBytes, 3*gigaBytes)
    24  	g.AddProcessRlimits("RLIMIT_DATA", 6*gigaBytes, 5*gigaBytes)
    25  	g.AddProcessRlimits("RLIMIT_FSIZE", 8*gigaBytes, 7*gigaBytes)
    26  	g.AddProcessRlimits("RLIMIT_STACK", 10*gigaBytes, 9*gigaBytes)
    27  
    28  	g.AddProcessRlimits("RLIMIT_CPU", 120, 60)       // seconds
    29  	g.AddProcessRlimits("RLIMIT_NOFILE", 4000, 3000) // number of files
    30  	err = util.RuntimeInsideValidate(g, nil, nil)
    31  	if err != nil {
    32  		util.Fatal(err)
    33  	}
    34  }