Separate the test files.
Signed-off-by: Peter Krempa <pkrempa(a)redhat.com>
---
tests/meson.build | 1 +
tests/qemustatusxml2xmltest.c | 159 ++++++++++++++++++++++++++++++++++
tests/qemuxml2xmltest.c | 84 ------------------
3 files changed, 160 insertions(+), 84 deletions(-)
create mode 100644 tests/qemustatusxml2xmltest.c
diff --git a/tests/meson.build b/tests/meson.build
index 8decdfa20c..592f9e491d 100644
--- a/tests/meson.build
+++ b/tests/meson.build
@@ -452,6 +452,7 @@ if conf.has('WITH_QEMU')
{ 'name': 'qemuvhostusertest', 'link_with': [
test_qemu_driver_lib ], 'link_whole': [ test_file_wrapper_lib ] },
{ 'name': 'qemuxml2argvtest', 'link_with': [
test_qemu_driver_lib, test_utils_qemu_monitor_lib ], 'link_whole': [
test_utils_qemu_lib, test_file_wrapper_lib ] },
{ 'name': 'qemuxml2xmltest', 'link_with': [
test_qemu_driver_lib ], 'link_whole': [ test_utils_qemu_lib, test_file_wrapper_lib
] },
+ { 'name': 'qemustatusxml2xmltest', 'link_with': [
test_qemu_driver_lib ], 'link_whole': [ test_utils_qemu_lib, test_file_wrapper_lib
] },
]
endif
diff --git a/tests/qemustatusxml2xmltest.c b/tests/qemustatusxml2xmltest.c
new file mode 100644
index 0000000000..539022ece4
--- /dev/null
+++ b/tests/qemustatusxml2xmltest.c
@@ -0,0 +1,159 @@
+#include <config.h>
+
+#include <unistd.h>
+
+#include <sys/types.h>
+#include <fcntl.h>
+
+#include "testutils.h"
+
+#include "internal.h"
+#include "testutilsqemu.h"
+#include "configmake.h"
+
+#define VIR_FROM_THIS VIR_FROM_NONE
+
+static virQEMUDriver driver;
+
+static int
+testCompareStatusXMLToXMLFiles(const void *opaque)
+{
+ const struct testQemuInfo *data = opaque;
+ virDomainObjPtr obj = NULL;
+ g_autofree char *actual = NULL;
+ int ret = -1;
+
+ if (!(obj = virDomainObjParseFile(data->infile, driver.xmlopt,
+ VIR_DOMAIN_DEF_PARSE_STATUS |
+ VIR_DOMAIN_DEF_PARSE_ACTUAL_NET |
+ VIR_DOMAIN_DEF_PARSE_PCI_ORIG_STATES |
+ VIR_DOMAIN_DEF_PARSE_SKIP_VALIDATE |
+ VIR_DOMAIN_DEF_PARSE_ALLOW_POST_PARSE_FAIL))) {
+ VIR_TEST_DEBUG("\nfailed to parse '%s'", data->infile);
+ goto cleanup;
+ }
+
+ if (!(actual = virDomainObjFormat(obj, driver.xmlopt,
+ VIR_DOMAIN_DEF_FORMAT_SECURE |
+ VIR_DOMAIN_DEF_FORMAT_STATUS |
+ VIR_DOMAIN_DEF_FORMAT_ACTUAL_NET |
+ VIR_DOMAIN_DEF_FORMAT_PCI_ORIG_STATES |
+ VIR_DOMAIN_DEF_FORMAT_CLOCK_ADJUST))) {
+ VIR_TEST_DEBUG("\nfailed to format back '%s'",
data->infile);
+ goto cleanup;
+ }
+
+ if (virTestCompareToFile(actual, data->outfile) < 0)
+ goto cleanup;
+
+ ret = 0;
+
+ cleanup:
+ virDomainObjEndAPI(&obj);
+ return ret;
+}
+
+
+static const char *statusPath = abs_srcdir "/qemustatusxml2xmldata/";
+
+static void
+testInfoSetStatusPaths(struct testQemuInfo *info)
+{
+ info->infile = g_strdup_printf("%s%s-in.xml", statusPath,
info->name);
+ info->outfile = g_strdup_printf("%s%s-out.xml", statusPath,
info->name);
+}
+
+
+#define FAKEROOTDIRTEMPLATE abs_builddir "/fakerootdir-XXXXXX"
+
+static int
+mymain(void)
+{
+ int ret = 0;
+ g_autofree char *fakerootdir = NULL;
+ g_autoptr(virQEMUDriverConfig) cfg = NULL;
+ g_autoptr(GHashTable) capslatest = NULL;
+ g_autoptr(virConnect) conn = NULL;
+
+ capslatest = testQemuGetLatestCaps();
+ if (!capslatest)
+ return EXIT_FAILURE;
+
+ fakerootdir = g_strdup(FAKEROOTDIRTEMPLATE);
+
+ if (!g_mkdtemp(fakerootdir)) {
+ fprintf(stderr, "Cannot create fakerootdir");
+ abort();
+ }
+
+ g_setenv("LIBVIRT_FAKE_ROOT_DIR", fakerootdir, TRUE);
+
+ if (qemuTestDriverInit(&driver) < 0)
+ return EXIT_FAILURE;
+
+ cfg = virQEMUDriverGetConfig(&driver);
+ driver.privileged = true;
+
+ if (!(conn = virGetConnect()))
+ goto cleanup;
+
+ virSetConnectInterface(conn);
+ virSetConnectNetwork(conn);
+ virSetConnectNWFilter(conn);
+ virSetConnectNodeDev(conn);
+ virSetConnectSecret(conn);
+ virSetConnectStorage(conn);
+
+#define DO_TEST_STATUS(_name) \
+ do { \
+ static struct testQemuInfo info = { \
+ .name = _name, \
+ }; \
+ if (testQemuInfoSetArgs(&info, capslatest, \
+ ARG_QEMU_CAPS, QEMU_CAPS_LAST, \
+ ARG_END) < 0 || \
+ qemuTestCapsCacheInsert(driver.qemuCapsCache, info.qemuCaps) < 0) { \
+ VIR_TEST_DEBUG("Failed to generate status test data for
'%s'", _name); \
+ return -1; \
+ } \
+ testInfoSetStatusPaths(&info); \
+\
+ if (virTestRun("QEMU status XML-2-XML " _name, \
+ testCompareStatusXMLToXMLFiles, &info) < 0) \
+ ret = -1; \
+\
+ testQemuInfoClear(&info); \
+ } while (0)
+
+
+ DO_TEST_STATUS("blockjob-mirror");
+ DO_TEST_STATUS("vcpus-multi");
+ DO_TEST_STATUS("modern");
+ DO_TEST_STATUS("migration-out-nbd");
+ DO_TEST_STATUS("migration-in-params");
+ DO_TEST_STATUS("migration-out-params");
+ DO_TEST_STATUS("migration-out-nbd-tls");
+ DO_TEST_STATUS("upgrade");
+
+ DO_TEST_STATUS("blockjob-blockdev");
+
+ DO_TEST_STATUS("backup-pull");
+
+ cleanup:
+ if (getenv("LIBVIRT_SKIP_CLEANUP") == NULL)
+ virFileDeleteTree(fakerootdir);
+
+ qemuTestDriverFree(&driver);
+
+ return ret == 0 ? EXIT_SUCCESS : EXIT_FAILURE;
+}
+
+VIR_TEST_MAIN(mymain)
+
+#if 0
+VIR_TEST_MAIN_PRELOAD(mymain,
+ VIR_TEST_MOCK("virpci"),
+ VIR_TEST_MOCK("virrandom"),
+ VIR_TEST_MOCK("domaincaps"),
+ VIR_TEST_MOCK("virdeterministichash"))
+#endif
diff --git a/tests/qemuxml2xmltest.c b/tests/qemuxml2xmltest.c
index fce5d02bce..8daf747e22 100644
--- a/tests/qemuxml2xmltest.c
+++ b/tests/qemuxml2xmltest.c
@@ -48,45 +48,6 @@ testXML2XMLInactive(const void *opaque)
}
-static int
-testCompareStatusXMLToXMLFiles(const void *opaque)
-{
- const struct testQemuInfo *data = opaque;
- virDomainObjPtr obj = NULL;
- g_autofree char *actual = NULL;
- int ret = -1;
-
- if (!(obj = virDomainObjParseFile(data->infile, driver.xmlopt,
- VIR_DOMAIN_DEF_PARSE_STATUS |
- VIR_DOMAIN_DEF_PARSE_ACTUAL_NET |
- VIR_DOMAIN_DEF_PARSE_PCI_ORIG_STATES |
- VIR_DOMAIN_DEF_PARSE_SKIP_VALIDATE |
- VIR_DOMAIN_DEF_PARSE_ALLOW_POST_PARSE_FAIL))) {
- VIR_TEST_DEBUG("\nfailed to parse '%s'", data->infile);
- goto cleanup;
- }
-
- if (!(actual = virDomainObjFormat(obj, driver.xmlopt,
- VIR_DOMAIN_DEF_FORMAT_SECURE |
- VIR_DOMAIN_DEF_FORMAT_STATUS |
- VIR_DOMAIN_DEF_FORMAT_ACTUAL_NET |
- VIR_DOMAIN_DEF_FORMAT_PCI_ORIG_STATES |
- VIR_DOMAIN_DEF_FORMAT_CLOCK_ADJUST))) {
- VIR_TEST_DEBUG("\nfailed to format back '%s'",
data->infile);
- goto cleanup;
- }
-
- if (virTestCompareToFile(actual, data->outfile) < 0)
- goto cleanup;
-
- ret = 0;
-
- cleanup:
- virDomainObjEndAPI(&obj);
- return ret;
-}
-
-
static int
testInfoSetPaths(struct testQemuInfo *info,
const char *suffix,
@@ -113,16 +74,6 @@ testInfoSetPaths(struct testQemuInfo *info,
}
-static const char *statusPath = abs_srcdir "/qemustatusxml2xmldata/";
-
-static void
-testInfoSetStatusPaths(struct testQemuInfo *info)
-{
- info->infile = g_strdup_printf("%s%s-in.xml", statusPath,
info->name);
- info->outfile = g_strdup_printf("%s%s-out.xml", statusPath,
info->name);
-}
-
-
#define FAKEROOTDIRTEMPLATE abs_builddir "/fakerootdir-XXXXXX"
static int
@@ -1421,41 +1372,6 @@ mymain(void)
QEMU_CAPS_VIRTIO_SCSI,
QEMU_CAPS_MCH_EXTENDED_TSEG_MBYTES);
-#define DO_TEST_STATUS(_name) \
- do { \
- static struct testQemuInfo info = { \
- .name = _name, \
- }; \
- if (testQemuInfoSetArgs(&info, capslatest, \
- ARG_QEMU_CAPS, QEMU_CAPS_LAST, \
- ARG_END) < 0 || \
- qemuTestCapsCacheInsert(driver.qemuCapsCache, info.qemuCaps) < 0) { \
- VIR_TEST_DEBUG("Failed to generate status test data for
'%s'", _name); \
- return -1; \
- } \
- testInfoSetStatusPaths(&info); \
-\
- if (virTestRun("QEMU status XML-2-XML " _name, \
- testCompareStatusXMLToXMLFiles, &info) < 0) \
- ret = -1; \
-\
- testQemuInfoClear(&info); \
- } while (0)
-
-
- DO_TEST_STATUS("blockjob-mirror");
- DO_TEST_STATUS("vcpus-multi");
- DO_TEST_STATUS("modern");
- DO_TEST_STATUS("migration-out-nbd");
- DO_TEST_STATUS("migration-in-params");
- DO_TEST_STATUS("migration-out-params");
- DO_TEST_STATUS("migration-out-nbd-tls");
- DO_TEST_STATUS("upgrade");
-
- DO_TEST_STATUS("blockjob-blockdev");
-
- DO_TEST_STATUS("backup-pull");
-
DO_TEST("vhost-vsock", QEMU_CAPS_DEVICE_VHOST_VSOCK);
DO_TEST("vhost-vsock-auto", QEMU_CAPS_DEVICE_VHOST_VSOCK);
DO_TEST("vhost-vsock-ccw", QEMU_CAPS_DEVICE_VHOST_VSOCK,
--
2.26.2