// +build linux package volume import ( "strings" "testing" mounttypes "github.com/docker/docker/api/types/mount" ) func TestConvertTmpfsOptions(t *testing.T) { type testCase struct { opt mounttypes.TmpfsOptions readOnly bool expectedSubstrings []string unexpectedSubstrings []string } cases := []testCase{ { opt: mounttypes.TmpfsOptions{SizeBytes: 1024 * 1024, Mode: 0700}, readOnly: false, expectedSubstrings: []string{"size=1m", "mode=700"}, unexpectedSubstrings: []string{"ro"}, }, { opt: mounttypes.TmpfsOptions{}, readOnly: true, expectedSubstrings: []string{"ro"}, unexpectedSubstrings: []string{}, }, } for _, c := range cases { data, err := ConvertTmpfsOptions(&c.opt, c.readOnly) if err != nil { t.Fatalf("could not convert %+v (readOnly: %v) to string: %v", c.opt, c.readOnly, err) } t.Logf("data=%q", data) for _, s := range c.expectedSubstrings { if !strings.Contains(data, s) { t.Fatalf("expected substring: %s, got %v (case=%+v)", s, data, c) } } for _, s := range c.unexpectedSubstrings { if strings.Contains(data, s) { t.Fatalf("unexpected substring: %s, got %v (case=%+v)", s, data, c) } } } }