mirror of
https://github.com/containers/podman.git
synced 2025-10-19 04:03:23 +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>
70 lines
2.4 KiB
Bash
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
|
|
}
|