mirror of
https://github.com/containers/podman.git
synced 2025-10-16 18:53:19 +08:00

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>
71 lines
2.4 KiB
Bash
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
|