virpcitest: Introduce testVirPCIDeviceReattach

This test will reattach the PCI device detached in the previous test.

Signed-off-by: Michal Privoznik <mprivozn@redhat.com>
This commit is contained in:
Michal Privoznik 2013-10-31 10:57:56 +00:00
parent 25527ae25c
commit 05b28ca23d

View File

@ -100,6 +100,42 @@ cleanup:
# define FAKESYSFSDIRTEMPLATE abs_builddir "/fakesysfsdir-XXXXXX"
static int
testVirPCIDeviceReattach(const void *oaque ATTRIBUTE_UNUSED)
{
int ret = -1;
virPCIDevicePtr dev = NULL;
virPCIDeviceListPtr activeDevs = NULL, inactiveDevs = NULL;
int count;
if (!(dev = virPCIDeviceNew(0, 0, 1, 0)) ||
!(activeDevs = virPCIDeviceListNew()) ||
!(inactiveDevs = virPCIDeviceListNew()))
goto cleanup;
if (virPCIDeviceListAdd(inactiveDevs, dev) < 0) {
virPCIDeviceFree(dev);
goto cleanup;
}
CHECK_LIST_COUNT(activeDevs, 0);
CHECK_LIST_COUNT(inactiveDevs, 1);
if (virPCIDeviceSetStubDriver(dev, "pci-stub") < 0)
goto cleanup;
if (virPCIDeviceReattach(dev, activeDevs, inactiveDevs) < 0)
goto cleanup;
CHECK_LIST_COUNT(activeDevs, 0);
CHECK_LIST_COUNT(inactiveDevs, 0);
ret = 0;
cleanup:
virObjectUnref(activeDevs);
virObjectUnref(inactiveDevs);
return ret;
}
static int
mymain(void)
{
@ -126,6 +162,7 @@ mymain(void)
DO_TEST(testVirPCIDeviceNew);
DO_TEST(testVirPCIDeviceDetach);
DO_TEST(testVirPCIDeviceReattach);
if (getenv("LIBVIRT_SKIP_CLEANUP") == NULL)
virFileDeleteTree(fakesysfsdir);