Right now we have macros such as DO_TEST_CAPS_LATEST_PARSE_ERROR()
and DO_TEST_CAPS_ARCH_VER(), but there is no concise way to say
"using this version of QEMU on this architecture will result in a
failure".
This commit adds
DO_TEST_CAPS_ARCH_LATEST_FAILURE()
DO_TEST_CAPS_ARCH_VER_FAILURE()
DO_TEST_CAPS_ARCH_LATEST_PARSE_ERROR()
DO_TEST_CAPS_ARCH_VER_PARSE_ERROR()
and also slightly reworks
DO_TEST_CAPS_LATEST_PARSE_ERROR()
DO_TEST_CAPS_ARCH_VER()
so that they use the closest more specific macro in their
implementation instead of going further back towards the more
generic building blocks.
The ordering is also altered so that it's both more logical and
fully consistent between xml2argv and xml2xml.
Signed-off-by: Andrea Bolognani <abologna(a)redhat.com>
---
tests/qemuxml2argvtest.c | 43 ++++++++++++++++++++++++++++++----------
tests/qemuxml2xmltest.c | 32 ++++++++++++++++--------------
2 files changed, 50 insertions(+), 25 deletions(-)
diff --git a/tests/qemuxml2argvtest.c b/tests/qemuxml2argvtest.c
index 91ca35d469..8d725040d3 100644
--- a/tests/qemuxml2argvtest.c
+++ b/tests/qemuxml2argvtest.c
@@ -712,29 +712,52 @@ mymain(void)
ARG_CAPS_VER, ver, \
__VA_ARGS__)
-# define DO_TEST_CAPS_ARCH_VER(name, arch, ver) \
- DO_TEST_CAPS_INTERNAL(name, arch, ver, ARG_END)
-
-# define DO_TEST_CAPS_VER(name, ver) \
- DO_TEST_CAPS_ARCH_VER(name, "x86_64", ver)
-
# define DO_TEST_CAPS_ARCH_LATEST_FULL(name, arch, ...) \
DO_TEST_CAPS_INTERNAL(name, arch, "latest", __VA_ARGS__)
+# define DO_TEST_CAPS_ARCH_VER_FULL(name, arch, ver, ...) \
+ DO_TEST_CAPS_INTERNAL(name, arch, ver, __VA_ARGS__)
+
# define DO_TEST_CAPS_ARCH_LATEST(name, arch) \
DO_TEST_CAPS_ARCH_LATEST_FULL(name, arch, ARG_END)
+# define DO_TEST_CAPS_ARCH_VER(name, arch, ver) \
+ DO_TEST_CAPS_ARCH_VER_FULL(name, arch, ver, ARG_END)
+
# define DO_TEST_CAPS_LATEST(name) \
DO_TEST_CAPS_ARCH_LATEST(name, "x86_64")
-# define DO_TEST_CAPS_LATEST_FAILURE(name) \
- DO_TEST_CAPS_ARCH_LATEST_FULL(name, "x86_64", \
+# define DO_TEST_CAPS_VER(name, ver) \
+ DO_TEST_CAPS_ARCH_VER(name, "x86_64", ver)
+
+# define DO_TEST_CAPS_ARCH_LATEST_FAILURE(name, arch) \
+ DO_TEST_CAPS_ARCH_LATEST_FULL(name, arch, \
ARG_FLAGS, FLAG_EXPECT_FAILURE)
-# define DO_TEST_CAPS_LATEST_PARSE_ERROR(name) \
- DO_TEST_CAPS_ARCH_LATEST_FULL(name, "x86_64", \
+# define DO_TEST_CAPS_ARCH_VER_FAILURE(name, arch, ver) \
+ DO_TEST_CAPS_ARCH_VER_FULL(name, arch, ver, \
+ ARG_FLAGS, FLAG_EXPECT_FAILURE)
+
+# define DO_TEST_CAPS_LATEST_FAILURE(name) \
+ DO_TEST_CAPS_ARCH_LATEST_FAILURE(name, "x86_64")
+
+# define DO_TEST_CAPS_VER_FAILURE(name, ver) \
+ DO_TEST_CAPS_ARCH_VER_FAILURE(name, "x86_64", ver)
+
+# define DO_TEST_CAPS_ARCH_LATEST_PARSE_ERROR(name, arch) \
+ DO_TEST_CAPS_ARCH_LATEST_FULL(name, arch, \
ARG_FLAGS, FLAG_EXPECT_PARSE_ERROR)
+# define DO_TEST_CAPS_ARCH_VER_PARSE_ERROR(name, arch, ver) \
+ DO_TEST_CAPS_ARCH_VER_FULL(name, arch, ver, \
+ ARG_FLAGS, FLAG_EXPECT_PARSE_ERROR)
+
+# define DO_TEST_CAPS_LATEST_PARSE_ERROR(name) \
+ DO_TEST_CAPS_ARCH_LATEST_PARSE_ERROR(name, "x86_64")
+
+# define DO_TEST_CAPS_VER_PARSE_ERROR(name, ver) \
+ DO_TEST_CAPS_ARCH_VER_PARSE_ERROR(name, "x86_64", ver)
+
# define DO_TEST_FULL(name, ...) \
DO_TEST_INTERNAL(name, "", \
diff --git a/tests/qemuxml2xmltest.c b/tests/qemuxml2xmltest.c
index a64b17ac28..6d808e172f 100644
--- a/tests/qemuxml2xmltest.c
+++ b/tests/qemuxml2xmltest.c
@@ -207,36 +207,38 @@ mymain(void)
testQemuInfoClear(&info); \
} while (0)
-# define NONE QEMU_CAPS_LAST
-
-# define DO_TEST_FULL(name, when, ...) \
- DO_TEST_INTERNAL(name, "", when, __VA_ARGS__)
-
-# define DO_TEST(name, ...) \
- DO_TEST_FULL(name, WHEN_BOTH, \
- ARG_QEMU_CAPS, __VA_ARGS__, QEMU_CAPS_LAST)
-
# define DO_TEST_CAPS_INTERNAL(name, arch, ver, ...) \
DO_TEST_INTERNAL(name, "." arch "-" ver, WHEN_BOTH, \
ARG_CAPS_ARCH, arch, \
ARG_CAPS_VER, ver, \
__VA_ARGS__)
-# define DO_TEST_CAPS_ARCH_VER(name, arch, ver) \
- DO_TEST_CAPS_INTERNAL(name, arch, ver, ARG_END)
-
-# define DO_TEST_CAPS_VER(name, ver) \
- DO_TEST_CAPS_ARCH_VER(name, "x86_64", ver)
-
# define DO_TEST_CAPS_ARCH_LATEST_FULL(name, arch, ...) \
DO_TEST_CAPS_INTERNAL(name, arch, "latest", __VA_ARGS__)
+# define DO_TEST_CAPS_ARCH_VER_FULL(name, arch, ver, ...) \
+ DO_TEST_CAPS_INTERNAL(name, arch, ver, __VA_ARGS__)
+
# define DO_TEST_CAPS_ARCH_LATEST(name, arch) \
DO_TEST_CAPS_ARCH_LATEST_FULL(name, arch, ARG_END)
+# define DO_TEST_CAPS_ARCH_VER(name, arch, ver) \
+ DO_TEST_CAPS_ARCH_VER_FULL(name, arch, ver, ARG_END)
+
# define DO_TEST_CAPS_LATEST(name) \
DO_TEST_CAPS_ARCH_LATEST(name, "x86_64")
+# define DO_TEST_CAPS_VER(name, ver) \
+ DO_TEST_CAPS_ARCH_VER(name, "x86_64", ver)
+
+# define DO_TEST_FULL(name, when, ...) \
+ DO_TEST_INTERNAL(name, "", when, __VA_ARGS__)
+
+# define DO_TEST(name, ...) \
+ DO_TEST_FULL(name, WHEN_BOTH, \
+ ARG_QEMU_CAPS, __VA_ARGS__, QEMU_CAPS_LAST)
+
+# define NONE QEMU_CAPS_LAST
/* Unset or set all envvars here that are copied in qemudBuildCommandLine
* using ADD_ENV_COPY, otherwise these tests may fail due to unexpected
--
2.21.0