resize_test.go 1.8 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465
  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. req "github.com/docker/docker/testutil/request"
  11. "gotest.tools/v3/assert"
  12. is "gotest.tools/v3/assert/cmp"
  13. "gotest.tools/v3/poll"
  14. "gotest.tools/v3/skip"
  15. )
  16. func TestResize(t *testing.T) {
  17. defer setupTest(t)()
  18. client := testEnv.APIClient()
  19. ctx := context.Background()
  20. cID := container.Run(ctx, t, client, container.WithTty(true))
  21. poll.WaitOn(t, container.IsInState(ctx, client, cID, "running"), poll.WithDelay(100*time.Millisecond))
  22. err := client.ContainerResize(ctx, cID, types.ResizeOptions{
  23. Height: 40,
  24. Width: 40,
  25. })
  26. assert.NilError(t, err)
  27. }
  28. func TestResizeWithInvalidSize(t *testing.T) {
  29. skip.If(t, versions.LessThan(testEnv.DaemonAPIVersion(), "1.32"), "broken in earlier versions")
  30. defer setupTest(t)()
  31. client := testEnv.APIClient()
  32. ctx := context.Background()
  33. cID := container.Run(ctx, t, client)
  34. poll.WaitOn(t, container.IsInState(ctx, client, cID, "running"), poll.WithDelay(100*time.Millisecond))
  35. endpoint := "/containers/" + cID + "/resize?h=foo&w=bar"
  36. res, _, err := req.Post(endpoint)
  37. assert.NilError(t, err)
  38. assert.Check(t, is.DeepEqual(http.StatusBadRequest, res.StatusCode))
  39. }
  40. func TestResizeWhenContainerNotStarted(t *testing.T) {
  41. defer setupTest(t)()
  42. client := testEnv.APIClient()
  43. ctx := context.Background()
  44. cID := container.Run(ctx, t, client, container.WithCmd("echo"))
  45. poll.WaitOn(t, container.IsInState(ctx, client, cID, "exited"), poll.WithDelay(100*time.Millisecond))
  46. err := client.ContainerResize(ctx, cID, types.ResizeOptions{
  47. Height: 40,
  48. Width: 40,
  49. })
  50. assert.Check(t, is.ErrorContains(err, "is not running"))
  51. }