}
-const char *qemuTestCapsName;
-
virQEMUCapsPtr
virQEMUCapsCacheLookup(virCapsPtr caps,
virQEMUCapsCachePtr cache,
{
virQEMUCapsPtr ret = NULL;
- /* This is used only by test suite!!! */
- if (qemuTestCapsName)
- binary = qemuTestCapsName;
-
virMutexLock(&cache->lock);
ret = virHashLookup(cache->binaries, binary);
qemuHotplugCreateObjects(virDomainXMLOptionPtr xmlopt,
virDomainObjPtr *vm,
const char *domxml,
- bool event, const char *testname)
+ bool event)
{
int ret = -1;
qemuDomainObjPrivatePtr priv = NULL;
if (event)
virQEMUCapsSet(priv->qemuCaps, QEMU_CAPS_DEVICE_DEL_EVENT);
- if (qemuTestCapsCacheInsert(driver.qemuCapsCache, testname,
- priv->qemuCaps) < 0)
+ if (qemuTestCapsCacheInsert(driver.qemuCapsCache, priv->qemuCaps) < 0)
goto cleanup;
if (!((*vm)->def = virDomainDefParseString(domxml,
vm = test->vm;
} else {
if (qemuHotplugCreateObjects(driver.xmlopt, &vm, domain_xml,
- test->deviceDeletedEvent,
- test->domain_filename) < 0)
+ test->deviceDeletedEvent) < 0)
goto cleanup;
}
if (virTestLoadFile(data->file_xml_dom, &data->xml_dom) < 0)
goto error;
- if (qemuHotplugCreateObjects(driver.xmlopt, &data->vm, data->xml_dom, true,
- "cpu-hotplug-test-domain") < 0)
+ if (qemuHotplugCreateObjects(driver.xmlopt, &data->vm, data->xml_dom, true) < 0)
goto error;
if (!(caps = virQEMUDriverGetCapabilities(&driver, false)))
if (virQEMUCapsGet(info->qemuCaps, QEMU_CAPS_ENABLE_FIPS))
flags |= FLAG_FIPS;
- if (qemuTestCapsCacheInsert(driver.qemuCapsCache, info->name,
- info->qemuCaps) < 0)
+ if (qemuTestCapsCacheInsert(driver.qemuCapsCache, info->qemuCaps) < 0)
goto cleanup;
if (virAsprintf(&xml, "%s/qemuxml2argvdata/qemuxml2argv-%s.xml",
if (testQemuCapsSetGIC(info->qemuCaps, gic) < 0)
goto error;
- if (qemuTestCapsCacheInsert(driver.qemuCapsCache, name,
- info->qemuCaps) < 0)
+ if (qemuTestCapsCacheInsert(driver.qemuCapsCache, info->qemuCaps) < 0)
goto error;
if (virAsprintf(&info->inName, "%s/qemuxml2argvdata/qemuxml2argv-%s.xml",
virObjectUnref(driver->securityManager);
}
-int qemuTestCapsCacheInsert(virQEMUCapsCachePtr cache, const char *binary,
+int qemuTestCapsCacheInsert(virQEMUCapsCachePtr cache,
virQEMUCapsPtr caps)
{
- int ret;
+ size_t i;
+ virQEMUCapsPtr tmpCaps;
if (caps) {
- /* Our caps were created artificially, so we don't want
- * virQEMUCapsCacheFree() to attempt to deallocate them */
- virObjectRef(caps);
+ tmpCaps = caps;
} else {
- caps = virQEMUCapsNew();
- if (!caps)
+ if (!(tmpCaps = virQEMUCapsNew()))
return -ENOMEM;
}
- /* We can have repeating names for our test data sets,
- * so make sure there's no old copy */
- virHashRemoveEntry(cache->binaries, binary);
+ for (i = 0; i < ARRAY_CARDINALITY(QEMUBinList); i++) {
+ virObjectRef(tmpCaps);
+ if (virHashUpdateEntry(cache->binaries,
+ QEMUBinList[i],
+ tmpCaps) < 0) {
+ virObjectUnref(tmpCaps);
+ return -1;
+ }
+ }
- ret = virHashAddEntry(cache->binaries, binary, caps);
- if (ret < 0)
- virObjectUnref(caps);
- else
- qemuTestCapsName = binary;
+ if (!caps)
+ virObjectUnref(tmpCaps);
- return ret;
+ return 0;
}
+
# define STATEDIRTEMPLATE abs_builddir "/qemustatedir-XXXXXX"
# define CONFIGDIRTEMPLATE abs_builddir "/qemuconfigdir-XXXXXX"
if (!driver->xmlopt)
goto error;
- if (qemuTestCapsCacheInsert(driver->qemuCapsCache, "empty", NULL) < 0)
+ if (qemuTestCapsCacheInsert(driver->qemuCapsCache, NULL) < 0)
goto error;
if (!(mgr = virSecurityManagerNew("none", "qemu",
int qemuTestDriverInit(virQEMUDriver *driver);
void qemuTestDriverFree(virQEMUDriver *driver);
-int qemuTestCapsCacheInsert(virQEMUCapsCachePtr cache, const char *binary,
+int qemuTestCapsCacheInsert(virQEMUCapsCachePtr cache,
virQEMUCapsPtr caps);
int testQemuCapsSetGIC(virQEMUCapsPtr qemuCaps,
int gic);
-
-/* This variable is actually defined in src/qemu/qemu_capabilities.c */
-extern const char *qemuTestCapsName;
#endif