Re: [libvirt] [PATCH 2/2] Add a test for virUSBDeviceList functions
On 26.02.2014 17:54, Ján Tomko wrote: Most of them are already tested in a limited way by testing virUSBDeviceFind. --- tests/virusbtest.c | 75 ++ 1 file changed, 75 insertions(+) diff --git a/tests/virusbtest.c b/tests/virusbtest.c index f9104bf..74b9a5e 100644 --- a/tests/virusbtest.c +++ b/tests/virusbtest.c @@ -204,6 +204,78 @@ cleanup: static int +testUSBList(const void *opaque ATTRIBUTE_UNUSED) +{ +virUSBDeviceListPtr list = NULL; +virUSBDeviceListPtr devlist = NULL; +virUSBDevicePtr dev = NULL; +int ret = -1; +size_t i, ndevs; + +if (!(list = virUSBDeviceListNew())) +goto cleanup; + +if (virUSBDeviceFindByVendor(0x1d6b, 0x0002, NULL, true, devlist) 0) +goto cleanup; + +ndevs = virUSBDeviceListCount(devlist); +for (i = 0; i ndevs; i++) { +dev = virUSBDeviceListGet(devlist, 0); +dev = virUSBDeviceListSteal(devlist, dev); + +if (virUSBDeviceListAdd(list, dev) 0) +goto cleanup; +dev = NULL; +} + +virObjectUnref(devlist); +devlist = NULL; I'd add here: if (ndevs != virUSBDeviceListCount(list)) {error(); goto cleanup;} + +if (virUSBDeviceFindByVendor(0x18d1, 0x4e22, NULL, true, devlist) 0) +goto cleanup; + +ndevs = virUSBDeviceListCount(devlist); +for (i = 0; i ndevs; i++) { +dev = virUSBDeviceListGet(devlist, 0); +dev = virUSBDeviceListSteal(devlist, dev); + +if (virUSBDeviceListAdd(list, dev) 0) +goto cleanup; +dev = NULL; +} + Same here. +if (virUSBDeviceFind(0x18d1, 0x4e22, 1, 20, NULL, true, dev) 0) +goto cleanup; + +if (!virUSBDeviceListFind(list, dev)) { +virReportError(VIR_ERR_INTERNAL_ERROR, + Device '%s' not in list when it should be, + virUSBDeviceGetName(dev)); +goto cleanup; +} + +virUSBDeviceListDel(list, dev); +dev = NULL; + +if (virUSBDeviceListCount(list) != 5) { +virReportError(VIR_ERR_INTERNAL_ERROR, + Wrong device count %zu expected %d, + virUSBDeviceListCount(list), + 5); +goto cleanup; +} + +ret = 0; + +cleanup: +virObjectUnref(list); +virObjectUnref(devlist); +virUSBDeviceFree(dev); +return ret; +} + + +static int mymain(void) { int rv = 0; @@ -251,6 +323,9 @@ mymain(void) DO_TEST_FIND_BY_VENDOR_FAIL(Bogus vendor and product, 0xf00d, 0xbeef); DO_TEST_FIND_BY_VENDOR_FAIL(Valid vendor, 0x1d6b, 0xbeef); +if (virtTestRun(USB List test, testUSBList, NULL) 0) +rv = -1; + if (rv 0) return EXIT_FAILURE; return EXIT_SUCCESS; ACK Michal -- libvir-list mailing list libvir-list@redhat.com https://www.redhat.com/mailman/listinfo/libvir-list
[libvirt] [PATCH 2/2] Add a test for virUSBDeviceList functions
Most of them are already tested in a limited way by testing virUSBDeviceFind. --- tests/virusbtest.c | 75 ++ 1 file changed, 75 insertions(+) diff --git a/tests/virusbtest.c b/tests/virusbtest.c index f9104bf..74b9a5e 100644 --- a/tests/virusbtest.c +++ b/tests/virusbtest.c @@ -204,6 +204,78 @@ cleanup: static int +testUSBList(const void *opaque ATTRIBUTE_UNUSED) +{ +virUSBDeviceListPtr list = NULL; +virUSBDeviceListPtr devlist = NULL; +virUSBDevicePtr dev = NULL; +int ret = -1; +size_t i, ndevs; + +if (!(list = virUSBDeviceListNew())) +goto cleanup; + +if (virUSBDeviceFindByVendor(0x1d6b, 0x0002, NULL, true, devlist) 0) +goto cleanup; + +ndevs = virUSBDeviceListCount(devlist); +for (i = 0; i ndevs; i++) { +dev = virUSBDeviceListGet(devlist, 0); +dev = virUSBDeviceListSteal(devlist, dev); + +if (virUSBDeviceListAdd(list, dev) 0) +goto cleanup; +dev = NULL; +} + +virObjectUnref(devlist); +devlist = NULL; + +if (virUSBDeviceFindByVendor(0x18d1, 0x4e22, NULL, true, devlist) 0) +goto cleanup; + +ndevs = virUSBDeviceListCount(devlist); +for (i = 0; i ndevs; i++) { +dev = virUSBDeviceListGet(devlist, 0); +dev = virUSBDeviceListSteal(devlist, dev); + +if (virUSBDeviceListAdd(list, dev) 0) +goto cleanup; +dev = NULL; +} + +if (virUSBDeviceFind(0x18d1, 0x4e22, 1, 20, NULL, true, dev) 0) +goto cleanup; + +if (!virUSBDeviceListFind(list, dev)) { +virReportError(VIR_ERR_INTERNAL_ERROR, + Device '%s' not in list when it should be, + virUSBDeviceGetName(dev)); +goto cleanup; +} + +virUSBDeviceListDel(list, dev); +dev = NULL; + +if (virUSBDeviceListCount(list) != 5) { +virReportError(VIR_ERR_INTERNAL_ERROR, + Wrong device count %zu expected %d, + virUSBDeviceListCount(list), + 5); +goto cleanup; +} + +ret = 0; + +cleanup: +virObjectUnref(list); +virObjectUnref(devlist); +virUSBDeviceFree(dev); +return ret; +} + + +static int mymain(void) { int rv = 0; @@ -251,6 +323,9 @@ mymain(void) DO_TEST_FIND_BY_VENDOR_FAIL(Bogus vendor and product, 0xf00d, 0xbeef); DO_TEST_FIND_BY_VENDOR_FAIL(Valid vendor, 0x1d6b, 0xbeef); +if (virtTestRun(USB List test, testUSBList, NULL) 0) +rv = -1; + if (rv 0) return EXIT_FAILURE; return EXIT_SUCCESS; -- 1.8.3.2 -- libvir-list mailing list libvir-list@redhat.com https://www.redhat.com/mailman/listinfo/libvir-list