Make testObjectEventQueue tolerant to NULL @event and move it so that it
does not require a prototype. Additionally add
testObjectEventQueueUnlocked that will lock @driver before sending the
event.
Refactor the rest of the codebase to make use of the above features
---
src/test/test_driver.c | 112 +++--
1 file changed, 44 insertions(+), 68 deletions(-)
diff --git a/src/test/test_driver.c b/src/test/test_driver.c
index dc6e49a..20d3c71 100644
--- a/src/test/test_driver.c
+++ b/src/test/test_driver.c
@@ -137,8 +137,6 @@ static const virNodeInfo defaultNodeInfo = {
static int testConnectClose(virConnectPtr conn);
-static void testObjectEventQueue(testConnPtr driver,
- virObjectEventPtr event);
static void testDriverLock(testConnPtr driver)
{
@@ -150,6 +148,28 @@ static void testDriverUnlock(testConnPtr driver)
virMutexUnlock(&driver->lock);
}
+static void testObjectEventQueue(testConnPtr driver,
+ virObjectEventPtr event)
+{
+if (!event)
+return;
+
+virObjectEventStateQueue(driver->eventState, event);
+}
+
+
+static void
+testObjectEventQueueUnlocked(testConnPtr driver,
+ virObjectEventPtr event)
+{
+if (!event)
+return;
+
+testDriverLock(driver);
+testObjectEventQueue(driver, event);
+testDriverUnlock(driver);
+}
+
static void *testDomainObjPrivateAlloc(void)
{
testDomainObjPrivatePtr priv;
@@ -1774,8 +1794,7 @@ testDomainCreateXML(virConnectPtr conn, const char *xml,
cleanup:
if (dom)
virObjectUnlock(dom);
-if (event)
-testObjectEventQueue(privconn, event);
+testObjectEventQueue(privconn, event);
virDomainDefFree(def);
testDriverUnlock(privconn);
return ret;
@@ -1896,8 +1915,7 @@ static int testDomainDestroy(virDomainPtr domain)
ret = 0;
cleanup:
virDomainObjEndAPI(&privdom);
-if (event)
-testObjectEventQueue(privconn, event);
+testObjectEventQueue(privconn, event);
testDriverUnlock(privconn);
return ret;
}
@@ -1927,11 +1945,7 @@ static int testDomainResume(virDomainPtr domain)
cleanup:
virDomainObjEndAPI(&privdom);
-if (event) {
-testDriverLock(privconn);
-testObjectEventQueue(privconn, event);
-testDriverUnlock(privconn);
-}
+testObjectEventQueueUnlocked(privconn, event);
return ret;
}
@@ -1961,12 +1975,7 @@ static int testDomainSuspend(virDomainPtr domain)
cleanup:
virDomainObjEndAPI(&privdom);
-
-if (event) {
-testDriverLock(privconn);
-testObjectEventQueue(privconn, event);
-testDriverUnlock(privconn);
-}
+testObjectEventQueueUnlocked(privconn, event);
return ret;
}
@@ -2002,8 +2011,7 @@ static int testDomainShutdownFlags(virDomainPtr domain,
ret = 0;
cleanup:
virDomainObjEndAPI(&privdom);
-if (event)
-testObjectEventQueue(privconn, event);
+testObjectEventQueue(privconn, event);
testDriverUnlock(privconn);
return ret;
}
@@ -2070,8 +2078,7 @@ static int testDomainReboot(virDomainPtr domain,
ret = 0;
cleanup:
virDomainObjEndAPI(&privdom);
-if (event)
-testObjectEventQueue(privconn, event);
+testObjectEventQueue(privconn, event);
testDriverUnlock(privconn);
return ret;
}
@@ -2214,8 +2221,7 @@ testDomainSaveFlags(virDomainPtr domain, const char *path,
unlink(path);
}
virDomainObjEndAPI(&privdom);
-if (event)
-testObjectEventQueue(privconn, event);
+testObjectEventQueue(privconn, event);
testDriverUnlock(privconn);
return ret;
}
@@ -2319,8 +2325,7 @@ testDomainRestoreFlags(virConnectPtr conn,
VIR_FORCE_CLOSE(fd);
if (dom)
virObjectUnlock(dom);
-if (event)
-testObjectEventQueue(privconn, event);
+testObjectEventQueue(privconn, event);
testDriverUnlock(privconn);
return ret;
}
@@ -2389,8 +2394,7 @@ static int testDomainCoreDumpWithFormat(virDomainPtr
domain,
cleanup:
VIR_FORCE_CLOSE(fd);
virDomainObjEndAPI(&privdom);
-if (event)
-testObjectEventQueue(privconn, event);
+testObjectEventQueue(privconn, event);
testDriverUnlock(privconn);
return ret;
}
@@ -2817,8 +2821,7 @@ static virDomainPtr
testDomainDefineXMLFlags(virConnectPtr conn,
virDomainDefFree(oldDef);
if (dom)
virObjectUnlock(dom);
-if (event)
-testObjectEventQueue(privconn, event);
+testObjectEventQueue(privconn, event);
testDriverUnlock(privconn);
return ret;
}
@@ -2938,8 +2941,7 @@ static int testDomainCreateWithFlags(virDomainPtr domain,
unsigned int flags)
cleanup:
virDomainObjEndAPI(&privdom);
-if (event)
-testObjectEventQueue(privconn, event);
+testObjectEventQueue(privconn, event);
testDriverUnlock(privconn);
return ret;
}
@@ -3006,8 +3008,7 @@ static int testDomainUndefineF