resize_test.go 1.8 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556
  1. package container // import "github.com/docker/docker/integration/container"
  2. import (
  3. "net/http"
  4. "testing"
  5. "github.com/docker/docker/api/types"
  6. "github.com/docker/docker/api/types/versions"
  7. "github.com/docker/docker/errdefs"
  8. "github.com/docker/docker/integration/internal/container"
  9. req "github.com/docker/docker/testutil/request"
  10. "gotest.tools/v3/assert"
  11. is "gotest.tools/v3/assert/cmp"
  12. "gotest.tools/v3/skip"
  13. )
  14. func TestResize(t *testing.T) {
  15. ctx := setupTest(t)
  16. apiClient := testEnv.APIClient()
  17. t.Run("success", func(t *testing.T) {
  18. cID := container.Run(ctx, t, apiClient, container.WithTty(true))
  19. err := apiClient.ContainerResize(ctx, cID, types.ResizeOptions{
  20. Height: 40,
  21. Width: 40,
  22. })
  23. assert.NilError(t, err)
  24. // TODO(thaJeztah): also check if the resize happened
  25. //
  26. // Note: container inspect shows the initial size that was
  27. // set when creating the container. Actual resize happens in
  28. // containerd, and currently does not update the container's
  29. // config after running (but does send a "resize" event).
  30. })
  31. t.Run("invalid size", func(t *testing.T) {
  32. skip.If(t, versions.LessThan(testEnv.DaemonAPIVersion(), "1.32"), "broken in earlier versions")
  33. cID := container.Run(ctx, t, apiClient)
  34. // Manually creating a request here, as the APIClient would invalidate
  35. // these values before they're sent.
  36. res, _, err := req.Post(ctx, "/containers/"+cID+"/resize?h=foo&w=bar")
  37. assert.NilError(t, err)
  38. assert.Check(t, is.DeepEqual(http.StatusBadRequest, res.StatusCode))
  39. })
  40. t.Run("invalid state", func(t *testing.T) {
  41. cID := container.Create(ctx, t, apiClient, container.WithCmd("echo"))
  42. err := apiClient.ContainerResize(ctx, cID, types.ResizeOptions{
  43. Height: 40,
  44. Width: 40,
  45. })
  46. assert.Check(t, is.ErrorType(err, errdefs.IsConflict))
  47. assert.Check(t, is.ErrorContains(err, "is not running"))
  48. })
  49. }