[Libguestfs] [libnbd PATCH 1/5] Fix test requirements
Eric Blake
eblake at redhat.com
Fri May 7 12:10:49 UTC 2021
On 5/6/21 6:30 AM, Martin Kletzander wrote:
> Some tests have extra dependencies that may be missing in minimal
> deployments (e.g. hexdump), some require kernel modules or support (nbd, fuse)
> and others need qemu, but were written to only work with qemu-kvm binary.
>
> All these were fixed to my best knowledge, but of course they are still not
> perfect.
>
> Signed-off-by: Martin Kletzander <mkletzan at redhat.com>
> ---
> +# requires_qemu
> +#
> +# Check that qemu-kvm or qemu-system-$(uname -m) works. If not, skip the test.
> +# If it does, then export the appropriate binary name in $QEMU_BINARY.
> +requires_qemu ()
> +{
> + local qemu_bin
> + for qemu_bin in "qemu-kvm" "qemu-system-$(uname -m)"; do
> + ( "$qemu_bin" --version ) </dev/null >/dev/null 2>&1 || continue
> +
> + export QEMU_BINARY="$qemu_bin"
> + break
> + done
> +
> + if test -z "$QEMU_BINARY"; then
> + echo "$0: ‘$*’ failed with error code $?"
$* is empty in the typical case of calling 'requires_qemu' without
arguments, so you may want to reword this message.
> + echo "$0: test prerequisite is missing or not working"
> + exit 77
> + fi
> +}
> +
> # Tests that run under check-root should use this.
> requires_root ()
> {
> +++ b/copy/copy-block-to-nbd.sh
> @@ -23,6 +23,7 @@ set -x
>
> requires_root
> requires nbdkit --exit-with-parent --version
> +requires test -e /sys/module/nbd
Is it enough that the file exists, or do we also want to test that it
can be read? Then again, since we used requires_root, we should have
privileges to use the file if it exists.
> +++ b/fuse/test-file-mode.sh
> @@ -27,6 +27,7 @@ requires fusermount3 --version
> requires nbdkit --exit-with-parent --version
> requires cmp --version
> requires dd --version
> +requires test -e /dev/fuse
Another spot where -r might make more sense than -e?
Overall, makes sense to me.
--
Eric Blake, Principal Software Engineer
Red Hat, Inc. +1-919-301-3226
Virtualization: qemu.org | libvirt.org
More information about the Libguestfs
mailing list