ps_test.go 1.2 KB

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