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