1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253 |
- package image // import "github.com/docker/docker/integration/image"
- import (
- "context"
- "strings"
- "testing"
- "github.com/docker/docker/api/types"
- "github.com/docker/docker/api/types/filters"
- "github.com/docker/docker/api/types/versions"
- "gotest.tools/v3/assert"
- is "gotest.tools/v3/assert/cmp"
- "gotest.tools/v3/skip"
- )
- // Regression : #38171
- func TestImagesFilterMultiReference(t *testing.T) {
- skip.If(t, versions.LessThan(testEnv.DaemonAPIVersion(), "1.40"), "broken in earlier versions")
- defer setupTest(t)()
- client := testEnv.APIClient()
- ctx := context.Background()
- name := strings.ToLower(t.Name())
- repoTags := []string{
- name + ":v1",
- name + ":v2",
- name + ":v3",
- name + ":v4",
- }
- for _, repoTag := range repoTags {
- err := client.ImageTag(ctx, "busybox:latest", repoTag)
- assert.NilError(t, err)
- }
- filter := filters.NewArgs()
- filter.Add("reference", repoTags[0])
- filter.Add("reference", repoTags[1])
- filter.Add("reference", repoTags[2])
- options := types.ImageListOptions{
- All: false,
- Filters: filter,
- }
- images, err := client.ImageList(ctx, options)
- assert.NilError(t, err)
- assert.Check(t, is.Equal(len(images[0].RepoTags), 3))
- for _, repoTag := range images[0].RepoTags {
- if repoTag != repoTags[0] && repoTag != repoTags[1] && repoTag != repoTags[2] {
- t.Errorf("list images doesn't match any repoTag we expected, repoTag: %s", repoTag)
- }
- }
- }
|