github.com/zhouyu0/docker-note@v0.0.0-20190722021225-b8d3825084db/integration/image/list_test.go (about) 1 package image // import "github.com/docker/docker/integration/image" 2 3 import ( 4 "context" 5 "testing" 6 7 "github.com/docker/docker/api/types" 8 "github.com/docker/docker/api/types/filters" 9 "gotest.tools/assert" 10 is "gotest.tools/assert/cmp" 11 ) 12 13 // Regression : #38171 14 func TestImagesFilterMultiReference(t *testing.T) { 15 defer setupTest(t)() 16 client := testEnv.APIClient() 17 ctx := context.Background() 18 19 name := "images_filter_multi_reference" 20 repoTags := []string{ 21 name + ":v1", 22 name + ":v2", 23 name + ":v3", 24 name + ":v4", 25 } 26 27 for _, repoTag := range repoTags { 28 err := client.ImageTag(ctx, "busybox:latest", repoTag) 29 assert.NilError(t, err) 30 } 31 32 filter := filters.NewArgs() 33 filter.Add("reference", repoTags[0]) 34 filter.Add("reference", repoTags[1]) 35 filter.Add("reference", repoTags[2]) 36 options := types.ImageListOptions{ 37 All: false, 38 Filters: filter, 39 } 40 images, err := client.ImageList(ctx, options) 41 assert.NilError(t, err) 42 43 assert.Check(t, is.Equal(len(images[0].RepoTags), 3)) 44 for _, repoTag := range images[0].RepoTags { 45 if repoTag != repoTags[0] && repoTag != repoTags[1] && repoTag != repoTags[2] { 46 t.Errorf("list images doesn't match any repoTag we expected, repoTag: %s", repoTag) 47 } 48 } 49 }