浏览代码

Migrate TestCreateTmpfsMountsTarget test to api test

This fix migrates TestCreateTmpfsMountsTarget test to api test,
and removed integration-cli/docker_cli_create_unix_test.go

Signed-off-by: Yong Tang <yong.tang.github@outlook.com>
Yong Tang 7 年之前
父节点
当前提交
f601bc16d5
共有 1 个文件被更改,包括 45 次插入0 次删除
  1. 45 0
      integration/container/create_test.go

+ 45 - 0
integration/container/create_test.go

@@ -9,6 +9,7 @@ import (
 	"github.com/docker/docker/api/types/network"
 	"github.com/docker/docker/api/types/network"
 	"github.com/docker/docker/integration/util/request"
 	"github.com/docker/docker/integration/util/request"
 	"github.com/docker/docker/internal/testutil"
 	"github.com/docker/docker/internal/testutil"
+	"github.com/gotestyourself/gotestyourself/skip"
 )
 )
 
 
 func TestCreateFailsWhenIdentifierDoesNotExist(t *testing.T) {
 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)
+	}
+}