diff options
Diffstat (limited to 'integration')
-rw-r--r-- | integration/container/kill_test.go | 8 | ||||
-rw-r--r-- | integration/container/links_linux_test.go | 4 | ||||
-rw-r--r-- | integration/container/ps_test.go | 32 | ||||
-rw-r--r-- | integration/daemon/daemon_test.go | 28 | ||||
-rw-r--r-- | integration/internal/build/build.go | 2 | ||||
-rw-r--r-- | integration/internal/swarm/states.go | 3 | ||||
-rw-r--r-- | integration/service/create_test.go | 19 | ||||
-rw-r--r-- | integration/service/list_test.go | 4 | ||||
-rw-r--r-- | integration/service/update_test.go | 10 | ||||
-rw-r--r-- | integration/system/disk_usage_test.go | 2 | ||||
-rw-r--r-- | integration/system/event_test.go | 13 |
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") |