github.com/demonoid81/moby@v0.0.0-20200517203328-62dd8e17c460/opts/ulimit_test.go (about) 1 package opts // import "github.com/demonoid81/moby/opts" 2 3 import ( 4 "testing" 5 6 units "github.com/docker/go-units" 7 ) 8 9 func TestUlimitOpt(t *testing.T) { 10 ulimitMap := map[string]*units.Ulimit{ 11 "nofile": {Name: "nofile", Hard: 1024, Soft: 512}, 12 } 13 14 ulimitOpt := NewUlimitOpt(&ulimitMap) 15 16 expected := "[nofile=512:1024]" 17 if ulimitOpt.String() != expected { 18 t.Fatalf("Expected %v, got %v", expected, ulimitOpt) 19 } 20 21 // Valid ulimit append to opts 22 if err := ulimitOpt.Set("core=1024:1024"); err != nil { 23 t.Fatal(err) 24 } 25 26 // Invalid ulimit type returns an error and do not append to opts 27 if err := ulimitOpt.Set("notavalidtype=1024:1024"); err == nil { 28 t.Fatalf("Expected error on invalid ulimit type") 29 } 30 expected = "[nofile=512:1024 core=1024:1024]" 31 expected2 := "[core=1024:1024 nofile=512:1024]" 32 result := ulimitOpt.String() 33 if result != expected && result != expected2 { 34 t.Fatalf("Expected %v or %v, got %v", expected, expected2, ulimitOpt) 35 } 36 37 // And test GetList 38 ulimits := ulimitOpt.GetList() 39 if len(ulimits) != 2 { 40 t.Fatalf("Expected a ulimit list of 2, got %v", ulimits) 41 } 42 }