mirror of
https://github.com/opencontainers/runc.git
synced 2026-07-11 06:03:57 +08:00
tests: add integration test for cgroups hybrid
Check that runc run and runc exec put the process on the same cgroups v2 when using hybrid mode. Signed-off-by: Mauricio Vásquez <mauricio@kinvolk.io> Signed-off-by: Kir Kolyshkin <kolyshkin@gmail.com>
This commit is contained in:
committed by
Kir Kolyshkin
parent
a8435007d9
commit
cc15b887a0
@@ -282,3 +282,24 @@ function setup() {
|
||||
[ "$status" -eq 0 ]
|
||||
[ "$(wc -l <<<"$output")" -eq 1 ]
|
||||
}
|
||||
|
||||
@test "runc exec (cgroup v1+hybrid joins correct cgroup)" {
|
||||
requires root cgroups_hybrid
|
||||
|
||||
set_cgroups_path
|
||||
|
||||
runc run --pid-file pid.txt -d --console-socket "$CONSOLE_SOCKET" test_cgroups_group
|
||||
[ "$status" -eq 0 ]
|
||||
|
||||
pid=$(cat pid.txt)
|
||||
run_cgroup=$(tail -1 </proc/"$pid"/cgroup)
|
||||
[[ "$run_cgroup" == *"runc-cgroups-integration-test"* ]]
|
||||
|
||||
runc exec test_cgroups_group cat /proc/self/cgroup
|
||||
[ "$status" -eq 0 ]
|
||||
exec_cgroup=${lines[-1]}
|
||||
[[ $exec_cgroup == *"runc-cgroups-integration-test"* ]]
|
||||
|
||||
# check that the cgroups v2 path is the same for both processes
|
||||
[[ "$run_cgroup" == "$exec_cgroup" ]]
|
||||
}
|
||||
|
||||
@@ -127,6 +127,9 @@ function init_cgroup_paths() {
|
||||
CGROUP_SUBSYSTEMS+=" freezer"
|
||||
fi
|
||||
else
|
||||
if stat -f -c %t /sys/fs/cgroup/unified | grep -qFw 63677270; then
|
||||
CGROUP_HYBRID=yes
|
||||
fi
|
||||
CGROUP_UNIFIED=no
|
||||
CGROUP_SUBSYSTEMS=$(awk '!/^#/ {print $1}' /proc/cgroups)
|
||||
local g base_path
|
||||
@@ -410,6 +413,12 @@ function requires() {
|
||||
skip_me=1
|
||||
fi
|
||||
;;
|
||||
cgroups_hybrid)
|
||||
init_cgroup_paths
|
||||
if [ "$CGROUP_HYBRID" != "yes" ]; then
|
||||
skip_me=1
|
||||
fi
|
||||
;;
|
||||
cgroups_*)
|
||||
init_cgroup_paths
|
||||
var=${var#cgroups_}
|
||||
|
||||
Reference in New Issue
Block a user