github.com/rawahars/moby@v24.0.4+incompatible/integration/container/stop_test.go (about) 1 package container // import "github.com/docker/docker/integration/container" 2 3 import ( 4 "context" 5 "testing" 6 "time" 7 8 containertypes "github.com/docker/docker/api/types/container" 9 "github.com/docker/docker/integration/internal/container" 10 "gotest.tools/v3/assert" 11 "gotest.tools/v3/poll" 12 ) 13 14 // hcs can sometimes take a long time to stop container. 15 const StopContainerWindowsPollTimeout = 75 * time.Second 16 17 func TestStopContainerWithRestartPolicyAlways(t *testing.T) { 18 defer setupTest(t)() 19 client := testEnv.APIClient() 20 ctx := context.Background() 21 22 names := []string{"verifyRestart1-" + t.Name(), "verifyRestart2-" + t.Name()} 23 for _, name := range names { 24 container.Run(ctx, t, client, 25 container.WithName(name), 26 container.WithCmd("false"), 27 container.WithRestartPolicy("always"), 28 ) 29 } 30 31 for _, name := range names { 32 poll.WaitOn(t, container.IsInState(ctx, client, name, "running", "restarting"), poll.WithDelay(100*time.Millisecond)) 33 } 34 35 for _, name := range names { 36 err := client.ContainerStop(ctx, name, containertypes.StopOptions{}) 37 assert.NilError(t, err) 38 } 39 40 for _, name := range names { 41 poll.WaitOn(t, container.IsStopped(ctx, client, name), poll.WithDelay(100*time.Millisecond)) 42 } 43 }