summaryrefslogtreecommitdiff
path: root/integration
diff options
context:
space:
mode:
Diffstat (limited to 'integration')
-rw-r--r--integration/container/kill_test.go8
-rw-r--r--integration/container/links_linux_test.go4
-rw-r--r--integration/container/ps_test.go32
-rw-r--r--integration/daemon/daemon_test.go28
-rw-r--r--integration/internal/build/build.go2
-rw-r--r--integration/internal/swarm/states.go3
-rw-r--r--integration/service/create_test.go19
-rw-r--r--integration/service/list_test.go4
-rw-r--r--integration/service/update_test.go10
-rw-r--r--integration/system/disk_usage_test.go2
-rw-r--r--integration/system/event_test.go13
11 files changed, 75 insertions, 50 deletions
diff --git a/integration/container/kill_test.go b/integration/container/kill_test.go
index 50bc72063c..42adb7867a 100644
--- a/integration/container/kill_test.go
+++ b/integration/container/kill_test.go
@@ -2,6 +2,7 @@ package container // import "github.com/docker/docker/integration/container"
import (
"context"
+ "runtime"
"testing"
"time"
@@ -61,6 +62,11 @@ func TestKillContainer(t *testing.T) {
},
}
+ var pollOpts []poll.SettingOp
+ if runtime.GOOS == "windows" {
+ pollOpts = append(pollOpts, poll.WithTimeout(StopContainerWindowsPollTimeout))
+ }
+
for _, tc := range testCases {
tc := tc
t.Run(tc.doc, func(t *testing.T) {
@@ -70,7 +76,7 @@ func TestKillContainer(t *testing.T) {
err := client.ContainerKill(ctx, id, tc.signal)
assert.NilError(t, err)
- poll.WaitOn(t, container.IsInState(ctx, client, id, tc.status), poll.WithDelay(100*time.Millisecond))
+ poll.WaitOn(t, container.IsInState(ctx, client, id, tc.status), pollOpts...)
})
}
}
diff --git a/integration/container/links_linux_test.go b/integration/container/links_linux_test.go
index 3f038d8b90..538861c566 100644
--- a/integration/container/links_linux_test.go
+++ b/integration/container/links_linux_test.go
@@ -45,10 +45,8 @@ func TestLinksContainerNames(t *testing.T) {
container.Run(ctx, t, client, container.WithName(containerA))
container.Run(ctx, t, client, container.WithName(containerB), container.WithLinks(containerA+":"+containerA))
- f := filters.NewArgs(filters.Arg("name", containerA))
-
containers, err := client.ContainerList(ctx, types.ContainerListOptions{
- Filters: f,
+ Filters: filters.NewArgs(filters.Arg("name", containerA)),
})
assert.NilError(t, err)
assert.Check(t, is.Equal(1, len(containers)))
diff --git a/integration/container/ps_test.go b/integration/container/ps_test.go
index 6e3a09a19c..c55f1e91ed 100644
--- a/integration/container/ps_test.go
+++ b/integration/container/ps_test.go
@@ -22,27 +22,27 @@ func TestPsFilter(t *testing.T) {
containerIDs := func(containers []types.Container) []string {
var entries []string
- for _, container := range containers {
- entries = append(entries, container.ID)
+ for _, c := range containers {
+ entries = append(entries, c.ID)
}
return entries
}
- f1 := filters.NewArgs()
- f1.Add("since", top)
- q1, err := client.ContainerList(ctx, types.ContainerListOptions{
- All: true,
- Filters: f1,
+ t.Run("since", func(t *testing.T) {
+ results, err := client.ContainerList(ctx, types.ContainerListOptions{
+ All: true,
+ Filters: filters.NewArgs(filters.Arg("since", top)),
+ })
+ assert.NilError(t, err)
+ assert.Check(t, is.Contains(containerIDs(results), next))
})
- assert.NilError(t, err)
- assert.Check(t, is.Contains(containerIDs(q1), next))
- f2 := filters.NewArgs()
- f2.Add("before", top)
- q2, err := client.ContainerList(ctx, types.ContainerListOptions{
- All: true,
- Filters: f2,
+ t.Run("before", func(t *testing.T) {
+ results, err := client.ContainerList(ctx, types.ContainerListOptions{
+ All: true,
+ Filters: filters.NewArgs(filters.Arg("before", top)),
+ })
+ assert.NilError(t, err)
+ assert.Check(t, is.Contains(containerIDs(results), prev))
})
- assert.NilError(t, err)
- assert.Check(t, is.Contains(containerIDs(q2), prev))
}
diff --git a/integration/daemon/daemon_test.go b/integration/daemon/daemon_test.go
index 2242d3d4f1..7ecb2c0aa4 100644
--- a/integration/daemon/daemon_test.go
+++ b/integration/daemon/daemon_test.go
@@ -21,6 +21,7 @@ import (
"github.com/docker/docker/testutil/daemon"
"gotest.tools/v3/assert"
is "gotest.tools/v3/assert/cmp"
+ "gotest.tools/v3/icmd"
"gotest.tools/v3/skip"
)
@@ -400,3 +401,30 @@ func testLiveRestoreVolumeReferences(t *testing.T) {
runTest(t, "no")
})
}
+
+func TestDaemonDefaultBridgeWithFixedCidrButNoBip(t *testing.T) {
+ skip.If(t, runtime.GOOS == "windows")
+
+ bridgeName := "ext-bridge1"
+ d := daemon.New(t, daemon.WithEnvVars("DOCKER_TEST_CREATE_DEFAULT_BRIDGE="+bridgeName))
+ defer func() {
+ d.Stop(t)
+ d.Cleanup(t)
+ }()
+
+ defer func() {
+ // No need to clean up when running this test in rootless mode, as the
+ // interface is deleted when the daemon is stopped and the netns
+ // reclaimed by the kernel.
+ if !testEnv.IsRootless() {
+ deleteInterface(t, bridgeName)
+ }
+ }()
+ d.StartWithBusybox(t, "--bridge", bridgeName, "--fixed-cidr", "192.168.130.0/24")
+}
+
+func deleteInterface(t *testing.T, ifName string) {
+ icmd.RunCommand("ip", "link", "delete", ifName).Assert(t, icmd.Success)
+ icmd.RunCommand("iptables", "-t", "nat", "--flush").Assert(t, icmd.Success)
+ icmd.RunCommand("iptables", "--flush").Assert(t, icmd.Success)
+}
diff --git a/integration/internal/build/build.go b/integration/internal/build/build.go
index 9dbdd1241e..0631a53605 100644
--- a/integration/internal/build/build.go
+++ b/integration/internal/build/build.go
@@ -27,7 +27,7 @@ func Do(ctx context.Context, t *testing.T, client client.APIClient, buildCtx *fa
return img
}
-// GetImageIDFRommBody reads the image ID from the build response body.
+// GetImageIDFromBody reads the image ID from the build response body.
func GetImageIDFromBody(t *testing.T, body io.Reader) string {
var (
jm jsonmessage.JSONMessage
diff --git a/integration/internal/swarm/states.go b/integration/internal/swarm/states.go
index 3f69feeef3..f59be448ec 100644
--- a/integration/internal/swarm/states.go
+++ b/integration/internal/swarm/states.go
@@ -88,8 +88,7 @@ func RunningTasksCount(client client.ServiceAPIClient, serviceID string, instanc
// completed additionally, while polling, it verifies that the job never
// exceeds MaxConcurrent running tasks
func JobComplete(client client.CommonAPIClient, service swarmtypes.Service) func(log poll.LogT) poll.Result {
- filter := filters.NewArgs()
- filter.Add("service", service.ID)
+ filter := filters.NewArgs(filters.Arg("service", service.ID))
var jobIteration swarmtypes.Version
if service.JobStatus != nil {
diff --git a/integration/service/create_test.go b/integration/service/create_test.go
index b862415f3a..e394f5b600 100644
--- a/integration/service/create_test.go
+++ b/integration/service/create_test.go
@@ -2,7 +2,6 @@ package service // import "github.com/docker/docker/integration/service"
import (
"context"
- "fmt"
"io"
"strings"
"testing"
@@ -65,9 +64,9 @@ func testServiceCreateInit(daemonEnabled bool) func(t *testing.T) {
func inspectServiceContainer(t *testing.T, client client.APIClient, serviceID string) types.ContainerJSON {
t.Helper()
- filter := filters.NewArgs()
- filter.Add("label", fmt.Sprintf("com.docker.swarm.service.id=%s", serviceID))
- containers, err := client.ContainerList(context.Background(), types.ContainerListOptions{Filters: filter})
+ containers, err := client.ContainerList(context.Background(), types.ContainerListOptions{
+ Filters: filters.NewArgs(filters.Arg("label", "com.docker.swarm.service.id="+serviceID)),
+ })
assert.NilError(t, err)
assert.Check(t, is.Len(containers, 1))
@@ -426,11 +425,9 @@ func TestCreateServiceSysctls(t *testing.T) {
// earlier version of this test had to get container logs and was much
// more complex)
- // get all of the tasks of the service, so we can get the container
- filter := filters.NewArgs()
- filter.Add("service", serviceID)
+ // get all tasks of the service, so we can get the container
tasks, err := client.TaskList(ctx, types.TaskListOptions{
- Filters: filter,
+ Filters: filters.NewArgs(filters.Arg("service", serviceID)),
})
assert.NilError(t, err)
assert.Check(t, is.Equal(len(tasks), 1))
@@ -504,11 +501,9 @@ func TestCreateServiceCapabilities(t *testing.T) {
// we know that the capabilities is plumbed correctly. everything below that
// level has been tested elsewhere.
- // get all of the tasks of the service, so we can get the container
- filter := filters.NewArgs()
- filter.Add("service", serviceID)
+ // get all tasks of the service, so we can get the container
tasks, err := client.TaskList(ctx, types.TaskListOptions{
- Filters: filter,
+ Filters: filters.NewArgs(filters.Arg("service", serviceID)),
})
assert.NilError(t, err)
assert.Check(t, is.Equal(len(tasks), 1))
diff --git a/integration/service/list_test.go b/integration/service/list_test.go
index ca61eaf3aa..4f2653aaf2 100644
--- a/integration/service/list_test.go
+++ b/integration/service/list_test.go
@@ -57,10 +57,8 @@ func TestServiceListWithStatuses(t *testing.T) {
// serviceContainerCount function does not do. instead, we'll use a
// bespoke closure right here.
poll.WaitOn(t, func(log poll.LogT) poll.Result {
- filter := filters.NewArgs()
- filter.Add("service", id)
tasks, err := client.TaskList(context.Background(), types.TaskListOptions{
- Filters: filter,
+ Filters: filters.NewArgs(filters.Arg("service", id)),
})
running := 0
diff --git a/integration/service/update_test.go b/integration/service/update_test.go
index db12ec210d..a0952f35cc 100644
--- a/integration/service/update_test.go
+++ b/integration/service/update_test.go
@@ -328,10 +328,12 @@ func TestServiceUpdatePidsLimit(t *testing.T) {
func getServiceTaskContainer(ctx context.Context, t *testing.T, cli client.APIClient, serviceID string) types.ContainerJSON {
t.Helper()
- filter := filters.NewArgs()
- filter.Add("service", serviceID)
- filter.Add("desired-state", "running")
- tasks, err := cli.TaskList(ctx, types.TaskListOptions{Filters: filter})
+ tasks, err := cli.TaskList(ctx, types.TaskListOptions{
+ Filters: filters.NewArgs(
+ filters.Arg("service", serviceID),
+ filters.Arg("desired-state", "running"),
+ ),
+ })
assert.NilError(t, err)
assert.Assert(t, len(tasks) > 0)
diff --git a/integration/system/disk_usage_test.go b/integration/system/disk_usage_test.go
index a7bc863429..17d3b2c318 100644
--- a/integration/system/disk_usage_test.go
+++ b/integration/system/disk_usage_test.go
@@ -61,7 +61,7 @@ func TestDiskUsage(t *testing.T) {
ID: du.Images[0].ID,
RepoTags: []string{"busybox:latest"},
Size: du.LayersSize,
- VirtualSize: du.LayersSize,
+ VirtualSize: du.LayersSize, //nolint:staticcheck // ignore SA1019: field is deprecated, but still set on API < v1.44.
},
},
Containers: []*types.Container{},
diff --git a/integration/system/event_test.go b/integration/system/event_test.go
index 239910f0b8..4351c9bd29 100644
--- a/integration/system/event_test.go
+++ b/integration/system/event_test.go
@@ -43,12 +43,11 @@ func TestEventsExecDie(t *testing.T) {
)
assert.NilError(t, err)
- filters := filters.NewArgs(
- filters.Arg("container", cID),
- filters.Arg("event", "exec_die"),
- )
- msg, errors := client.Events(ctx, types.EventsOptions{
- Filters: filters,
+ msg, errs := client.Events(ctx, types.EventsOptions{
+ Filters: filters.NewArgs(
+ filters.Arg("container", cID),
+ filters.Arg("event", "exec_die"),
+ ),
})
err = client.ContainerExecStart(ctx, id.ID,
@@ -66,7 +65,7 @@ func TestEventsExecDie(t *testing.T) {
assert.Equal(t, m.Action, "exec_die")
assert.Equal(t, m.Actor.Attributes["execID"], id.ID)
assert.Equal(t, m.Actor.Attributes["exitCode"], "0")
- case err = <-errors:
+ case err = <-errs:
assert.NilError(t, err)
case <-time.After(time.Second * 3):
t.Fatal("timeout hit")