diff --git a/integration-cli/docker_cli_create_unix_test.go b/integration-cli/docker_cli_create_unix_test.go deleted file mode 100644 index 1b0bb4a3dc..0000000000 --- a/integration-cli/docker_cli_create_unix_test.go +++ /dev/null @@ -1,43 +0,0 @@ -// +build !windows - -package main - -import ( - "strings" - - "github.com/go-check/check" -) - -// Test case for #30166 (target was not validated) -func (s *DockerSuite) TestCreateTmpfsMountsTarget(c *check.C) { - testRequires(c, DaemonIsLinux) - type testCase struct { - target string - expectedError string - } - cases := []testCase{ - { - target: ".", - expectedError: "mount path must be absolute", - }, - { - target: "foo", - expectedError: "mount path must be absolute", - }, - { - target: "/", - expectedError: "destination can't be '/'", - }, - { - target: "//", - expectedError: "destination can't be '/'", - }, - } - for _, x := range cases { - out, _, _ := dockerCmdWithError("create", "--tmpfs", x.target, "busybox", "sh") - if x.expectedError != "" && !strings.Contains(out, x.expectedError) { - c.Fatalf("mounting tmpfs over %q should fail with %q, but got %q", - x.target, x.expectedError, out) - } - } -} diff --git a/integration/container/create_test.go b/integration/container/create_test.go index a3028f19ad..ace90700e1 100644 --- a/integration/container/create_test.go +++ b/integration/container/create_test.go @@ -9,6 +9,7 @@ import ( "github.com/docker/docker/api/types/network" "github.com/docker/docker/integration/util/request" "github.com/docker/docker/internal/testutil" + "github.com/gotestyourself/gotestyourself/skip" ) func TestCreateFailsWhenIdentifierDoesNotExist(t *testing.T) { @@ -91,3 +92,47 @@ func TestCreateWithInvalidEnv(t *testing.T) { }) } } + +// Test case for #30166 (target was not validated) +func TestCreateTmpfsMountsTarget(t *testing.T) { + skip.If(t, testEnv.DaemonInfo.OSType != "linux") + + defer setupTest(t)() + client := request.NewAPIClient(t) + + testCases := []struct { + target string + expectedError string + }{ + { + target: ".", + expectedError: "mount path must be absolute", + }, + { + target: "foo", + expectedError: "mount path must be absolute", + }, + { + target: "/", + expectedError: "destination can't be '/'", + }, + { + target: "//", + expectedError: "destination can't be '/'", + }, + } + + for _, tc := range testCases { + _, err := client.ContainerCreate(context.Background(), + &container.Config{ + Image: "busybox", + }, + &container.HostConfig{ + Tmpfs: map[string]string{tc.target: ""}, + }, + &network.NetworkingConfig{}, + "", + ) + testutil.ErrorContains(t, err, tc.expectedError) + } +}