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 <[email protected]> Cc: Emanuele Giuseppe Esposito <[email protected]> Signed-off-by: Stefan Hajnoczi <[email protected]> --- 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
