tests/qtest/libqtest: Fix detection of architecture for binaries without path

The qtests can be run directly by specifying the QEMU binary with the
QTEST_QEMU_BINARY environment variable, for example:

 $ QTEST_QEMU_BINARY=x86_64-softmmu/qemu-system-x86_64 tests/qtest/test-hmp

However, if you specify a binary without a path, for example with
QTEST_QEMU_BINARY=qemu-system-x86_64 if the QEMU binary is in your
$PATH, then the test currently simply crashes.

Let's try a little bit smarter here by looking for the final '-'
instead of the slash.

Message-Id: <20201012114816.43546-1-thuth@redhat.com>
Signed-off-by: Thomas Huth <thuth@redhat.com>
This commit is contained in:
Thomas Huth 2020-09-30 13:13:52 +02:00
parent 9ab4fb21f5
commit b7f47e82e2
1 changed files with 7 additions and 2 deletions

View File

@ -870,9 +870,14 @@ char *qtest_hmp(QTestState *s, const char *fmt, ...)
const char *qtest_get_arch(void)
{
const char *qemu = qtest_qemu_binary();
const char *end = strrchr(qemu, '/');
const char *end = strrchr(qemu, '-');
return end + strlen("/qemu-system-");
if (!end) {
fprintf(stderr, "Can't determine architecture from binary name.\n");
abort();
}
return end + 1;
}
bool qtest_get_irq(QTestState *s, int num)