mirror of
https://github.com/moby/moby.git
synced 2025-08-01 05:47:11 +03:00
fix and skip some tests based on API version
Signed-off-by: Anda Xu <anda.xu@docker.com> Co-authored-by: Anda Xu <anda.xu@docker.com> Co-authored-by: Tibor Vass <tibor@docker.com>
This commit is contained in:
@ -21,6 +21,7 @@ import (
|
||||
containertypes "github.com/docker/docker/api/types/container"
|
||||
mounttypes "github.com/docker/docker/api/types/mount"
|
||||
networktypes "github.com/docker/docker/api/types/network"
|
||||
"github.com/docker/docker/api/types/versions"
|
||||
"github.com/docker/docker/client"
|
||||
"github.com/docker/docker/integration-cli/checker"
|
||||
"github.com/docker/docker/integration-cli/cli"
|
||||
@ -724,13 +725,23 @@ func (s *DockerSuite) TestContainerAPIVerifyHeader(c *check.C) {
|
||||
// Try with no content-type
|
||||
res, body, err := create("")
|
||||
c.Assert(err, checker.IsNil)
|
||||
c.Assert(res.StatusCode, checker.Equals, http.StatusBadRequest)
|
||||
// todo: we need to figure out a better way to compare between dockerd versions
|
||||
// comparing between daemon API version is not precise.
|
||||
if versions.GreaterThanOrEqualTo(testEnv.DaemonAPIVersion(), "1.32") {
|
||||
c.Assert(res.StatusCode, checker.Equals, http.StatusBadRequest)
|
||||
} else {
|
||||
c.Assert(res.StatusCode, checker.Not(checker.Equals), http.StatusOK)
|
||||
}
|
||||
body.Close()
|
||||
|
||||
// Try with wrong content-type
|
||||
res, body, err = create("application/xml")
|
||||
c.Assert(err, checker.IsNil)
|
||||
c.Assert(res.StatusCode, checker.Equals, http.StatusBadRequest)
|
||||
if versions.GreaterThanOrEqualTo(testEnv.DaemonAPIVersion(), "1.32") {
|
||||
c.Assert(res.StatusCode, checker.Equals, http.StatusBadRequest)
|
||||
} else {
|
||||
c.Assert(res.StatusCode, checker.Not(checker.Equals), http.StatusOK)
|
||||
}
|
||||
body.Close()
|
||||
|
||||
// now application/json
|
||||
@ -756,7 +767,11 @@ func (s *DockerSuite) TestContainerAPIInvalidPortSyntax(c *check.C) {
|
||||
|
||||
res, body, err := request.Post("/containers/create", request.RawString(config), request.JSON)
|
||||
c.Assert(err, checker.IsNil)
|
||||
c.Assert(res.StatusCode, checker.Equals, http.StatusBadRequest)
|
||||
if versions.GreaterThanOrEqualTo(testEnv.DaemonAPIVersion(), "1.32") {
|
||||
c.Assert(res.StatusCode, checker.Equals, http.StatusBadRequest)
|
||||
} else {
|
||||
c.Assert(res.StatusCode, checker.Not(checker.Equals), http.StatusOK)
|
||||
}
|
||||
|
||||
b, err := request.ReadBody(body)
|
||||
c.Assert(err, checker.IsNil)
|
||||
@ -776,7 +791,11 @@ func (s *DockerSuite) TestContainerAPIRestartPolicyInvalidPolicyName(c *check.C)
|
||||
|
||||
res, body, err := request.Post("/containers/create", request.RawString(config), request.JSON)
|
||||
c.Assert(err, checker.IsNil)
|
||||
c.Assert(res.StatusCode, checker.Equals, http.StatusBadRequest)
|
||||
if versions.GreaterThanOrEqualTo(testEnv.DaemonAPIVersion(), "1.32") {
|
||||
c.Assert(res.StatusCode, checker.Equals, http.StatusBadRequest)
|
||||
} else {
|
||||
c.Assert(res.StatusCode, checker.Not(checker.Equals), http.StatusOK)
|
||||
}
|
||||
|
||||
b, err := request.ReadBody(body)
|
||||
c.Assert(err, checker.IsNil)
|
||||
@ -796,7 +815,11 @@ func (s *DockerSuite) TestContainerAPIRestartPolicyRetryMismatch(c *check.C) {
|
||||
|
||||
res, body, err := request.Post("/containers/create", request.RawString(config), request.JSON)
|
||||
c.Assert(err, checker.IsNil)
|
||||
c.Assert(res.StatusCode, checker.Equals, http.StatusBadRequest)
|
||||
if versions.GreaterThanOrEqualTo(testEnv.DaemonAPIVersion(), "1.32") {
|
||||
c.Assert(res.StatusCode, checker.Equals, http.StatusBadRequest)
|
||||
} else {
|
||||
c.Assert(res.StatusCode, checker.Not(checker.Equals), http.StatusOK)
|
||||
}
|
||||
|
||||
b, err := request.ReadBody(body)
|
||||
c.Assert(err, checker.IsNil)
|
||||
@ -816,7 +839,11 @@ func (s *DockerSuite) TestContainerAPIRestartPolicyNegativeRetryCount(c *check.C
|
||||
|
||||
res, body, err := request.Post("/containers/create", request.RawString(config), request.JSON)
|
||||
c.Assert(err, checker.IsNil)
|
||||
c.Assert(res.StatusCode, checker.Equals, http.StatusBadRequest)
|
||||
if versions.GreaterThanOrEqualTo(testEnv.DaemonAPIVersion(), "1.32") {
|
||||
c.Assert(res.StatusCode, checker.Equals, http.StatusBadRequest)
|
||||
} else {
|
||||
c.Assert(res.StatusCode, checker.Not(checker.Equals), http.StatusOK)
|
||||
}
|
||||
|
||||
b, err := request.ReadBody(body)
|
||||
c.Assert(err, checker.IsNil)
|
||||
@ -901,7 +928,11 @@ func (s *DockerSuite) TestCreateWithTooLowMemoryLimit(c *check.C) {
|
||||
b, err2 := request.ReadBody(body)
|
||||
c.Assert(err2, checker.IsNil)
|
||||
|
||||
c.Assert(res.StatusCode, checker.Equals, http.StatusBadRequest)
|
||||
if versions.GreaterThanOrEqualTo(testEnv.DaemonAPIVersion(), "1.32") {
|
||||
c.Assert(res.StatusCode, checker.Equals, http.StatusBadRequest)
|
||||
} else {
|
||||
c.Assert(res.StatusCode, checker.Not(checker.Equals), http.StatusOK)
|
||||
}
|
||||
c.Assert(string(b), checker.Contains, "Minimum memory limit allowed is 4MB")
|
||||
}
|
||||
|
||||
@ -1089,7 +1120,11 @@ func (s *DockerSuite) TestContainerAPICopyResourcePathEmptyPre124(c *check.C) {
|
||||
|
||||
res, body, err := request.Post("/v1.23/containers/"+name+"/copy", request.JSONBody(postData))
|
||||
c.Assert(err, checker.IsNil)
|
||||
c.Assert(res.StatusCode, checker.Equals, http.StatusBadRequest)
|
||||
if versions.GreaterThanOrEqualTo(testEnv.DaemonAPIVersion(), "1.32") {
|
||||
c.Assert(res.StatusCode, checker.Equals, http.StatusBadRequest)
|
||||
} else {
|
||||
c.Assert(res.StatusCode, checker.Not(checker.Equals), http.StatusOK)
|
||||
}
|
||||
b, err := request.ReadBody(body)
|
||||
c.Assert(err, checker.IsNil)
|
||||
c.Assert(string(b), checker.Matches, "Path cannot be empty\n")
|
||||
@ -1106,8 +1141,11 @@ func (s *DockerSuite) TestContainerAPICopyResourcePathNotFoundPre124(c *check.C)
|
||||
|
||||
res, body, err := request.Post("/v1.23/containers/"+name+"/copy", request.JSONBody(postData))
|
||||
c.Assert(err, checker.IsNil)
|
||||
c.Assert(res.StatusCode, checker.Equals, http.StatusNotFound)
|
||||
|
||||
if versions.LessThan(testEnv.DaemonAPIVersion(), "1.32") {
|
||||
c.Assert(res.StatusCode, checker.Equals, http.StatusInternalServerError)
|
||||
} else {
|
||||
c.Assert(res.StatusCode, checker.Equals, http.StatusNotFound)
|
||||
}
|
||||
b, err := request.ReadBody(body)
|
||||
c.Assert(err, checker.IsNil)
|
||||
c.Assert(string(b), checker.Matches, "Could not find the file /notexist in container "+name+"\n")
|
||||
@ -1563,7 +1601,11 @@ func (s *DockerSuite) TestPostContainersCreateMemorySwappinessHostConfigOmitted(
|
||||
containerJSON, err := cli.ContainerInspect(context.Background(), container.ID)
|
||||
c.Assert(err, check.IsNil)
|
||||
|
||||
c.Assert(containerJSON.HostConfig.MemorySwappiness, check.IsNil)
|
||||
if versions.LessThan(testEnv.DaemonAPIVersion(), "1.31") {
|
||||
c.Assert(*containerJSON.HostConfig.MemorySwappiness, check.Equals, int64(-1))
|
||||
} else {
|
||||
c.Assert(containerJSON.HostConfig.MemorySwappiness, check.IsNil)
|
||||
}
|
||||
}
|
||||
|
||||
// check validation is done daemon side and not only in cli
|
||||
@ -1910,8 +1952,13 @@ func (s *DockerSuite) TestContainersAPICreateMountsCreate(c *check.C) {
|
||||
}
|
||||
|
||||
var selinuxSharedLabel string
|
||||
if runtime.GOOS == "linux" {
|
||||
selinuxSharedLabel = "z"
|
||||
// this test label was added after a bug fix in 1.32, thus add requirements min API >= 1.32
|
||||
// for the sake of making test pass in earlier versions
|
||||
// bug fixed in https://github.com/moby/moby/pull/34684
|
||||
if !versions.LessThan(testEnv.DaemonAPIVersion(), "1.32") {
|
||||
if runtime.GOOS == "linux" {
|
||||
selinuxSharedLabel = "z"
|
||||
}
|
||||
}
|
||||
|
||||
cases := []testCase{
|
||||
|
Reference in New Issue
Block a user