[libvirt PATCH v2 10/12] tests: nodedev: simplify test macros

Jonathon Jongsma jjongsma at redhat.com
Tue Apr 13 20:39:46 UTC 2021


We only use the virt_type "QEMU" in this tests, so simply hard-code it
in the test function rather than specifying it in the test macro. In
addition, we can figure out the appropriate value for 'create' from the
command type, so push that into the test function rather than specifying
it in the test macro.

Signed-off-by: Jonathon Jongsma <jjongsma at redhat.com>
---
 tests/nodedevmdevctltest.c | 43 +++++++++++++++++++++++++-------------
 1 file changed, 28 insertions(+), 15 deletions(-)

diff --git a/tests/nodedevmdevctltest.c b/tests/nodedevmdevctltest.c
index bba521e563..4c316e3ed0 100644
--- a/tests/nodedevmdevctltest.c
+++ b/tests/nodedevmdevctltest.c
@@ -10,9 +10,9 @@
 
 #define VIR_FROM_THIS VIR_FROM_NODEDEV
 
+#define VIRT_TYPE "QEMU"
+
 struct TestInfo {
-    const char *virt_type;
-    int create;
     const char *filename;
     virMdevctlCommand command;
 };
@@ -36,9 +36,7 @@ typedef virCommand * (*MdevctlCmdFunc)(virNodeDeviceDef *, char **, char **);
 
 
 static int
-testMdevctlCmd(const char *virt_type,
-               int create,
-               virMdevctlCommand cmd_type,
+testMdevctlCmd(virMdevctlCommand cmd_type,
                const char *mdevxml,
                const char *cmdfile,
                const char *jsonfile)
@@ -53,8 +51,24 @@ testMdevctlCmd(const char *virt_type,
     g_autofree char *stdinbuf = NULL;
     g_autoptr(virCommand) cmd = NULL;
     g_autoptr(virCommandDryRunToken) dryRunToken = virCommandDryRunTokenNew();
+    int create;
+
+    switch (cmd_type) {
+        case MDEVCTL_CMD_CREATE:
+        case MDEVCTL_CMD_DEFINE:
+            create = CREATE_DEVICE;
+            break;
+        case MDEVCTL_CMD_START:
+        case MDEVCTL_CMD_STOP:
+        case MDEVCTL_CMD_UNDEFINE:
+            create = EXISTING_DEVICE;
+            break;
+        case MDEVCTL_CMD_LAST:
+        default:
+            goto cleanup;
+    }
 
-    if (!(def = virNodeDeviceDefParseFile(mdevxml, create, virt_type)))
+    if (!(def = virNodeDeviceDefParseFile(mdevxml, create, VIRT_TYPE)))
         goto cleanup;
 
     /* this function will set a stdin buffer containing the json configuration
@@ -106,8 +120,7 @@ testMdevctlHelper(const void *data)
     jsonfile = g_strdup_printf("%s/nodedevmdevctldata/%s-%s.json", abs_srcdir,
                                info->filename, cmd);
 
-    return testMdevctlCmd(info->virt_type, info->create, info->command,
-                          mdevxml, cmdlinefile, jsonfile);
+    return testMdevctlCmd(info->command, mdevxml, cmdlinefile, jsonfile);
 }
 
 
@@ -316,27 +329,27 @@ mymain(void)
     if (virTestRun(desc, func, info) < 0) \
         ret = -1;
 
-#define DO_TEST_CMD(desc, virt_type, create, filename, command) \
+#define DO_TEST_CMD(desc, filename, command) \
     do { \
-        struct TestInfo info = { virt_type, create, filename, command }; \
+        struct TestInfo info = { filename, command }; \
         DO_TEST_FULL(desc, testMdevctlHelper, &info); \
        } \
     while (0)
 
 #define DO_TEST_CREATE(filename) \
-    DO_TEST_CMD("create mdev " filename, "QEMU", CREATE_DEVICE, filename, MDEVCTL_CMD_CREATE)
+    DO_TEST_CMD("create mdev " filename, filename, MDEVCTL_CMD_CREATE)
 
 #define DO_TEST_DEFINE(filename) \
-    DO_TEST_CMD("define mdev " filename, "QEMU", CREATE_DEVICE, filename, MDEVCTL_CMD_DEFINE)
+    DO_TEST_CMD("define mdev " filename, filename, MDEVCTL_CMD_DEFINE)
 
 #define DO_TEST_STOP(filename) \
-    DO_TEST_CMD("stop mdev " filename, "QEMU", EXISTING_DEVICE, filename, MDEVCTL_CMD_STOP)
+    DO_TEST_CMD("stop mdev " filename, filename, MDEVCTL_CMD_STOP)
 
 #define DO_TEST_UNDEFINE(filename) \
-    DO_TEST_CMD("undefine mdev" filename, "QEMU", EXISTING_DEVICE, filename, MDEVCTL_CMD_UNDEFINE)
+    DO_TEST_CMD("undefine mdev" filename, filename, MDEVCTL_CMD_UNDEFINE)
 
 #define DO_TEST_START(filename) \
-    DO_TEST_CMD("start mdev " filename, "QEMU", EXISTING_DEVICE, filename, MDEVCTL_CMD_START)
+    DO_TEST_CMD("start mdev " filename, filename, MDEVCTL_CMD_START)
 
 #define DO_TEST_LIST_DEFINED() \
     DO_TEST_FULL("list defined mdevs", testMdevctlListDefined, NULL)
-- 
2.26.3




More information about the libvir-list mailing list