From 10ba72a61f25898bf78b1188bcefee7d184bbfc9 Mon Sep 17 00:00:00 2001 From: lifubang Date: Fri, 24 Apr 2020 15:18:26 +0800 Subject: [PATCH] add integration test for runc update with systemd Signed-off-by: lifubang --- tests/integration/helpers.bash | 11 +++++++++++ tests/integration/update.bats | 17 +++++++++++++++++ 2 files changed, 28 insertions(+) diff --git a/tests/integration/helpers.bash b/tests/integration/helpers.bash index de8be4ba..aa18a956 100644 --- a/tests/integration/helpers.bash +++ b/tests/integration/helpers.bash @@ -163,6 +163,17 @@ function check_cgroup_value() { [ "$current" = "$expected" ] } +# Helper to check a value in systemd. +function check_systemd_value() { + unitname=$1 + source=$2 + expected=$3 + + current=$(systemctl show $unitname | grep $source) + echo "current" $current "!?" "$expected" + [ "$current" = "$expected" ] +} + # Helper function to set a resources limit function set_resources_limit() { bundle="${1:-.}" diff --git a/tests/integration/update.bats b/tests/integration/update.bats index 61ce6937..a097549c 100644 --- a/tests/integration/update.bats +++ b/tests/integration/update.bats @@ -84,10 +84,24 @@ EOF runc update test_update --memory 67108864 [ "$status" -eq 0 ] check_cgroup_value $MEM_LIMIT 67108864 + if [[ -n "${RUNC_USE_SYSTEMD}" ]] ; then + if [ "$CGROUP_UNIFIED" != "yes" ]; then + check_systemd_value "runc-cgroups-integration-test.scope" "MemoryLimit=" "MemoryLimit=67108864" + else + check_systemd_value "runc-cgroups-integration-test.scope" "MemoryMax=" "MemoryMax=67108864" + fi + fi runc update test_update --memory 50M [ "$status" -eq 0 ] check_cgroup_value $MEM_LIMIT 52428800 + if [[ -n "${RUNC_USE_SYSTEMD}" ]] ; then + if [ "$CGROUP_UNIFIED" != "yes" ]; then + check_systemd_value "runc-cgroups-integration-test.scope" "MemoryLimit=" "MemoryLimit=52428800" + else + check_systemd_value "runc-cgroups-integration-test.scope" "MemoryMax=" "MemoryMax=52428800" + fi + fi # update memory soft limit runc update test_update --memory-reservation 33554432 @@ -123,6 +137,9 @@ EOF runc update test_update --pids-limit 10 [ "$status" -eq 0 ] check_cgroup_value "pids.max" 10 + if [[ -n "${RUNC_USE_SYSTEMD}" ]] ; then + check_systemd_value "runc-cgroups-integration-test.scope" "TasksMax=" "TasksMax=10" + fi # Revert to the test initial value via json on stdin runc update -r - test_update <