提交 b70c093f 编写于 作者: J Jiri Denemark

virpcitest: Test virPCIDeviceDetach failure

Signed-off-by: NJiri Denemark <jdenemar@redhat.com>
上级 b803b29c
...@@ -258,6 +258,37 @@ cleanup: ...@@ -258,6 +258,37 @@ cleanup:
return ret; return ret;
} }
static int
testVirPCIDeviceDetachFail(const void *opaque)
{
const struct testPCIDevData *data = opaque;
int ret = -1;
virPCIDevicePtr dev;
dev = virPCIDeviceNew(data->domain, data->bus, data->slot, data->function);
if (!dev)
goto cleanup;
if (virPCIDeviceSetStubDriver(dev, "vfio-pci") < 0)
goto cleanup;
if (virPCIDeviceDetach(dev, NULL, NULL) < 0) {
if (virTestGetVerbose() || virTestGetDebug())
virDispatchError(NULL);
virResetLastError();
ret = 0;
} else {
virReportError(VIR_ERR_INTERNAL_ERROR,
"Attaching device %s to %s should have failed",
virPCIDeviceGetName(dev),
virPCIDeviceGetStubDriver(dev));
}
cleanup:
virPCIDeviceFree(dev);
return ret;
}
static int static int
testVirPCIDeviceReattachSingle(const void *opaque) testVirPCIDeviceReattachSingle(const void *opaque)
{ {
...@@ -390,6 +421,8 @@ mymain(void) ...@@ -390,6 +421,8 @@ mymain(void)
DO_TEST_PCI(testVirPCIDeviceIsAssignable, 5, 0x90, 1, 0); DO_TEST_PCI(testVirPCIDeviceIsAssignable, 5, 0x90, 1, 0);
DO_TEST_PCI(testVirPCIDeviceIsAssignable, 1, 1, 0, 0); DO_TEST_PCI(testVirPCIDeviceIsAssignable, 1, 1, 0, 0);
DO_TEST_PCI(testVirPCIDeviceDetachFail, 0, 0x0a, 1, 0);
/* Reattach a device already bound to non-stub a driver */ /* Reattach a device already bound to non-stub a driver */
DO_TEST_PCI_DRIVER(0, 0x0a, 1, 0, "i915"); DO_TEST_PCI_DRIVER(0, 0x0a, 1, 0, "i915");
DO_TEST_PCI(testVirPCIDeviceReattachSingle, 0, 0x0a, 1, 0); DO_TEST_PCI(testVirPCIDeviceReattachSingle, 0, 0x0a, 1, 0);
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册