resize_test.go 2.0 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566
  1. package container // import "github.com/docker/docker/integration/container"
  2. import (
  3. "context"
  4. "net/http"
  5. "testing"
  6. "time"
  7. "github.com/docker/docker/api/types"
  8. "github.com/docker/docker/api/types/versions"
  9. "github.com/docker/docker/integration/internal/container"
  10. "github.com/docker/docker/internal/test/request"
  11. req "github.com/docker/docker/internal/test/request"
  12. "github.com/gotestyourself/gotestyourself/assert"
  13. is "github.com/gotestyourself/gotestyourself/assert/cmp"
  14. "github.com/gotestyourself/gotestyourself/poll"
  15. "github.com/gotestyourself/gotestyourself/skip"
  16. )
  17. func TestResize(t *testing.T) {
  18. defer setupTest(t)()
  19. client := request.NewAPIClient(t)
  20. ctx := context.Background()
  21. cID := container.Run(t, ctx, client)
  22. poll.WaitOn(t, container.IsInState(ctx, client, cID, "running"), poll.WithDelay(100*time.Millisecond))
  23. err := client.ContainerResize(ctx, cID, types.ResizeOptions{
  24. Height: 40,
  25. Width: 40,
  26. })
  27. assert.NilError(t, err)
  28. }
  29. func TestResizeWithInvalidSize(t *testing.T) {
  30. skip.If(t, versions.LessThan(testEnv.DaemonAPIVersion(), "1.32"), "broken in earlier versions")
  31. defer setupTest(t)()
  32. client := request.NewAPIClient(t)
  33. ctx := context.Background()
  34. cID := container.Run(t, ctx, client)
  35. poll.WaitOn(t, container.IsInState(ctx, client, cID, "running"), poll.WithDelay(100*time.Millisecond))
  36. endpoint := "/containers/" + cID + "/resize?h=foo&w=bar"
  37. res, _, err := req.Post(endpoint)
  38. assert.NilError(t, err)
  39. assert.Check(t, is.DeepEqual(http.StatusBadRequest, res.StatusCode))
  40. }
  41. func TestResizeWhenContainerNotStarted(t *testing.T) {
  42. defer setupTest(t)()
  43. client := request.NewAPIClient(t)
  44. ctx := context.Background()
  45. cID := container.Run(t, ctx, client, container.WithCmd("echo"))
  46. poll.WaitOn(t, container.IsInState(ctx, client, cID, "exited"), poll.WithDelay(100*time.Millisecond))
  47. err := client.ContainerResize(ctx, cID, types.ResizeOptions{
  48. Height: 40,
  49. Width: 40,
  50. })
  51. assert.Check(t, is.ErrorContains(err, "is not running"))
  52. }