Files
podman/test/system/420-cgroups.bats
Paul Holzinger 247a80db45 test/system: remove distro-integration bats tag
The distro-integration tag was added for fedora openQA to only run a
subset of tests. However since it was added only a few new tests have
been labelled like that and in general a normal contributor or even
maintianer has no idea when to add this tag.

We also have been seeing several regressions getting into fedora that
these tests would have caught. As such I worked with Adam to enable all
tests for fedora openQA so we actually have proper coverage. This has
been working for a few weeks so I think we can dop these tags so
upstream does not need to bother with them at all.

https://pagure.io/fedora-qa/os-autoinst-distri-fedora/issue/373

Signed-off-by: Paul Holzinger <pholzing@redhat.com>
2025-09-02 12:10:08 +02:00

71 lines
2.4 KiB
Bash

#!/usr/bin/env bats -*- bats -*-
#
# cgroups-related tests
#
load helpers
# bats test_tags=ci:parallel
@test "podman run, preserves initial --cgroup-manager" {
skip_if_remote "podman-remote does not support --cgroup-manager"
skip_if_rootless_cgroupsv1
# Find out our default cgroup manager, and from that, get the non-default
run_podman info --format '{{.Host.CgroupManager}}'
case "$output" in
systemd) other="cgroupfs" ;;
cgroupfs) other="systemd" ;;
*) die "Unknown CgroupManager '$output'" ;;
esac
run_podman --cgroup-manager=$other run --name myc $IMAGE true
assert "$output" = "" "run true, with cgroup-manager=$other, is silent"
run_podman container inspect --format '{{.HostConfig.CgroupManager}}' myc
is "$output" "$other" "podman preserved .HostConfig.CgroupManager"
if is_rootless && test $other = cgroupfs ; then
run_podman container inspect --format '{{.HostConfig.CgroupParent}}' myc
is "$output" "" "podman didn't set .HostConfig.CgroupParent for cgroupfs and rootless"
fi
# Restart the container, without --cgroup-manager option (ie use default)
# Prior to #7970, this would fail with an OCI runtime error
run_podman start -a myc
assert "$output" = "" "restarted container emits no output"
run_podman rm myc
}
# bats test_tags=ci:parallel
@test "podman run --cgroups=disabled keeps the current cgroup" {
skip_if_remote "podman-remote does not support --cgroups=disabled"
skip_if_rootless_cgroupsv1
runtime=$(podman_runtime)
if [[ $runtime != "crun" ]]; then
skip "runtime is $runtime; --cgroups=disabled requires crun"
fi
current_cgroup=$(cat /proc/self/cgroup)
# --cgroupns=host is required to have full visibility of the cgroup path inside the container
run_podman run --cgroups=disabled --cgroupns=host --rm $IMAGE cat /proc/self/cgroup
is "$output" $current_cgroup "--cgroups=disabled must not change the current cgroup"
ctr1="c1-$(safename)"
ctr2="c2-$(safename)"
# verify that "podman stats --all" works when there is a container with --cgroups=disabled
run_podman run --cgroups=disabled --name $ctr1 -d $IMAGE top
run_podman run --name $ctr2 -d $IMAGE top
run_podman stats -a --no-stream --no-reset
assert "$output" !~ "$ctr1" "ctr1 not in stats output"
assert "$output" =~ "$ctr2" "ctr2 in stats output"
run_podman rm -f -t 0 $ctr1 $ctr2
}
# vim: filetype=sh