|
@@ -155,6 +155,31 @@ func (s *DockerSuite) TestUpdateSwapMemoryOnly(c *check.C) {
|
|
|
c.Assert(strings.TrimSpace(out), checker.Equals, "629145600")
|
|
|
}
|
|
|
|
|
|
+func (s *DockerSuite) TestUpdateInvalidSwapMemory(c *check.C) {
|
|
|
+ testRequires(c, DaemonIsLinux)
|
|
|
+ testRequires(c, memoryLimitSupport)
|
|
|
+ testRequires(c, swapMemorySupport)
|
|
|
+
|
|
|
+ name := "test-update-container"
|
|
|
+ dockerCmd(c, "run", "-d", "--name", name, "--memory", "300M", "--memory-swap", "500M", "busybox", "top")
|
|
|
+ _, _, err := dockerCmdWithError("update", "--memory-swap", "200M", name)
|
|
|
+ // Update invalid swap memory should fail.
|
|
|
+ // This will pass docker config validation, but failed at kernel validation
|
|
|
+ c.Assert(err, check.NotNil)
|
|
|
+
|
|
|
+ // Update invalid swap memory with failure should not change HostConfig
|
|
|
+ c.Assert(inspectField(c, name, "HostConfig.Memory"), checker.Equals, "314572800")
|
|
|
+ c.Assert(inspectField(c, name, "HostConfig.MemorySwap"), checker.Equals, "524288000")
|
|
|
+
|
|
|
+ dockerCmd(c, "update", "--memory-swap", "600M", name)
|
|
|
+
|
|
|
+ c.Assert(inspectField(c, name, "HostConfig.MemorySwap"), checker.Equals, "629145600")
|
|
|
+
|
|
|
+ file := "/sys/fs/cgroup/memory/memory.memsw.limit_in_bytes"
|
|
|
+ out, _ := dockerCmd(c, "exec", name, "cat", file)
|
|
|
+ c.Assert(strings.TrimSpace(out), checker.Equals, "629145600")
|
|
|
+}
|
|
|
+
|
|
|
func (s *DockerSuite) TestUpdateStats(c *check.C) {
|
|
|
testRequires(c, DaemonIsLinux)
|
|
|
testRequires(c, memoryLimitSupport)
|