mirror of
https://github.com/moby/moby.git
synced 2026-01-11 10:41:43 +00:00
Run CLI tests with cgroups v2
Signed-off-by: Derek McGowan <derek@mcg.dev>
This commit is contained in:
1
Makefile
1
Makefile
@@ -57,7 +57,6 @@ DOCKER_ENVS := \
|
|||||||
-e TEST_INTEGRATION_FAIL_FAST \
|
-e TEST_INTEGRATION_FAIL_FAST \
|
||||||
-e TEST_SKIP_INTEGRATION \
|
-e TEST_SKIP_INTEGRATION \
|
||||||
-e TEST_SKIP_INTEGRATION_CLI \
|
-e TEST_SKIP_INTEGRATION_CLI \
|
||||||
-e TEST_IGNORE_CGROUP_CHECK \
|
|
||||||
-e TESTCOVERAGE \
|
-e TESTCOVERAGE \
|
||||||
-e TESTDEBUG \
|
-e TESTDEBUG \
|
||||||
-e TESTDIRS \
|
-e TESTDIRS \
|
||||||
|
|||||||
@@ -72,12 +72,6 @@ if [ "$DOCKER_EXPERIMENTAL" ]; then
|
|||||||
fi
|
fi
|
||||||
|
|
||||||
dockerd="dockerd"
|
dockerd="dockerd"
|
||||||
if [ -f "/sys/fs/cgroup/cgroup.controllers" ]; then
|
|
||||||
if [ -z "$TEST_IGNORE_CGROUP_CHECK" ] && [ -z "$TEST_SKIP_INTEGRATION_CLI" ]; then
|
|
||||||
echo >&2 '# cgroup v2 requires TEST_SKIP_INTEGRATION_CLI to be set'
|
|
||||||
exit 1
|
|
||||||
fi
|
|
||||||
fi
|
|
||||||
|
|
||||||
if [ -n "$DOCKER_ROOTLESS" ]; then
|
if [ -n "$DOCKER_ROOTLESS" ]; then
|
||||||
if [ -z "$TEST_SKIP_INTEGRATION_CLI" ]; then
|
if [ -z "$TEST_SKIP_INTEGRATION_CLI" ]; then
|
||||||
|
|||||||
@@ -25,6 +25,7 @@ var expectedNetworkInterfaceStats = strings.Split("rx_bytes rx_dropped rx_errors
|
|||||||
|
|
||||||
func (s *DockerAPISuite) TestAPIStatsNoStreamGetCpu(c *testing.T) {
|
func (s *DockerAPISuite) TestAPIStatsNoStreamGetCpu(c *testing.T) {
|
||||||
skip.If(c, RuntimeIsWindowsContainerd(), "FIXME: Broken on Windows + containerd combination")
|
skip.If(c, RuntimeIsWindowsContainerd(), "FIXME: Broken on Windows + containerd combination")
|
||||||
|
skip.If(c, onlyCgroupsv2(), "FIXME: cgroupsV2 not supported yet")
|
||||||
out := cli.DockerCmd(c, "run", "-d", "busybox", "/bin/sh", "-c", "while true;usleep 100; do echo 'Hello'; done").Stdout()
|
out := cli.DockerCmd(c, "run", "-d", "busybox", "/bin/sh", "-c", "while true;usleep 100; do echo 'Hello'; done").Stdout()
|
||||||
id := strings.TrimSpace(out)
|
id := strings.TrimSpace(out)
|
||||||
cli.WaitRun(c, id)
|
cli.WaitRun(c, id)
|
||||||
|
|||||||
@@ -3949,6 +3949,7 @@ func (s *DockerCLIBuildSuite) TestBuildEmptyStringVolume(c *testing.T) {
|
|||||||
|
|
||||||
func (s *DockerCLIBuildSuite) TestBuildContainerWithCgroupParent(c *testing.T) {
|
func (s *DockerCLIBuildSuite) TestBuildContainerWithCgroupParent(c *testing.T) {
|
||||||
testRequires(c, testEnv.IsLocalDaemon, DaemonIsLinux)
|
testRequires(c, testEnv.IsLocalDaemon, DaemonIsLinux)
|
||||||
|
skip.If(c, onlyCgroupsv2(), "FIXME: cgroupsV2 not supported yet")
|
||||||
|
|
||||||
cgroupParent := "test"
|
cgroupParent := "test"
|
||||||
data, err := os.ReadFile("/proc/self/cgroup")
|
data, err := os.ReadFile("/proc/self/cgroup")
|
||||||
|
|||||||
@@ -1619,6 +1619,7 @@ func (s *DockerDaemonSuite) TestDaemonRestartContainerLinksRestart(c *testing.T)
|
|||||||
|
|
||||||
func (s *DockerDaemonSuite) TestDaemonCgroupParent(c *testing.T) {
|
func (s *DockerDaemonSuite) TestDaemonCgroupParent(c *testing.T) {
|
||||||
testRequires(c, DaemonIsLinux)
|
testRequires(c, DaemonIsLinux)
|
||||||
|
skip.If(c, onlyCgroupsv2(), "FIXME: cgroupsV2 not supported yet")
|
||||||
|
|
||||||
cgroupParent := "test"
|
cgroupParent := "test"
|
||||||
name := "cgroup-test"
|
name := "cgroup-test"
|
||||||
|
|||||||
@@ -3209,6 +3209,7 @@ func (s *DockerCLIRunSuite) TestRunWithUlimits(c *testing.T) {
|
|||||||
func (s *DockerCLIRunSuite) TestRunContainerWithCgroupParent(c *testing.T) {
|
func (s *DockerCLIRunSuite) TestRunContainerWithCgroupParent(c *testing.T) {
|
||||||
// Not applicable on Windows as uses Unix specific functionality
|
// Not applicable on Windows as uses Unix specific functionality
|
||||||
testRequires(c, DaemonIsLinux)
|
testRequires(c, DaemonIsLinux)
|
||||||
|
skip.If(c, onlyCgroupsv2(), "FIXME: cgroupsV2 not supported yet")
|
||||||
|
|
||||||
// cgroup-parent relative path
|
// cgroup-parent relative path
|
||||||
testRunContainerWithCgroupParent(c, "test", "cgroup-test")
|
testRunContainerWithCgroupParent(c, "test", "cgroup-test")
|
||||||
@@ -3244,6 +3245,7 @@ func testRunContainerWithCgroupParent(c *testing.T, cgroupParent, name string) {
|
|||||||
func (s *DockerCLIRunSuite) TestRunInvalidCgroupParent(c *testing.T) {
|
func (s *DockerCLIRunSuite) TestRunInvalidCgroupParent(c *testing.T) {
|
||||||
// Not applicable on Windows as uses Unix specific functionality
|
// Not applicable on Windows as uses Unix specific functionality
|
||||||
testRequires(c, DaemonIsLinux)
|
testRequires(c, DaemonIsLinux)
|
||||||
|
skip.If(c, onlyCgroupsv2(), "FIXME: cgroupsV2 not supported yet")
|
||||||
|
|
||||||
testRunInvalidCgroupParent(c, "../../../../../../../../SHOULD_NOT_EXIST", "SHOULD_NOT_EXIST", "cgroup-invalid-test")
|
testRunInvalidCgroupParent(c, "../../../../../../../../SHOULD_NOT_EXIST", "SHOULD_NOT_EXIST", "cgroup-invalid-test")
|
||||||
|
|
||||||
@@ -3284,6 +3286,7 @@ func (s *DockerCLIRunSuite) TestRunContainerWithCgroupMountRO(c *testing.T) {
|
|||||||
// Not applicable on Windows as uses Unix specific functionality
|
// Not applicable on Windows as uses Unix specific functionality
|
||||||
// --read-only + userns has remount issues
|
// --read-only + userns has remount issues
|
||||||
testRequires(c, DaemonIsLinux, NotUserNamespace)
|
testRequires(c, DaemonIsLinux, NotUserNamespace)
|
||||||
|
skip.If(c, onlyCgroupsv2(), "FIXME: cgroupsV2 not supported yet")
|
||||||
|
|
||||||
filename := "/sys/fs/cgroup/devices/test123"
|
filename := "/sys/fs/cgroup/devices/test123"
|
||||||
out, _, err := dockerCmdWithError("run", "busybox", "touch", filename)
|
out, _, err := dockerCmdWithError("run", "busybox", "touch", filename)
|
||||||
@@ -4433,6 +4436,7 @@ func (s *DockerCLIRunSuite) TestRunHostnameInHostMode(c *testing.T) {
|
|||||||
|
|
||||||
func (s *DockerCLIRunSuite) TestRunAddDeviceCgroupRule(c *testing.T) {
|
func (s *DockerCLIRunSuite) TestRunAddDeviceCgroupRule(c *testing.T) {
|
||||||
testRequires(c, DaemonIsLinux)
|
testRequires(c, DaemonIsLinux)
|
||||||
|
skip.If(c, onlyCgroupsv2(), "FIXME: cgroupsV2 not supported yet")
|
||||||
|
|
||||||
const deviceRule = "c 7:128 rwm"
|
const deviceRule = "c 7:128 rwm"
|
||||||
|
|
||||||
|
|||||||
@@ -26,6 +26,7 @@ import (
|
|||||||
"gotest.tools/v3/assert"
|
"gotest.tools/v3/assert"
|
||||||
is "gotest.tools/v3/assert/cmp"
|
is "gotest.tools/v3/assert/cmp"
|
||||||
"gotest.tools/v3/icmd"
|
"gotest.tools/v3/icmd"
|
||||||
|
"gotest.tools/v3/skip"
|
||||||
)
|
)
|
||||||
|
|
||||||
// #6509
|
// #6509
|
||||||
@@ -453,6 +454,7 @@ func (s *DockerCLIRunSuite) TestRunAttachInvalidDetachKeySequencePreserved(c *te
|
|||||||
// "test" should be printed
|
// "test" should be printed
|
||||||
func (s *DockerCLIRunSuite) TestRunWithCPUQuota(c *testing.T) {
|
func (s *DockerCLIRunSuite) TestRunWithCPUQuota(c *testing.T) {
|
||||||
testRequires(c, cpuCfsQuota)
|
testRequires(c, cpuCfsQuota)
|
||||||
|
skip.If(c, onlyCgroupsv2(), "FIXME: cgroupsV2 not supported yet")
|
||||||
|
|
||||||
const file = "/sys/fs/cgroup/cpu/cpu.cfs_quota_us"
|
const file = "/sys/fs/cgroup/cpu/cpu.cfs_quota_us"
|
||||||
out := cli.DockerCmd(c, "run", "--cpu-quota", "8000", "--name", "test", "busybox", "cat", file).Combined()
|
out := cli.DockerCmd(c, "run", "--cpu-quota", "8000", "--name", "test", "busybox", "cat", file).Combined()
|
||||||
@@ -464,6 +466,7 @@ func (s *DockerCLIRunSuite) TestRunWithCPUQuota(c *testing.T) {
|
|||||||
|
|
||||||
func (s *DockerCLIRunSuite) TestRunWithCpuPeriod(c *testing.T) {
|
func (s *DockerCLIRunSuite) TestRunWithCpuPeriod(c *testing.T) {
|
||||||
testRequires(c, cpuCfsPeriod)
|
testRequires(c, cpuCfsPeriod)
|
||||||
|
skip.If(c, onlyCgroupsv2(), "FIXME: cgroupsV2 not supported yet")
|
||||||
|
|
||||||
const file = "/sys/fs/cgroup/cpu/cpu.cfs_period_us"
|
const file = "/sys/fs/cgroup/cpu/cpu.cfs_period_us"
|
||||||
out := cli.DockerCmd(c, "run", "--cpu-period", "50000", "--name", "test", "busybox", "cat", file).Combined()
|
out := cli.DockerCmd(c, "run", "--cpu-period", "50000", "--name", "test", "busybox", "cat", file).Combined()
|
||||||
@@ -494,6 +497,7 @@ func (s *DockerCLIRunSuite) TestRunWithInvalidCpuPeriod(c *testing.T) {
|
|||||||
|
|
||||||
func (s *DockerCLIRunSuite) TestRunWithCPUShares(c *testing.T) {
|
func (s *DockerCLIRunSuite) TestRunWithCPUShares(c *testing.T) {
|
||||||
testRequires(c, cpuShare)
|
testRequires(c, cpuShare)
|
||||||
|
skip.If(c, onlyCgroupsv2(), "FIXME: cgroupsV2 not supported yet")
|
||||||
|
|
||||||
const file = "/sys/fs/cgroup/cpu/cpu.shares"
|
const file = "/sys/fs/cgroup/cpu/cpu.shares"
|
||||||
out := cli.DockerCmd(c, "run", "--cpu-shares", "1000", "--name", "test", "busybox", "cat", file).Combined()
|
out := cli.DockerCmd(c, "run", "--cpu-shares", "1000", "--name", "test", "busybox", "cat", file).Combined()
|
||||||
@@ -514,6 +518,7 @@ func (s *DockerCLIRunSuite) TestRunEchoStdoutWithCPUSharesAndMemoryLimit(c *test
|
|||||||
|
|
||||||
func (s *DockerCLIRunSuite) TestRunWithCpusetCpus(c *testing.T) {
|
func (s *DockerCLIRunSuite) TestRunWithCpusetCpus(c *testing.T) {
|
||||||
testRequires(c, cgroupCpuset)
|
testRequires(c, cgroupCpuset)
|
||||||
|
skip.If(c, onlyCgroupsv2(), "FIXME: cgroupsV2 not supported yet")
|
||||||
|
|
||||||
const file = "/sys/fs/cgroup/cpuset/cpuset.cpus"
|
const file = "/sys/fs/cgroup/cpuset/cpuset.cpus"
|
||||||
out := cli.DockerCmd(c, "run", "--cpuset-cpus", "0", "--name", "test", "busybox", "cat", file).Combined()
|
out := cli.DockerCmd(c, "run", "--cpuset-cpus", "0", "--name", "test", "busybox", "cat", file).Combined()
|
||||||
@@ -525,6 +530,7 @@ func (s *DockerCLIRunSuite) TestRunWithCpusetCpus(c *testing.T) {
|
|||||||
|
|
||||||
func (s *DockerCLIRunSuite) TestRunWithCpusetMems(c *testing.T) {
|
func (s *DockerCLIRunSuite) TestRunWithCpusetMems(c *testing.T) {
|
||||||
testRequires(c, cgroupCpuset)
|
testRequires(c, cgroupCpuset)
|
||||||
|
skip.If(c, onlyCgroupsv2(), "FIXME: cgroupsV2 not supported yet")
|
||||||
|
|
||||||
const file = "/sys/fs/cgroup/cpuset/cpuset.mems"
|
const file = "/sys/fs/cgroup/cpuset/cpuset.mems"
|
||||||
out := cli.DockerCmd(c, "run", "--cpuset-mems", "0", "--name", "test", "busybox", "cat", file).Combined()
|
out := cli.DockerCmd(c, "run", "--cpuset-mems", "0", "--name", "test", "busybox", "cat", file).Combined()
|
||||||
@@ -536,6 +542,7 @@ func (s *DockerCLIRunSuite) TestRunWithCpusetMems(c *testing.T) {
|
|||||||
|
|
||||||
func (s *DockerCLIRunSuite) TestRunWithBlkioWeight(c *testing.T) {
|
func (s *DockerCLIRunSuite) TestRunWithBlkioWeight(c *testing.T) {
|
||||||
testRequires(c, blkioWeight)
|
testRequires(c, blkioWeight)
|
||||||
|
skip.If(c, onlyCgroupsv2(), "FIXME: cgroupsV2 not supported yet")
|
||||||
|
|
||||||
const file = "/sys/fs/cgroup/blkio/blkio.weight"
|
const file = "/sys/fs/cgroup/blkio/blkio.weight"
|
||||||
out := cli.DockerCmd(c, "run", "--blkio-weight", "300", "--name", "test", "busybox", "cat", file).Combined()
|
out := cli.DockerCmd(c, "run", "--blkio-weight", "300", "--name", "test", "busybox", "cat", file).Combined()
|
||||||
@@ -547,6 +554,7 @@ func (s *DockerCLIRunSuite) TestRunWithBlkioWeight(c *testing.T) {
|
|||||||
|
|
||||||
func (s *DockerCLIRunSuite) TestRunWithInvalidBlkioWeight(c *testing.T) {
|
func (s *DockerCLIRunSuite) TestRunWithInvalidBlkioWeight(c *testing.T) {
|
||||||
testRequires(c, blkioWeight)
|
testRequires(c, blkioWeight)
|
||||||
|
skip.If(c, onlyCgroupsv2(), "FIXME: cgroupsV2 not supported yet")
|
||||||
out, _, err := dockerCmdWithError("run", "--blkio-weight", "5", "busybox", "true")
|
out, _, err := dockerCmdWithError("run", "--blkio-weight", "5", "busybox", "true")
|
||||||
assert.ErrorContains(c, err, "", out)
|
assert.ErrorContains(c, err, "", out)
|
||||||
expected := "Range of blkio weight is from 10 to 1000"
|
expected := "Range of blkio weight is from 10 to 1000"
|
||||||
@@ -605,6 +613,7 @@ func (s *DockerCLIRunSuite) TestRunOOMExitCode(c *testing.T) {
|
|||||||
|
|
||||||
func (s *DockerCLIRunSuite) TestRunWithMemoryLimit(c *testing.T) {
|
func (s *DockerCLIRunSuite) TestRunWithMemoryLimit(c *testing.T) {
|
||||||
testRequires(c, memoryLimitSupport)
|
testRequires(c, memoryLimitSupport)
|
||||||
|
skip.If(c, onlyCgroupsv2(), "FIXME: cgroupsV2 not supported yet")
|
||||||
|
|
||||||
const file = "/sys/fs/cgroup/memory/memory.limit_in_bytes"
|
const file = "/sys/fs/cgroup/memory/memory.limit_in_bytes"
|
||||||
cli.DockerCmd(c, "run", "-m", "32M", "--name", "test", "busybox", "cat", file).Assert(c, icmd.Expected{
|
cli.DockerCmd(c, "run", "-m", "32M", "--name", "test", "busybox", "cat", file).Assert(c, icmd.Expected{
|
||||||
@@ -649,6 +658,7 @@ func (s *DockerCLIRunSuite) TestRunWithSwappinessInvalid(c *testing.T) {
|
|||||||
|
|
||||||
func (s *DockerCLIRunSuite) TestRunWithMemoryReservation(c *testing.T) {
|
func (s *DockerCLIRunSuite) TestRunWithMemoryReservation(c *testing.T) {
|
||||||
testRequires(c, testEnv.IsLocalDaemon, memoryReservationSupport)
|
testRequires(c, testEnv.IsLocalDaemon, memoryReservationSupport)
|
||||||
|
skip.If(c, onlyCgroupsv2(), "FIXME: cgroupsV2 not supported yet")
|
||||||
|
|
||||||
const file = "/sys/fs/cgroup/memory/memory.soft_limit_in_bytes"
|
const file = "/sys/fs/cgroup/memory/memory.soft_limit_in_bytes"
|
||||||
out := cli.DockerCmd(c, "run", "--memory-reservation", "200M", "--name", "test", "busybox", "cat", file).Combined()
|
out := cli.DockerCmd(c, "run", "--memory-reservation", "200M", "--name", "test", "busybox", "cat", file).Combined()
|
||||||
@@ -1364,6 +1374,7 @@ func (s *DockerCLIRunSuite) TestRunDeviceSymlink(c *testing.T) {
|
|||||||
// TestRunPIDsLimit makes sure the pids cgroup is set with --pids-limit
|
// TestRunPIDsLimit makes sure the pids cgroup is set with --pids-limit
|
||||||
func (s *DockerCLIRunSuite) TestRunPIDsLimit(c *testing.T) {
|
func (s *DockerCLIRunSuite) TestRunPIDsLimit(c *testing.T) {
|
||||||
testRequires(c, testEnv.IsLocalDaemon, pidsLimit)
|
testRequires(c, testEnv.IsLocalDaemon, pidsLimit)
|
||||||
|
skip.If(c, onlyCgroupsv2(), "FIXME: cgroupsV2 not supported yet")
|
||||||
|
|
||||||
const file = "/sys/fs/cgroup/pids/pids.max"
|
const file = "/sys/fs/cgroup/pids/pids.max"
|
||||||
out := cli.DockerCmd(c, "run", "--name", "skittles", "--pids-limit", "4", "busybox", "cat", file).Combined()
|
out := cli.DockerCmd(c, "run", "--name", "skittles", "--pids-limit", "4", "busybox", "cat", file).Combined()
|
||||||
@@ -1375,6 +1386,7 @@ func (s *DockerCLIRunSuite) TestRunPIDsLimit(c *testing.T) {
|
|||||||
|
|
||||||
func (s *DockerCLIRunSuite) TestRunPrivilegedAllowedDevices(c *testing.T) {
|
func (s *DockerCLIRunSuite) TestRunPrivilegedAllowedDevices(c *testing.T) {
|
||||||
testRequires(c, DaemonIsLinux, NotUserNamespace)
|
testRequires(c, DaemonIsLinux, NotUserNamespace)
|
||||||
|
skip.If(c, onlyCgroupsv2(), "FIXME: cgroupsV2 not supported yet")
|
||||||
|
|
||||||
const file = "/sys/fs/cgroup/devices/devices.list"
|
const file = "/sys/fs/cgroup/devices/devices.list"
|
||||||
out := cli.DockerCmd(c, "run", "--privileged", "busybox", "cat", file).Combined()
|
out := cli.DockerCmd(c, "run", "--privileged", "busybox", "cat", file).Combined()
|
||||||
@@ -1529,6 +1541,7 @@ func (s *DockerDaemonSuite) TestRunWithDaemonDefaultSeccompProfile(c *testing.T)
|
|||||||
|
|
||||||
func (s *DockerCLIRunSuite) TestRunWithNanoCPUs(c *testing.T) {
|
func (s *DockerCLIRunSuite) TestRunWithNanoCPUs(c *testing.T) {
|
||||||
testRequires(c, cpuCfsQuota, cpuCfsPeriod)
|
testRequires(c, cpuCfsQuota, cpuCfsPeriod)
|
||||||
|
skip.If(c, onlyCgroupsv2(), "FIXME: cgroupsV2 not supported yet")
|
||||||
|
|
||||||
const file1 = "/sys/fs/cgroup/cpu/cpu.cfs_quota_us"
|
const file1 = "/sys/fs/cgroup/cpu/cpu.cfs_quota_us"
|
||||||
const file2 = "/sys/fs/cgroup/cpu/cpu.cfs_period_us"
|
const file2 = "/sys/fs/cgroup/cpu/cpu.cfs_period_us"
|
||||||
|
|||||||
@@ -19,6 +19,7 @@ import (
|
|||||||
"github.com/docker/docker/testutil/request"
|
"github.com/docker/docker/testutil/request"
|
||||||
"gotest.tools/v3/assert"
|
"gotest.tools/v3/assert"
|
||||||
is "gotest.tools/v3/assert/cmp"
|
is "gotest.tools/v3/assert/cmp"
|
||||||
|
"gotest.tools/v3/skip"
|
||||||
)
|
)
|
||||||
|
|
||||||
func (s *DockerCLIUpdateSuite) TearDownTest(ctx context.Context, c *testing.T) {
|
func (s *DockerCLIUpdateSuite) TearDownTest(ctx context.Context, c *testing.T) {
|
||||||
@@ -32,6 +33,7 @@ func (s *DockerCLIUpdateSuite) OnTimeout(c *testing.T) {
|
|||||||
func (s *DockerCLIUpdateSuite) TestUpdateRunningContainer(c *testing.T) {
|
func (s *DockerCLIUpdateSuite) TestUpdateRunningContainer(c *testing.T) {
|
||||||
testRequires(c, DaemonIsLinux)
|
testRequires(c, DaemonIsLinux)
|
||||||
testRequires(c, memoryLimitSupport)
|
testRequires(c, memoryLimitSupport)
|
||||||
|
skip.If(c, onlyCgroupsv2(), "FIXME: cgroupsV2 not supported yet")
|
||||||
|
|
||||||
const name = "test-update-container"
|
const name = "test-update-container"
|
||||||
cli.DockerCmd(c, "run", "-d", "--name", name, "-m", "300M", "busybox", "top")
|
cli.DockerCmd(c, "run", "-d", "--name", name, "-m", "300M", "busybox", "top")
|
||||||
@@ -47,6 +49,7 @@ func (s *DockerCLIUpdateSuite) TestUpdateRunningContainer(c *testing.T) {
|
|||||||
func (s *DockerCLIUpdateSuite) TestUpdateRunningContainerWithRestart(c *testing.T) {
|
func (s *DockerCLIUpdateSuite) TestUpdateRunningContainerWithRestart(c *testing.T) {
|
||||||
testRequires(c, DaemonIsLinux)
|
testRequires(c, DaemonIsLinux)
|
||||||
testRequires(c, memoryLimitSupport)
|
testRequires(c, memoryLimitSupport)
|
||||||
|
skip.If(c, onlyCgroupsv2(), "FIXME: cgroupsV2 not supported yet")
|
||||||
|
|
||||||
const name = "test-update-container"
|
const name = "test-update-container"
|
||||||
cli.DockerCmd(c, "run", "-d", "--name", name, "-m", "300M", "busybox", "top")
|
cli.DockerCmd(c, "run", "-d", "--name", name, "-m", "300M", "busybox", "top")
|
||||||
@@ -63,6 +66,7 @@ func (s *DockerCLIUpdateSuite) TestUpdateRunningContainerWithRestart(c *testing.
|
|||||||
func (s *DockerCLIUpdateSuite) TestUpdateStoppedContainer(c *testing.T) {
|
func (s *DockerCLIUpdateSuite) TestUpdateStoppedContainer(c *testing.T) {
|
||||||
testRequires(c, DaemonIsLinux)
|
testRequires(c, DaemonIsLinux)
|
||||||
testRequires(c, memoryLimitSupport)
|
testRequires(c, memoryLimitSupport)
|
||||||
|
skip.If(c, onlyCgroupsv2(), "FIXME: cgroupsV2 not supported yet")
|
||||||
|
|
||||||
const name = "test-update-container"
|
const name = "test-update-container"
|
||||||
const file = "/sys/fs/cgroup/memory/memory.limit_in_bytes"
|
const file = "/sys/fs/cgroup/memory/memory.limit_in_bytes"
|
||||||
@@ -78,6 +82,7 @@ func (s *DockerCLIUpdateSuite) TestUpdateStoppedContainer(c *testing.T) {
|
|||||||
func (s *DockerCLIUpdateSuite) TestUpdatePausedContainer(c *testing.T) {
|
func (s *DockerCLIUpdateSuite) TestUpdatePausedContainer(c *testing.T) {
|
||||||
testRequires(c, DaemonIsLinux)
|
testRequires(c, DaemonIsLinux)
|
||||||
testRequires(c, cpuShare)
|
testRequires(c, cpuShare)
|
||||||
|
skip.If(c, onlyCgroupsv2(), "FIXME: cgroupsV2 not supported yet")
|
||||||
|
|
||||||
const name = "test-update-container"
|
const name = "test-update-container"
|
||||||
cli.DockerCmd(c, "run", "-d", "--name", name, "--cpu-shares", "1000", "busybox", "top")
|
cli.DockerCmd(c, "run", "-d", "--name", name, "--cpu-shares", "1000", "busybox", "top")
|
||||||
@@ -96,6 +101,7 @@ func (s *DockerCLIUpdateSuite) TestUpdateWithUntouchedFields(c *testing.T) {
|
|||||||
testRequires(c, DaemonIsLinux)
|
testRequires(c, DaemonIsLinux)
|
||||||
testRequires(c, memoryLimitSupport)
|
testRequires(c, memoryLimitSupport)
|
||||||
testRequires(c, cpuShare)
|
testRequires(c, cpuShare)
|
||||||
|
skip.If(c, onlyCgroupsv2(), "FIXME: cgroupsV2 not supported yet")
|
||||||
|
|
||||||
const name = "test-update-container"
|
const name = "test-update-container"
|
||||||
cli.DockerCmd(c, "run", "-d", "--name", name, "-m", "300M", "--cpu-shares", "800", "busybox", "top")
|
cli.DockerCmd(c, "run", "-d", "--name", name, "-m", "300M", "--cpu-shares", "800", "busybox", "top")
|
||||||
@@ -136,6 +142,7 @@ func (s *DockerCLIUpdateSuite) TestUpdateSwapMemoryOnly(c *testing.T) {
|
|||||||
testRequires(c, DaemonIsLinux)
|
testRequires(c, DaemonIsLinux)
|
||||||
testRequires(c, memoryLimitSupport)
|
testRequires(c, memoryLimitSupport)
|
||||||
testRequires(c, swapMemorySupport)
|
testRequires(c, swapMemorySupport)
|
||||||
|
skip.If(c, onlyCgroupsv2(), "FIXME: cgroupsV2 not supported yet")
|
||||||
|
|
||||||
const name = "test-update-container"
|
const name = "test-update-container"
|
||||||
cli.DockerCmd(c, "run", "-d", "--name", name, "--memory", "300M", "--memory-swap", "500M", "busybox", "top")
|
cli.DockerCmd(c, "run", "-d", "--name", name, "--memory", "300M", "--memory-swap", "500M", "busybox", "top")
|
||||||
@@ -152,6 +159,7 @@ func (s *DockerCLIUpdateSuite) TestUpdateInvalidSwapMemory(c *testing.T) {
|
|||||||
testRequires(c, DaemonIsLinux)
|
testRequires(c, DaemonIsLinux)
|
||||||
testRequires(c, memoryLimitSupport)
|
testRequires(c, memoryLimitSupport)
|
||||||
testRequires(c, swapMemorySupport)
|
testRequires(c, swapMemorySupport)
|
||||||
|
skip.If(c, onlyCgroupsv2(), "FIXME: cgroupsV2 not supported yet")
|
||||||
|
|
||||||
const name = "test-update-container"
|
const name = "test-update-container"
|
||||||
cli.DockerCmd(c, "run", "-d", "--name", name, "--memory", "300M", "--memory-swap", "500M", "busybox", "top")
|
cli.DockerCmd(c, "run", "-d", "--name", name, "--memory", "300M", "--memory-swap", "500M", "busybox", "top")
|
||||||
@@ -245,6 +253,7 @@ func (s *DockerCLIUpdateSuite) TestUpdateNotAffectMonitorRestartPolicy(c *testin
|
|||||||
|
|
||||||
func (s *DockerCLIUpdateSuite) TestUpdateWithNanoCPUs(c *testing.T) {
|
func (s *DockerCLIUpdateSuite) TestUpdateWithNanoCPUs(c *testing.T) {
|
||||||
testRequires(c, cpuCfsQuota, cpuCfsPeriod)
|
testRequires(c, cpuCfsQuota, cpuCfsPeriod)
|
||||||
|
skip.If(c, onlyCgroupsv2(), "FIXME: cgroupsV2 not supported yet")
|
||||||
|
|
||||||
const file1 = "/sys/fs/cgroup/cpu/cpu.cfs_quota_us"
|
const file1 = "/sys/fs/cgroup/cpu/cpu.cfs_quota_us"
|
||||||
const file2 = "/sys/fs/cgroup/cpu/cpu.cfs_period_us"
|
const file2 = "/sys/fs/cgroup/cpu/cpu.cfs_period_us"
|
||||||
|
|||||||
@@ -6,6 +6,7 @@ import (
|
|||||||
"os"
|
"os"
|
||||||
"strings"
|
"strings"
|
||||||
|
|
||||||
|
"github.com/containerd/cgroups/v3"
|
||||||
"github.com/docker/docker/pkg/sysinfo"
|
"github.com/docker/docker/pkg/sysinfo"
|
||||||
)
|
)
|
||||||
|
|
||||||
@@ -68,6 +69,11 @@ func bridgeNfIptables() bool {
|
|||||||
return err == nil && strings.TrimSpace(string(content)) == "1"
|
return err == nil && strings.TrimSpace(string(content)) == "1"
|
||||||
}
|
}
|
||||||
|
|
||||||
|
func onlyCgroupsv2() bool {
|
||||||
|
// Only check for unified, cgroup v1 tests can run under other modes
|
||||||
|
return cgroups.Mode() == cgroups.Unified
|
||||||
|
}
|
||||||
|
|
||||||
func unprivilegedUsernsClone() bool {
|
func unprivilegedUsernsClone() bool {
|
||||||
content, err := os.ReadFile("/proc/sys/kernel/unprivileged_userns_clone")
|
content, err := os.ReadFile("/proc/sys/kernel/unprivileged_userns_clone")
|
||||||
return err != nil || !strings.Contains(string(content), "0")
|
return err != nil || !strings.Contains(string(content), "0")
|
||||||
|
|||||||
@@ -2,3 +2,7 @@ package main
|
|||||||
|
|
||||||
func setupLocalInfo() {
|
func setupLocalInfo() {
|
||||||
}
|
}
|
||||||
|
|
||||||
|
func onlyCgroupsv2() bool {
|
||||||
|
return false
|
||||||
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user