| package opts // import "github.com/docker/docker/opts" |
| |
| import ( |
| "testing" |
| |
| "github.com/docker/go-units" |
| ) |
| |
| func TestUlimitOpt(t *testing.T) { |
| ulimitMap := map[string]*units.Ulimit{ |
| "nofile": {"nofile", 1024, 512}, |
| } |
| |
| ulimitOpt := NewUlimitOpt(&ulimitMap) |
| |
| expected := "[nofile=512:1024]" |
| if ulimitOpt.String() != expected { |
| t.Fatalf("Expected %v, got %v", expected, ulimitOpt) |
| } |
| |
| // Valid ulimit append to opts |
| if err := ulimitOpt.Set("core=1024:1024"); err != nil { |
| t.Fatal(err) |
| } |
| |
| // Invalid ulimit type returns an error and do not append to opts |
| if err := ulimitOpt.Set("notavalidtype=1024:1024"); err == nil { |
| t.Fatalf("Expected error on invalid ulimit type") |
| } |
| expected = "[nofile=512:1024 core=1024:1024]" |
| expected2 := "[core=1024:1024 nofile=512:1024]" |
| result := ulimitOpt.String() |
| if result != expected && result != expected2 { |
| t.Fatalf("Expected %v or %v, got %v", expected, expected2, ulimitOpt) |
| } |
| |
| // And test GetList |
| ulimits := ulimitOpt.GetList() |
| if len(ulimits) != 2 { |
| t.Fatalf("Expected a ulimit list of 2, got %v", ulimits) |
| } |
| } |