Files
podman/test/system/180-blkio.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

70 lines
2.4 KiB
Bash

#!/usr/bin/env bats -*- bats -*-
#
# podman blkio-related tests
#
load helpers
function teardown() {
lofile=${PODMAN_TMPDIR}/disk.img
if [ -f ${lofile} ]; then
run_podman '?' rm -t 0 --all --force --ignore
while read path dev; do
if [[ "$path" == "$lofile" ]]; then
losetup -d $dev
fi
done < <(losetup -l --noheadings --output BACK-FILE,NAME)
rm ${lofile}
fi
basic_teardown
}
@test "podman run --blkio-weight-device" {
skip_if_rootless "cannot create devices in rootless mode"
# create loopback device
lofile=${PODMAN_TMPDIR}/disk.img
fallocate -l 1k ${lofile}
losetup -f ${lofile}
run losetup -l --noheadings --output BACK-FILE,NAME,MAJ:MIN
assert "$status" -eq 0 "losetup: status"
assert "$output" != "" "losetup: output"
lodevice=$(awk "\$1 == \"$lofile\" { print \$2 }" <<<"$output")
lomajmin=$(awk "\$1 == \"$lofile\" { print \$3 }" <<<"$output")
is "$lodevice" ".\+" "Could not determine device for $lofile"
is "$lomajmin" ".\+" "Could not determine major/minor for $lofile"
# use bfq io scheduler
run grep -w bfq /sys/block/$(basename ${lodevice})/queue/scheduler
if [ $status -ne 0 ]; then
skip "BFQ scheduler is not supported on the system"
fi
echo bfq > /sys/block/$(basename ${lodevice})/queue/scheduler
# run podman
if is_cgroupsv2; then
if [ ! -f /sys/fs/cgroup/system.slice/io.bfq.weight ]; then
skip "Kernel does not support BFQ IO scheduler"
fi
run_podman run --device ${lodevice}:${lodevice} --blkio-weight-device ${lodevice}:123 --rm $IMAGE \
/bin/sh -c "cat /sys/fs/cgroup/\$(sed -e 's/0:://' < /proc/self/cgroup)/io.bfq.weight"
is "${lines[1]}" "${lomajmin}\s\+123"
else
if [ ! -f /sys/fs/cgroup/blkio/system.slice/blkio.bfq.weight_device ]; then
skip "Kernel does not support BFQ IO scheduler"
fi
if [ $(podman_runtime) = "crun" ]; then
# As of crun 1.2, crun doesn't support blkio.bfq.weight_device
skip "crun doesn't support blkio.bfq.weight_device"
fi
run_podman run --device ${lodevice}:${lodevice} --blkio-weight-device ${lodevice}:123 --rm $IMAGE \
/bin/sh -c "cat /sys/fs/cgroup/blkio/blkio.bfq.weight_device"
is "${lines[1]}" "${lomajmin}\s\+123"
fi
}