|
8 | 8 | "strings"
|
9 | 9 |
|
10 | 10 | "github.com/docker/docker/pkg/integration/checker"
|
| 11 | + "github.com/docker/docker/pkg/parsers/kernel" |
11 | 12 | "github.com/docker/engine-api/types"
|
12 | 13 | "github.com/go-check/check"
|
13 | 14 | )
|
@@ -132,26 +133,36 @@ func (s *DockerSuite) TestUpdateKernelMemory(c *check.C) {
|
132 | 133 | func (s *DockerSuite) TestUpdateKernelMemoryUninitialized(c *check.C) {
|
133 | 134 | testRequires(c, DaemonIsLinux, kernelMemorySupport)
|
134 | 135 |
|
| 136 | + isNewKernel := kernel.CheckKernelVersion(4, 6, 0) |
135 | 137 | name := "test-update-container"
|
136 | 138 | dockerCmd(c, "run", "-d", "--name", name, "busybox", "top")
|
137 | 139 | _, _, err := dockerCmdWithError("update", "--kernel-memory", "100M", name)
|
138 |
| - // Update kernel memory to a running container without kernel memory initialized is not allowed. |
139 |
| - c.Assert(err, check.NotNil) |
| 140 | + // Update kernel memory to a running container without kernel memory initialized |
| 141 | + // is not allowed before kernel version 4.6. |
| 142 | + if !isNewKernel { |
| 143 | + c.Assert(err, check.NotNil) |
| 144 | + } else { |
| 145 | + c.Assert(err, check.IsNil) |
| 146 | + } |
140 | 147 |
|
141 | 148 | dockerCmd(c, "pause", name)
|
142 |
| - _, _, err = dockerCmdWithError("update", "--kernel-memory", "100M", name) |
143 |
| - c.Assert(err, check.NotNil) |
| 149 | + _, _, err = dockerCmdWithError("update", "--kernel-memory", "200M", name) |
| 150 | + if !isNewKernel { |
| 151 | + c.Assert(err, check.NotNil) |
| 152 | + } else { |
| 153 | + c.Assert(err, check.IsNil) |
| 154 | + } |
144 | 155 | dockerCmd(c, "unpause", name)
|
145 | 156 |
|
146 | 157 | dockerCmd(c, "stop", name)
|
147 |
| - dockerCmd(c, "update", "--kernel-memory", "100M", name) |
| 158 | + dockerCmd(c, "update", "--kernel-memory", "300M", name) |
148 | 159 | dockerCmd(c, "start", name)
|
149 | 160 |
|
150 |
| - c.Assert(inspectField(c, name, "HostConfig.KernelMemory"), checker.Equals, "104857600") |
| 161 | + c.Assert(inspectField(c, name, "HostConfig.KernelMemory"), checker.Equals, "314572800") |
151 | 162 |
|
152 | 163 | file := "/sys/fs/cgroup/memory/memory.kmem.limit_in_bytes"
|
153 | 164 | out, _ := dockerCmd(c, "exec", name, "cat", file)
|
154 |
| - c.Assert(strings.TrimSpace(out), checker.Equals, "104857600") |
| 165 | + c.Assert(strings.TrimSpace(out), checker.Equals, "314572800") |
155 | 166 | }
|
156 | 167 |
|
157 | 168 | func (s *DockerSuite) TestUpdateSwapMemoryOnly(c *check.C) {
|
|
0 commit comments