提交 60943f0e 编写于 作者: A Andrea Bolognani

tests: Use testQemuCapsIterate()

With only a couple minor tweaks, we can make the existing
doCapsTest() functions with testQemuCapsIterate() and finally
remove the need to manually adjust the test programs every time
a new input file is introduced; moreover, this means that the
two lists can't possibly get out of sync anymore.
Signed-off-by: NAndrea Bolognani <abologna@redhat.com>
Acked-by: NPeter Krempa <pkrempa@redhat.com>
上级 30439c1b
...@@ -179,8 +179,9 @@ testQemuCapsCopy(const void *opaque) ...@@ -179,8 +179,9 @@ testQemuCapsCopy(const void *opaque)
static int static int
doCapsTest(const char *base, doCapsTest(const char *base,
const char *archName, const char *archName,
testQemuDataPtr data) void *opaque)
{ {
testQemuDataPtr data = (testQemuDataPtr) opaque;
VIR_AUTOFREE(char *) title = NULL; VIR_AUTOFREE(char *) title = NULL;
VIR_AUTOFREE(char *) copyTitle = NULL; VIR_AUTOFREE(char *) copyTitle = NULL;
...@@ -220,49 +221,8 @@ mymain(void) ...@@ -220,49 +221,8 @@ mymain(void)
if (testQemuDataInit(&data) < 0) if (testQemuDataInit(&data) < 0)
return EXIT_FAILURE; return EXIT_FAILURE;
#define DO_TEST(arch, name) \ if (testQemuCapsIterate(data.dataDir, ".replies", doCapsTest, &data) < 0)
do { \ return EXIT_FAILURE;
if (doCapsTest(name, arch, &data) < 0) \
return EXIT_FAILURE; \
} while (0)
/* Keep this in sync with qemucaps2xmltest */
DO_TEST("x86_64", "caps_1.5.3");
DO_TEST("x86_64", "caps_1.6.0");
DO_TEST("x86_64", "caps_1.7.0");
DO_TEST("x86_64", "caps_2.1.1");
DO_TEST("x86_64", "caps_2.4.0");
DO_TEST("x86_64", "caps_2.5.0");
DO_TEST("x86_64", "caps_2.6.0");
DO_TEST("x86_64", "caps_2.7.0");
DO_TEST("x86_64", "caps_2.8.0");
DO_TEST("x86_64", "caps_2.9.0");
DO_TEST("x86_64", "caps_2.10.0");
DO_TEST("x86_64", "caps_2.11.0");
DO_TEST("x86_64", "caps_2.12.0");
DO_TEST("x86_64", "caps_3.0.0");
DO_TEST("x86_64", "caps_3.1.0");
DO_TEST("x86_64", "caps_4.0.0");
DO_TEST("aarch64", "caps_2.6.0");
DO_TEST("aarch64", "caps_2.10.0");
DO_TEST("aarch64", "caps_2.12.0");
DO_TEST("ppc64", "caps_2.6.0");
DO_TEST("ppc64", "caps_2.9.0");
DO_TEST("ppc64", "caps_2.10.0");
DO_TEST("ppc64", "caps_2.12.0");
DO_TEST("ppc64", "caps_3.0.0");
DO_TEST("ppc64", "caps_3.1.0");
DO_TEST("s390x", "caps_2.7.0");
DO_TEST("s390x", "caps_2.8.0");
DO_TEST("s390x", "caps_2.9.0");
DO_TEST("s390x", "caps_2.10.0");
DO_TEST("s390x", "caps_2.11.0");
DO_TEST("s390x", "caps_2.12.0");
DO_TEST("s390x", "caps_3.0.0");
DO_TEST("riscv32", "caps_3.0.0");
DO_TEST("riscv32", "caps_4.0.0");
DO_TEST("riscv64", "caps_3.0.0");
DO_TEST("riscv64", "caps_4.0.0");
/* /*
* Run "tests/qemucapsprobe /path/to/qemu/binary >foo.replies" * Run "tests/qemucapsprobe /path/to/qemu/binary >foo.replies"
......
...@@ -177,8 +177,9 @@ testQemuCapsXML(const void *opaque) ...@@ -177,8 +177,9 @@ testQemuCapsXML(const void *opaque)
static int static int
doCapsTest(const char *base, doCapsTest(const char *base,
const char *archName, const char *archName,
testQemuDataPtr data) void *opaque)
{ {
testQemuDataPtr data = (testQemuDataPtr) opaque;
VIR_AUTOFREE(char *) title = NULL; VIR_AUTOFREE(char *) title = NULL;
if (virAsprintf(&title, "%s (%s)", base, archName) < 0) if (virAsprintf(&title, "%s (%s)", base, archName) < 0)
...@@ -211,49 +212,8 @@ mymain(void) ...@@ -211,49 +212,8 @@ mymain(void)
if (testQemuDataInit(&data) < 0) if (testQemuDataInit(&data) < 0)
return EXIT_FAILURE; return EXIT_FAILURE;
#define DO_TEST(arch, name) \ if (testQemuCapsIterate(data.inputDir, ".xml", doCapsTest, &data) < 0)
do { \ return EXIT_FAILURE;
if (doCapsTest(name, arch, &data) < 0) \
return EXIT_FAILURE; \
} while (0)
/* Keep this in sync with qemucapabilitiestest */
DO_TEST("x86_64", "caps_1.5.3");
DO_TEST("x86_64", "caps_1.6.0");
DO_TEST("x86_64", "caps_1.7.0");
DO_TEST("x86_64", "caps_2.1.1");
DO_TEST("x86_64", "caps_2.4.0");
DO_TEST("x86_64", "caps_2.5.0");
DO_TEST("x86_64", "caps_2.6.0");
DO_TEST("x86_64", "caps_2.7.0");
DO_TEST("x86_64", "caps_2.8.0");
DO_TEST("x86_64", "caps_2.9.0");
DO_TEST("x86_64", "caps_2.10.0");
DO_TEST("x86_64", "caps_2.11.0");
DO_TEST("x86_64", "caps_2.12.0");
DO_TEST("x86_64", "caps_3.0.0");
DO_TEST("x86_64", "caps_3.1.0");
DO_TEST("x86_64", "caps_4.0.0");
DO_TEST("aarch64", "caps_2.6.0");
DO_TEST("aarch64", "caps_2.10.0");
DO_TEST("aarch64", "caps_2.12.0");
DO_TEST("ppc64", "caps_2.6.0");
DO_TEST("ppc64", "caps_2.9.0");
DO_TEST("ppc64", "caps_2.10.0");
DO_TEST("ppc64", "caps_2.12.0");
DO_TEST("ppc64", "caps_3.0.0");
DO_TEST("ppc64", "caps_3.1.0");
DO_TEST("s390x", "caps_2.7.0");
DO_TEST("s390x", "caps_2.8.0");
DO_TEST("s390x", "caps_2.9.0");
DO_TEST("s390x", "caps_2.10.0");
DO_TEST("s390x", "caps_2.11.0");
DO_TEST("s390x", "caps_2.12.0");
DO_TEST("s390x", "caps_3.0.0");
DO_TEST("riscv32", "caps_3.0.0");
DO_TEST("riscv32", "caps_4.0.0");
DO_TEST("riscv64", "caps_3.0.0");
DO_TEST("riscv64", "caps_4.0.0");
return (data.ret == 0) ? EXIT_SUCCESS : EXIT_FAILURE; return (data.ret == 0) ? EXIT_SUCCESS : EXIT_FAILURE;
} }
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册