Some downstreams rename the QEMU binary to "qemu-kvm". This breaks qtest_get_arch(), which attempts to parse the target architecture from the QTEST_QEMU_BINARY environment variable.
Print an error instead of returning the architecture "kvm". Things fail in weird ways when the architecture string is bogus. Arguably qtests should always be run in a build directory instead of against an installed QEMU. In any case, printing a clear error when this happens is helpful. Reported-by: Qin Wang <qinw...@rehdat.com> Cc: Emanuele Giuseppe Esposito <eespo...@redhat.com> Signed-off-by: Stefan Hajnoczi <stefa...@redhat.com> --- tests/qtest/libqtest.c | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/tests/qtest/libqtest.c b/tests/qtest/libqtest.c index 71e359efcd..2fc249c0b5 100644 --- a/tests/qtest/libqtest.c +++ b/tests/qtest/libqtest.c @@ -910,6 +910,14 @@ const char *qtest_get_arch(void) abort(); } + if (strcmp(end + 1, "kvm") == 0) { + fprintf(stderr, "QTEST_QEMU_BINARY must end with *-<arch>. If you are " + "using qemu-kvm, please create a symlink like ln -s " + "path/to/qemu-kvm qemu-system-x86_64 and use that " + "instead.\n"); + abort(); + } + return end + 1; } -- 2.30.2