[libvirt] [PATCH 10/17] tests: Add support for passing vm to qemu monitor

Jiri Denemark jdenemar at redhat.com
Thu Aug 1 19:28:19 UTC 2013


Some tests need the monitor to operate on an already existing VM object
rather than on a new mock-up the monitor test normally creates.
---
 tests/qemuhotplugtest.c      |  2 +-
 tests/qemumonitorjsontest.c  | 26 +++++++++++++-------------
 tests/qemumonitortestutils.c | 19 ++++++++++++++-----
 tests/qemumonitortestutils.h |  6 +++++-
 4 files changed, 33 insertions(+), 20 deletions(-)

diff --git a/tests/qemuhotplugtest.c b/tests/qemuhotplugtest.c
index bb047fe..088a0f1 100644
--- a/tests/qemuhotplugtest.c
+++ b/tests/qemuhotplugtest.c
@@ -237,7 +237,7 @@ testQemuHotplug(const void *data)
 
     /* Now is the best time to feed the spoofed monitor with predefined
      * replies. */
-    if (!(test_mon = qemuMonitorTestNew(true, driver.xmlopt)))
+    if (!(test_mon = qemuMonitorTestNew(true, driver.xmlopt, vm)))
         goto cleanup;
 
     tmp = test->mon;
diff --git a/tests/qemumonitorjsontest.c b/tests/qemumonitorjsontest.c
index 9e66059..b287747 100644
--- a/tests/qemumonitorjsontest.c
+++ b/tests/qemumonitorjsontest.c
@@ -35,7 +35,7 @@ static int
 testQemuMonitorJSONGetStatus(const void *data)
 {
     virDomainXMLOptionPtr xmlopt = (virDomainXMLOptionPtr)data;
-    qemuMonitorTestPtr test = qemuMonitorTestNew(true, xmlopt);
+    qemuMonitorTestPtr test = qemuMonitorTestNewSimple(true, xmlopt);
     int ret = -1;
     bool running = false;
     virDomainPausedReason reason = 0;
@@ -129,7 +129,7 @@ static int
 testQemuMonitorJSONGetVersion(const void *data)
 {
     virDomainXMLOptionPtr xmlopt = (virDomainXMLOptionPtr)data;
-    qemuMonitorTestPtr test = qemuMonitorTestNew(true, xmlopt);
+    qemuMonitorTestPtr test = qemuMonitorTestNewSimple(true, xmlopt);
     int ret = -1;
     int major;
     int minor;
@@ -232,7 +232,7 @@ static int
 testQemuMonitorJSONGetMachines(const void *data)
 {
     virDomainXMLOptionPtr xmlopt = (virDomainXMLOptionPtr)data;
-    qemuMonitorTestPtr test = qemuMonitorTestNew(true, xmlopt);
+    qemuMonitorTestPtr test = qemuMonitorTestNewSimple(true, xmlopt);
     int ret = -1;
     qemuMonitorMachineInfoPtr *info;
     int ninfo = 0;
@@ -314,7 +314,7 @@ static int
 testQemuMonitorJSONGetCPUDefinitions(const void *data)
 {
     virDomainXMLOptionPtr xmlopt = (virDomainXMLOptionPtr)data;
-    qemuMonitorTestPtr test = qemuMonitorTestNew(true, xmlopt);
+    qemuMonitorTestPtr test = qemuMonitorTestNewSimple(true, xmlopt);
     int ret = -1;
     char **cpus = NULL;
     int ncpus = 0;
@@ -380,7 +380,7 @@ static int
 testQemuMonitorJSONGetCommands(const void *data)
 {
     virDomainXMLOptionPtr xmlopt = (virDomainXMLOptionPtr)data;
-    qemuMonitorTestPtr test = qemuMonitorTestNew(true, xmlopt);
+    qemuMonitorTestPtr test = qemuMonitorTestNewSimple(true, xmlopt);
     int ret = -1;
     char **commands = NULL;
     int ncommands = 0;
@@ -445,7 +445,7 @@ static int
 testQemuMonitorJSONGetTPMModels(const void *data)
 {
     const virDomainXMLOptionPtr xmlopt = (virDomainXMLOptionPtr)data;
-    qemuMonitorTestPtr test = qemuMonitorTestNew(true, xmlopt);
+    qemuMonitorTestPtr test = qemuMonitorTestNewSimple(true, xmlopt);
     int ret = -1;
     char **tpmmodels = NULL;
     int ntpmmodels = 0;
@@ -498,7 +498,7 @@ static int
 testQemuMonitorJSONGetCommandLineOptionParameters(const void *data)
 {
     const virDomainXMLOptionPtr xmlopt = (virDomainXMLOptionPtr)data;
-    qemuMonitorTestPtr test = qemuMonitorTestNew(true, xmlopt);
+    qemuMonitorTestPtr test = qemuMonitorTestNewSimple(true, xmlopt);
     int ret = -1;
     char **params = NULL;
     int nparams = 0;
@@ -599,7 +599,7 @@ static int
 testQemuMonitorJSONAttachChardev(const void *data)
 {
     const virDomainXMLOptionPtr xmlopt = (virDomainXMLOptionPtr)data;
-    qemuMonitorTestPtr test = qemuMonitorTestNew(true, xmlopt);
+    qemuMonitorTestPtr test = qemuMonitorTestNewSimple(true, xmlopt);
     virDomainChrSourceDef chr;
     int ret = 0;
 
@@ -680,7 +680,7 @@ static int
 testQemuMonitorJSONDetachChardev(const void *data)
 {
     const virDomainXMLOptionPtr xmlopt = (virDomainXMLOptionPtr)data;
-    qemuMonitorTestPtr test = qemuMonitorTestNew(true, xmlopt);
+    qemuMonitorTestPtr test = qemuMonitorTestNewSimple(true, xmlopt);
     int ret = -1;
 
     if (!test)
@@ -713,7 +713,7 @@ static int
 testQemuMonitorJSONGetListPaths(const void *data)
 {
     const virDomainXMLOptionPtr xmlopt = (virDomainXMLOptionPtr)data;
-    qemuMonitorTestPtr test = qemuMonitorTestNew(true, xmlopt);
+    qemuMonitorTestPtr test = qemuMonitorTestNewSimple(true, xmlopt);
     int ret = -1;
     qemuMonitorJSONListPathPtr *paths;
     int npaths = 0;
@@ -791,7 +791,7 @@ static int
 testQemuMonitorJSONGetObjectProperty(const void *data)
 {
     const virDomainXMLOptionPtr xmlopt = (virDomainXMLOptionPtr)data;
-    qemuMonitorTestPtr test = qemuMonitorTestNew(true, xmlopt);
+    qemuMonitorTestPtr test = qemuMonitorTestNewSimple(true, xmlopt);
     int ret = -1;
     qemuMonitorJSONObjectProperty prop;
 
@@ -834,7 +834,7 @@ static int
 testQemuMonitorJSONSetObjectProperty(const void *data)
 {
     const virDomainXMLOptionPtr xmlopt = (virDomainXMLOptionPtr)data;
-    qemuMonitorTestPtr test = qemuMonitorTestNew(true, xmlopt);
+    qemuMonitorTestPtr test = qemuMonitorTestNewSimple(true, xmlopt);
     int ret = -1;
     qemuMonitorJSONObjectProperty prop;
 
@@ -886,7 +886,7 @@ static int
 testQemuMonitorJSONGetDeviceAliases(const void *data)
 {
     const virDomainXMLOptionPtr xmlopt = (virDomainXMLOptionPtr)data;
-    qemuMonitorTestPtr test = qemuMonitorTestNew(true, xmlopt);
+    qemuMonitorTestPtr test = qemuMonitorTestNewSimple(true, xmlopt);
     int ret = -1;
     char **aliases = NULL;
     char **alias;
diff --git a/tests/qemumonitortestutils.c b/tests/qemumonitortestutils.c
index 93fb342..95c1b3d 100644
--- a/tests/qemumonitortestutils.c
+++ b/tests/qemumonitortestutils.c
@@ -743,6 +743,7 @@ static qemuAgentCallbacks qemuMonitorTestAgentCallbacks = {
 
 static qemuMonitorTestPtr
 qemuMonitorCommonTestNew(virDomainXMLOptionPtr xmlopt,
+                         virDomainObjPtr vm,
                          virDomainChrSourceDefPtr src)
 {
     qemuMonitorTestPtr test = NULL;
@@ -773,8 +774,14 @@ qemuMonitorCommonTestNew(virDomainXMLOptionPtr xmlopt,
     if (virAsprintf(&path, "%s/qemumonitorjsontest.sock", test->tmpdir) < 0)
         goto error;
 
-    if (!(test->vm = virDomainObjNew(xmlopt)))
-        goto error;
+    if (vm) {
+        virObjectRef(vm);
+        test->vm = vm;
+    } else {
+        test->vm = virDomainObjNew(xmlopt);
+        if (!test->vm)
+            goto error;
+    }
 
     if (virNetSocketNewListenUNIX(path, 0700, getuid(), getgid(),
                                   &test->server) < 0)
@@ -860,12 +867,14 @@ error:
 #define QEMU_TEXT_GREETING "QEMU 1.0,1 monitor - type 'help' for more information"
 
 qemuMonitorTestPtr
-qemuMonitorTestNew(bool json, virDomainXMLOptionPtr xmlopt)
+qemuMonitorTestNew(bool json,
+                   virDomainXMLOptionPtr xmlopt,
+                   virDomainObjPtr vm)
 {
     qemuMonitorTestPtr test = NULL;
     virDomainChrSourceDef src;
 
-    if (!(test = qemuMonitorCommonTestNew(xmlopt, &src)))
+    if (!(test = qemuMonitorCommonTestNew(xmlopt, vm, &src)))
         goto error;
 
     test->json = json;
@@ -902,7 +911,7 @@ qemuMonitorTestNewAgent(virDomainXMLOptionPtr xmlopt)
     qemuMonitorTestPtr test = NULL;
     virDomainChrSourceDef src;
 
-    if (!(test = qemuMonitorCommonTestNew(xmlopt, &src)))
+    if (!(test = qemuMonitorCommonTestNew(xmlopt, NULL, &src)))
         goto error;
 
     if (!(test->agent = qemuAgentOpen(test->vm,
diff --git a/tests/qemumonitortestutils.h b/tests/qemumonitortestutils.h
index 1122409..ccb5457 100644
--- a/tests/qemumonitortestutils.h
+++ b/tests/qemumonitortestutils.h
@@ -59,8 +59,12 @@ int qemuMonitorTestAddItemParams(qemuMonitorTestPtr test,
                                  ...)
     ATTRIBUTE_SENTINEL;
 
+# define qemuMonitorTestNewSimple(json, xmlopt) \
+    qemuMonitorTestNew(json, xmlopt, NULL)
+
 qemuMonitorTestPtr qemuMonitorTestNew(bool json,
-                                      virDomainXMLOptionPtr xmlopt);
+                                      virDomainXMLOptionPtr xmlopt,
+                                      virDomainObjPtr vm);
 
 qemuMonitorTestPtr qemuMonitorTestNewAgent(virDomainXMLOptionPtr xmlopt);
 
-- 
1.8.3.2




More information about the libvir-list mailing list