mirror of
https://gitlab.com/libvirt/libvirt.git
synced 2025-02-01 17:35:17 +00:00
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:
parent
25527ae25c
commit
05b28ca23d
@ -100,6 +100,42 @@ cleanup:
|
|||||||
|
|
||||||
# define FAKESYSFSDIRTEMPLATE abs_builddir "/fakesysfsdir-XXXXXX"
|
# 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
|
static int
|
||||||
mymain(void)
|
mymain(void)
|
||||||
{
|
{
|
||||||
@ -126,6 +162,7 @@ mymain(void)
|
|||||||
|
|
||||||
DO_TEST(testVirPCIDeviceNew);
|
DO_TEST(testVirPCIDeviceNew);
|
||||||
DO_TEST(testVirPCIDeviceDetach);
|
DO_TEST(testVirPCIDeviceDetach);
|
||||||
|
DO_TEST(testVirPCIDeviceReattach);
|
||||||
|
|
||||||
if (getenv("LIBVIRT_SKIP_CLEANUP") == NULL)
|
if (getenv("LIBVIRT_SKIP_CLEANUP") == NULL)
|
||||||
virFileDeleteTree(fakesysfsdir);
|
virFileDeleteTree(fakesysfsdir);
|
||||||
|
Loading…
x
Reference in New Issue
Block a user