qemuxml2xmltest: Introduce fake network driver
In order to be able to use '<interface type="network"' we need a fake network driver in qemuxml2argvtest. Create one by simply allowing users to reuse configs from tests/networkxml2xmlin and tests/virnetworkportxml2xmldata which will be returned to corresponding functions. The driver implements: .networkLookupByName = fakeNetworkLookupByName, - validate syntax of network name, check if config exists .networkGetXMLDesc = fakeNetworkGetXMLDesc, - return appropriate XML .networkPortCreateXML = fakeNetworkPortCreateXML, - validate that port XML exists .networkPortGetXMLDesc = fakeNetworkPortGetXMLDesc, - return appropriate port XML With the above and the correspondign test data, all network XMLs can be enabled. Signed-off-by: Peter Krempa <pkrempa@redhat.com> Reviewed-by: Michal Privoznik <mprivozn@redhat.com>
This commit is contained in:
parent
1948244461
commit
dbe85bd095
@ -257,6 +257,105 @@ static virNWFilterDriver fakeNWFilterDriver = {
|
|||||||
};
|
};
|
||||||
|
|
||||||
|
|
||||||
|
/* name of the fake network shall be constructed as:
|
||||||
|
* NETWORKXMLNAME;NETWORKPORTXMLNAME
|
||||||
|
* where:
|
||||||
|
* NETWORKXMLNAME resolves to abs_srcdir/networkxml2xmlin/NETWORKXMLNAME.xml
|
||||||
|
* NETWORKPORTXMLNAME resolves to abs_srcdir/virnetworkportxml2xmldata/NETWORKPORTXMLNAME.xml
|
||||||
|
*/
|
||||||
|
static virNetworkPtr
|
||||||
|
fakeNetworkLookupByName(virConnectPtr conn,
|
||||||
|
const char *name)
|
||||||
|
{
|
||||||
|
unsigned char uuid[VIR_UUID_BUFLEN];
|
||||||
|
g_autofree char *netname = g_strdup(name);
|
||||||
|
g_autofree char *path = NULL;
|
||||||
|
char *tmp;
|
||||||
|
|
||||||
|
memset(uuid, 0, VIR_UUID_BUFLEN);
|
||||||
|
|
||||||
|
if ((tmp = strchr(netname, ';'))) {
|
||||||
|
*tmp = '\0';
|
||||||
|
} else {
|
||||||
|
virReportError(VIR_ERR_NO_NETWORK,
|
||||||
|
"Malformed fake network name '%s'. See fakeNetworkLookupByName.",
|
||||||
|
name);
|
||||||
|
return NULL;
|
||||||
|
}
|
||||||
|
|
||||||
|
path = g_strdup_printf(abs_srcdir "/networkxml2xmlin/%s.xml", netname);
|
||||||
|
|
||||||
|
if (!virFileExists(path)) {
|
||||||
|
virReportError(VIR_ERR_NO_NETWORK, "fake network '%s' not found", path);
|
||||||
|
return NULL;
|
||||||
|
}
|
||||||
|
|
||||||
|
return virGetNetwork(conn, name, uuid);
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
static char *
|
||||||
|
fakeNetworkGetXMLDesc(virNetworkPtr network,
|
||||||
|
unsigned int noflags G_GNUC_UNUSED)
|
||||||
|
{
|
||||||
|
g_autofree char *netname = g_strdup(network->name);
|
||||||
|
g_autofree char *path = NULL;
|
||||||
|
char *xml = NULL;
|
||||||
|
|
||||||
|
*(strchr(netname, ';')) = '\0';
|
||||||
|
|
||||||
|
path = g_strdup_printf(abs_srcdir "/networkxml2xmlin/%s.xml", netname);
|
||||||
|
|
||||||
|
if (virFileReadAll(path, 4 * 1024, &xml) < 0)
|
||||||
|
return NULL;
|
||||||
|
|
||||||
|
return xml;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
static virNetworkPortPtr
|
||||||
|
fakeNetworkPortCreateXML(virNetworkPtr net,
|
||||||
|
const char *xmldesc G_GNUC_UNUSED,
|
||||||
|
unsigned int noflags G_GNUC_UNUSED)
|
||||||
|
{
|
||||||
|
unsigned char uuid[VIR_UUID_BUFLEN];
|
||||||
|
g_autofree char *portname = g_strdup(strchr(net->name, ';') + 1);
|
||||||
|
g_autofree char *path = g_strdup_printf(abs_srcdir "/virnetworkportxml2xmldata/%s.xml", portname);
|
||||||
|
|
||||||
|
memset(uuid, 0, VIR_UUID_BUFLEN);
|
||||||
|
|
||||||
|
if (!virFileExists(path)) {
|
||||||
|
virReportError(VIR_ERR_NO_NETWORK_PORT, "fake network port '%s' not found", path);
|
||||||
|
return NULL;
|
||||||
|
}
|
||||||
|
|
||||||
|
return virGetNetworkPort(net, uuid);
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
static char *
|
||||||
|
fakeNetworkPortGetXMLDesc(virNetworkPortPtr port,
|
||||||
|
unsigned int noflags G_GNUC_UNUSED)
|
||||||
|
{
|
||||||
|
g_autofree char *portname = g_strdup(strchr(port->net->name, ';') + 1);
|
||||||
|
g_autofree char *path = g_strdup_printf(abs_srcdir "/virnetworkportxml2xmldata/%s.xml", portname);
|
||||||
|
char *xml = NULL;
|
||||||
|
|
||||||
|
if (virFileReadAll(path, 4 * 1024, &xml) < 0)
|
||||||
|
return NULL;
|
||||||
|
|
||||||
|
return xml;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
static virNetworkDriver fakeNetworkDriver = {
|
||||||
|
.networkLookupByName = fakeNetworkLookupByName,
|
||||||
|
.networkGetXMLDesc = fakeNetworkGetXMLDesc,
|
||||||
|
.networkPortCreateXML = fakeNetworkPortCreateXML,
|
||||||
|
.networkPortGetXMLDesc = fakeNetworkPortGetXMLDesc,
|
||||||
|
};
|
||||||
|
|
||||||
|
|
||||||
static void
|
static void
|
||||||
testUpdateQEMUCapsHostCPUModel(virQEMUCaps *qemuCaps, virArch hostArch)
|
testUpdateQEMUCapsHostCPUModel(virQEMUCaps *qemuCaps, virArch hostArch)
|
||||||
{
|
{
|
||||||
@ -546,6 +645,7 @@ testCompareXMLToArgv(const void *data)
|
|||||||
conn->secretDriver = &fakeSecretDriver;
|
conn->secretDriver = &fakeSecretDriver;
|
||||||
conn->storageDriver = &fakeStorageDriver;
|
conn->storageDriver = &fakeStorageDriver;
|
||||||
conn->nwfilterDriver = &fakeNWFilterDriver;
|
conn->nwfilterDriver = &fakeNWFilterDriver;
|
||||||
|
conn->networkDriver = &fakeNetworkDriver;
|
||||||
|
|
||||||
virSetConnectInterface(conn);
|
virSetConnectInterface(conn);
|
||||||
virSetConnectNetwork(conn);
|
virSetConnectNetwork(conn);
|
||||||
|
Loading…
x
Reference in New Issue
Block a user