1
0
Fork 0
mirror of https://github.com/moby/moby.git synced 2022-11-09 12:21:53 -05:00

Merge pull request #36241 from yongtang/02072018-create-tests

Migrate TestCreateTmpfsMountsTarget test to api test
This commit is contained in:
Yong Tang 2018-02-08 14:58:06 -08:00 committed by GitHub
commit 15001f83bd
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
2 changed files with 45 additions and 43 deletions

View file

@ -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)
}
}
}

View file

@ -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)
}
}