Re: [libvirt] [PATCH 2/2] Add a test for virUSBDeviceList functions

2014-02-27 Thread Michal Privoznik

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

2014-02-26 Thread Ján Tomko
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