github.com/rumpl/bof@v23.0.0-rc.2+incompatible/integration/container/ps_test.go (about)

     1  package container // import "github.com/docker/docker/integration/container"
     2  
     3  import (
     4  	"context"
     5  	"testing"
     6  
     7  	"github.com/docker/docker/api/types"
     8  	"github.com/docker/docker/api/types/filters"
     9  	"github.com/docker/docker/integration/internal/container"
    10  	"gotest.tools/v3/assert"
    11  	is "gotest.tools/v3/assert/cmp"
    12  )
    13  
    14  func TestPsFilter(t *testing.T) {
    15  	defer setupTest(t)()
    16  	client := testEnv.APIClient()
    17  	ctx := context.Background()
    18  
    19  	prev := container.Create(ctx, t, client)
    20  	top := container.Create(ctx, t, client)
    21  	next := container.Create(ctx, t, client)
    22  
    23  	containerIDs := func(containers []types.Container) []string {
    24  		var entries []string
    25  		for _, container := range containers {
    26  			entries = append(entries, container.ID)
    27  		}
    28  		return entries
    29  	}
    30  
    31  	f1 := filters.NewArgs()
    32  	f1.Add("since", top)
    33  	q1, err := client.ContainerList(ctx, types.ContainerListOptions{
    34  		All:     true,
    35  		Filters: f1,
    36  	})
    37  	assert.NilError(t, err)
    38  	assert.Check(t, is.Contains(containerIDs(q1), next))
    39  
    40  	f2 := filters.NewArgs()
    41  	f2.Add("before", top)
    42  	q2, err := client.ContainerList(ctx, types.ContainerListOptions{
    43  		All:     true,
    44  		Filters: f2,
    45  	})
    46  	assert.NilError(t, err)
    47  	assert.Check(t, is.Contains(containerIDs(q2), prev))
    48  }