Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

fix data inconsistent when runc update in systemd driven cgroup #2343

Merged
merged 3 commits into from
Apr 25, 2020
Merged
Show file tree
Hide file tree
Changes from 1 commit
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Prev Previous commit
add integration test for runc update with systemd
Signed-off-by: lifubang <lifubang@acmcoder.com>
  • Loading branch information
lifubang committed Apr 24, 2020
commit 10ba72a61f25898bf78b1188bcefee7d184bbfc9
11 changes: 11 additions & 0 deletions tests/integration/helpers.bash
Original file line number Diff line number Diff line change
Expand Up @@ -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:-.}"
Expand Down
17 changes: 17 additions & 0 deletions tests/integration/update.bats
Original file line number Diff line number Diff line change
Expand Up @@ -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
Expand Down Expand Up @@ -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 <<EOF
Expand Down