diff --git a/tests/qemuxml2argvtest.c b/tests/qemuxml2argvtest.c index 9bc5303dd8..498892c4fd 100644 --- a/tests/qemuxml2argvtest.c +++ b/tests/qemuxml2argvtest.c @@ -593,15 +593,8 @@ testInfoSetPaths(struct testQemuInfo *info, static int mymain(void) { - int ret = 0, i; + int ret = 0; char *fakerootdir; - const char *archs[] = { - "aarch64", - "ppc64", - "riscv64", - "s390x", - "x86_64", - }; virHashTablePtr capslatest = NULL; if (VIR_STRDUP_QUIET(fakerootdir, FAKEROOTDIRTEMPLATE) < 0) { @@ -670,24 +663,10 @@ mymain(void) if (VIR_STRDUP(driver.config->nvramDir, "/var/lib/libvirt/qemu/nvram") < 0) return EXIT_FAILURE; - capslatest = virHashCreate(4, virHashValueFree); + capslatest = testQemuGetLatestCaps(); if (!capslatest) return EXIT_FAILURE; - VIR_TEST_VERBOSE("\n"); - - for (i = 0; i < ARRAY_CARDINALITY(archs); ++i) { - char *cap = testQemuGetLatestCapsForArch(abs_srcdir "/qemucapabilitiesdata", - archs[i], "xml"); - - if (!cap || virHashAddEntry(capslatest, archs[i], cap) < 0) - return EXIT_FAILURE; - - VIR_TEST_VERBOSE("latest caps for %s: %s\n", archs[i], cap); - } - - VIR_TEST_VERBOSE("\n"); - virFileWrapperAddPrefix(SYSCONFDIR "/qemu/firmware", abs_srcdir "/qemufirmwaredata/etc/qemu/firmware"); virFileWrapperAddPrefix(PREFIX "/share/qemu/firmware", diff --git a/tests/testutilsqemu.c b/tests/testutilsqemu.c index 6286c7b3c7..3ee8a0c6c6 100644 --- a/tests/testutilsqemu.c +++ b/tests/testutilsqemu.c @@ -867,6 +867,43 @@ testQemuGetLatestCapsForArch(const char *dirname, } +virHashTablePtr +testQemuGetLatestCaps(void) +{ + const char *archs[] = { + "aarch64", + "ppc64", + "riscv64", + "s390x", + "x86_64", + }; + virHashTablePtr capslatest; + size_t i; + + if (!(capslatest = virHashCreate(4, virHashValueFree))) + goto error; + + VIR_TEST_VERBOSE("\n"); + + for (i = 0; i < ARRAY_CARDINALITY(archs); ++i) { + char *cap = testQemuGetLatestCapsForArch(abs_srcdir "/qemucapabilitiesdata", + archs[i], "xml"); + + if (!cap || virHashAddEntry(capslatest, archs[i], cap) < 0) + goto error; + + VIR_TEST_VERBOSE("latest caps for %s: %s\n", archs[i], cap); + } + + VIR_TEST_VERBOSE("\n"); + return capslatest; + + error: + virHashFree(capslatest); + return NULL; +} + + int testQemuCapsIterate(const char *dirname, const char *suffix, diff --git a/tests/testutilsqemu.h b/tests/testutilsqemu.h index 0cb5489ff4..9ff34841ff 100644 --- a/tests/testutilsqemu.h +++ b/tests/testutilsqemu.h @@ -93,6 +93,7 @@ int testQemuCapsSetGIC(virQEMUCapsPtr qemuCaps, char *testQemuGetLatestCapsForArch(const char *dirname, const char *arch, const char *suffix); +virHashTablePtr testQemuGetLatestCaps(void); typedef int (*testQemuCapsIterateCallback)(const char *base, const char *archName,