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  }