diff --git a/integration/container/logs_test.go b/integration/container/logs_test.go index f166c6b46c..3a1e933a87 100644 --- a/integration/container/logs_test.go +++ b/integration/container/logs_test.go @@ -124,6 +124,11 @@ func testLogs(t *testing.T, logDriver string) { }, } + pollTimeout := time.Second * 10 + if testEnv.OSType == "windows" { + pollTimeout = StopContainerWindowsPollTimeout + } + for _, tC := range testCases { tC := tC t.Run(tC.desc, func(t *testing.T) { @@ -136,7 +141,9 @@ func testLogs(t *testing.T, logDriver string) { ) defer client.ContainerRemove(ctx, id, types.ContainerRemoveOptions{Force: true}) - poll.WaitOn(t, container.IsStopped(ctx, client, id), poll.WithDelay(time.Millisecond*100)) + poll.WaitOn(t, container.IsStopped(ctx, client, id), + poll.WithDelay(time.Millisecond*100), + poll.WithTimeout(pollTimeout)) logs, err := client.ContainerLogs(ctx, id, tC.logOps) assert.NilError(t, err) diff --git a/integration/container/stop_test.go b/integration/container/stop_test.go index b026527e88..9bdaff9edb 100644 --- a/integration/container/stop_test.go +++ b/integration/container/stop_test.go @@ -11,6 +11,9 @@ import ( "gotest.tools/v3/poll" ) +// hcs can sometimes take a long time to stop container. +const StopContainerWindowsPollTimeout = 75 * time.Second + func TestStopContainerWithRestartPolicyAlways(t *testing.T) { defer setupTest(t)() client := testEnv.APIClient() diff --git a/integration/container/wait_test.go b/integration/container/wait_test.go index 27f07f00f5..9140faa2f6 100644 --- a/integration/container/wait_test.go +++ b/integration/container/wait_test.go @@ -170,7 +170,7 @@ func TestWaitConditions(t *testing.T) { assert.NilError(t, err) case waitRes := <-waitResC: assert.Check(t, is.Equal(int64(99), waitRes.StatusCode)) - case <-time.After(75 * time.Second): + case <-time.After(StopContainerWindowsPollTimeout): info, _ := cli.ContainerInspect(ctx, containerID) t.Fatalf("Timed out waiting for container exit code (status = %q)", info.State.Status) }