stop_test.go 1.1 KB

12345678910111213141516171819202122232425262728293031323334353637383940
  1. package container // import "github.com/docker/docker/integration/container"
  2. import (
  3. "context"
  4. "testing"
  5. "time"
  6. containertypes "github.com/docker/docker/api/types/container"
  7. "github.com/docker/docker/integration/internal/container"
  8. "gotest.tools/v3/assert"
  9. "gotest.tools/v3/poll"
  10. )
  11. func TestStopContainerWithRestartPolicyAlways(t *testing.T) {
  12. defer setupTest(t)()
  13. client := testEnv.APIClient()
  14. ctx := context.Background()
  15. names := []string{"verifyRestart1-" + t.Name(), "verifyRestart2-" + t.Name()}
  16. for _, name := range names {
  17. container.Run(ctx, t, client,
  18. container.WithName(name),
  19. container.WithCmd("false"),
  20. container.WithRestartPolicy("always"),
  21. )
  22. }
  23. for _, name := range names {
  24. poll.WaitOn(t, container.IsInState(ctx, client, name, "running", "restarting"), poll.WithDelay(100*time.Millisecond))
  25. }
  26. for _, name := range names {
  27. err := client.ContainerStop(ctx, name, containertypes.StopOptions{})
  28. assert.NilError(t, err)
  29. }
  30. for _, name := range names {
  31. poll.WaitOn(t, container.IsStopped(ctx, client, name), poll.WithDelay(100*time.Millisecond))
  32. }
  33. }