[libvirt] [PATCHv2 1/2] Add tests for virUSBDeviceFind functions

Ján Tomko jtomko at redhat.com
Fri Feb 28 10:10:42 UTC 2014


Mock the /sys/bus/usb directory and test the finding
(and not finding) of some USB devices.
---
 .gitignore                                         |   1 +
 cfg.mk                                             |   3 +-
 tests/Makefile.am                                  |  22 +++
 tests/virusbmock.c                                 |  99 +++++++++++
 tests/virusbtest.c                                 | 190 +++++++++++++++++++++
 .../sys_bus_usb/devices/1-1.5.3.1/devnum           |   1 +
 .../sys_bus_usb/devices/1-1.5.3.1/idProduct        |   1 +
 .../sys_bus_usb/devices/1-1.5.3.1/idVendor         |   1 +
 .../sys_bus_usb/devices/1-1.5.3.3/devnum           |   1 +
 .../sys_bus_usb/devices/1-1.5.3.3/idProduct        |   1 +
 .../sys_bus_usb/devices/1-1.5.3.3/idVendor         |   1 +
 .../sys_bus_usb/devices/1-1.5.3/devnum             |   1 +
 .../sys_bus_usb/devices/1-1.5.3/idProduct          |   1 +
 .../sys_bus_usb/devices/1-1.5.3/idVendor           |   1 +
 .../sys_bus_usb/devices/1-1.5.4/devnum             |   1 +
 .../sys_bus_usb/devices/1-1.5.4/idProduct          |   1 +
 .../sys_bus_usb/devices/1-1.5.4/idVendor           |   1 +
 .../sys_bus_usb/devices/1-1.5.5/devnum             |   1 +
 .../sys_bus_usb/devices/1-1.5.5/idProduct          |   1 +
 .../sys_bus_usb/devices/1-1.5.5/idVendor           |   1 +
 .../sys_bus_usb/devices/1-1.5.6/devnum             |   1 +
 .../sys_bus_usb/devices/1-1.5.6/idProduct          |   1 +
 .../sys_bus_usb/devices/1-1.5.6/idVendor           |   1 +
 .../sys_bus_usb/devices/1-1.5/devnum               |   1 +
 .../sys_bus_usb/devices/1-1.5/idProduct            |   1 +
 .../sys_bus_usb/devices/1-1.5/idVendor             |   1 +
 .../sys_bus_usb/devices/1-1.6/devnum               |   1 +
 .../sys_bus_usb/devices/1-1.6/idProduct            |   1 +
 .../sys_bus_usb/devices/1-1.6/idVendor             |   1 +
 .../virusbtestdata/sys_bus_usb/devices/1-1/devnum  |   1 +
 .../sys_bus_usb/devices/1-1/idProduct              |   1 +
 .../sys_bus_usb/devices/1-1/idVendor               |   1 +
 .../sys_bus_usb/devices/2-1.2/devnum               |   1 +
 .../sys_bus_usb/devices/2-1.2/idProduct            |   1 +
 .../sys_bus_usb/devices/2-1.2/idVendor             |   1 +
 .../virusbtestdata/sys_bus_usb/devices/2-1/devnum  |   1 +
 .../sys_bus_usb/devices/2-1/idProduct              |   1 +
 .../sys_bus_usb/devices/2-1/idVendor               |   1 +
 .../virusbtestdata/sys_bus_usb/devices/usb1/devnum |   1 +
 .../sys_bus_usb/devices/usb1/idProduct             |   1 +
 .../sys_bus_usb/devices/usb1/idVendor              |   1 +
 .../virusbtestdata/sys_bus_usb/devices/usb2/devnum |   1 +
 .../sys_bus_usb/devices/usb2/idProduct             |   1 +
 .../sys_bus_usb/devices/usb2/idVendor              |   1 +
 .../virusbtestdata/sys_bus_usb/devices/usb3/devnum |   1 +
 .../sys_bus_usb/devices/usb3/idProduct             |   1 +
 .../sys_bus_usb/devices/usb3/idVendor              |   1 +
 .../virusbtestdata/sys_bus_usb/devices/usb4/devnum |   1 +
 .../sys_bus_usb/devices/usb4/idProduct             |   1 +
 .../sys_bus_usb/devices/usb4/idVendor              |   1 +
 50 files changed, 359 insertions(+), 1 deletion(-)
 create mode 100644 tests/virusbmock.c
 create mode 100644 tests/virusbtest.c
 create mode 100644 tests/virusbtestdata/sys_bus_usb/devices/1-1.5.3.1/devnum
 create mode 100644 tests/virusbtestdata/sys_bus_usb/devices/1-1.5.3.1/idProduct
 create mode 100644 tests/virusbtestdata/sys_bus_usb/devices/1-1.5.3.1/idVendor
 create mode 100644 tests/virusbtestdata/sys_bus_usb/devices/1-1.5.3.3/devnum
 create mode 100644 tests/virusbtestdata/sys_bus_usb/devices/1-1.5.3.3/idProduct
 create mode 100644 tests/virusbtestdata/sys_bus_usb/devices/1-1.5.3.3/idVendor
 create mode 100644 tests/virusbtestdata/sys_bus_usb/devices/1-1.5.3/devnum
 create mode 100644 tests/virusbtestdata/sys_bus_usb/devices/1-1.5.3/idProduct
 create mode 100644 tests/virusbtestdata/sys_bus_usb/devices/1-1.5.3/idVendor
 create mode 100644 tests/virusbtestdata/sys_bus_usb/devices/1-1.5.4/devnum
 create mode 100644 tests/virusbtestdata/sys_bus_usb/devices/1-1.5.4/idProduct
 create mode 100644 tests/virusbtestdata/sys_bus_usb/devices/1-1.5.4/idVendor
 create mode 100644 tests/virusbtestdata/sys_bus_usb/devices/1-1.5.5/devnum
 create mode 100644 tests/virusbtestdata/sys_bus_usb/devices/1-1.5.5/idProduct
 create mode 100644 tests/virusbtestdata/sys_bus_usb/devices/1-1.5.5/idVendor
 create mode 100644 tests/virusbtestdata/sys_bus_usb/devices/1-1.5.6/devnum
 create mode 100644 tests/virusbtestdata/sys_bus_usb/devices/1-1.5.6/idProduct
 create mode 100644 tests/virusbtestdata/sys_bus_usb/devices/1-1.5.6/idVendor
 create mode 100644 tests/virusbtestdata/sys_bus_usb/devices/1-1.5/devnum
 create mode 100644 tests/virusbtestdata/sys_bus_usb/devices/1-1.5/idProduct
 create mode 100644 tests/virusbtestdata/sys_bus_usb/devices/1-1.5/idVendor
 create mode 100644 tests/virusbtestdata/sys_bus_usb/devices/1-1.6/devnum
 create mode 100644 tests/virusbtestdata/sys_bus_usb/devices/1-1.6/idProduct
 create mode 100644 tests/virusbtestdata/sys_bus_usb/devices/1-1.6/idVendor
 create mode 100644 tests/virusbtestdata/sys_bus_usb/devices/1-1/devnum
 create mode 100644 tests/virusbtestdata/sys_bus_usb/devices/1-1/idProduct
 create mode 100644 tests/virusbtestdata/sys_bus_usb/devices/1-1/idVendor
 create mode 100644 tests/virusbtestdata/sys_bus_usb/devices/2-1.2/devnum
 create mode 100644 tests/virusbtestdata/sys_bus_usb/devices/2-1.2/idProduct
 create mode 100644 tests/virusbtestdata/sys_bus_usb/devices/2-1.2/idVendor
 create mode 100644 tests/virusbtestdata/sys_bus_usb/devices/2-1/devnum
 create mode 100644 tests/virusbtestdata/sys_bus_usb/devices/2-1/idProduct
 create mode 100644 tests/virusbtestdata/sys_bus_usb/devices/2-1/idVendor
 create mode 100644 tests/virusbtestdata/sys_bus_usb/devices/usb1/devnum
 create mode 100644 tests/virusbtestdata/sys_bus_usb/devices/usb1/idProduct
 create mode 100644 tests/virusbtestdata/sys_bus_usb/devices/usb1/idVendor
 create mode 100644 tests/virusbtestdata/sys_bus_usb/devices/usb2/devnum
 create mode 100644 tests/virusbtestdata/sys_bus_usb/devices/usb2/idProduct
 create mode 100644 tests/virusbtestdata/sys_bus_usb/devices/usb2/idVendor
 create mode 100644 tests/virusbtestdata/sys_bus_usb/devices/usb3/devnum
 create mode 100644 tests/virusbtestdata/sys_bus_usb/devices/usb3/idProduct
 create mode 100644 tests/virusbtestdata/sys_bus_usb/devices/usb3/idVendor
 create mode 100644 tests/virusbtestdata/sys_bus_usb/devices/usb4/devnum
 create mode 100644 tests/virusbtestdata/sys_bus_usb/devices/usb4/idProduct
 create mode 100644 tests/virusbtestdata/sys_bus_usb/devices/usb4/idVendor

diff --git a/.gitignore b/.gitignore
index 1b063e1..cb60734 100644
--- a/.gitignore
+++ b/.gitignore
@@ -219,6 +219,7 @@
 /tests/virsystemdtest
 /tests/virtimetest
 /tests/viruritest
+/tests/virusbtest
 /tests/vmwarevertest
 /tests/vmx2xmltest
 /tests/xencapstest
diff --git a/cfg.mk b/cfg.mk
index fa2638f..2a8957a 100644
--- a/cfg.mk
+++ b/cfg.mk
@@ -941,7 +941,8 @@ exclude_file_name_regexp--sc_bindtextdomain = ^(tests|examples)/
 exclude_file_name_regexp--sc_copyright_usage = \
   ^COPYING(|\.LESSER)$$
 
-exclude_file_name_regexp--sc_flags_usage = ^(docs/|src/util/virnetdevtap\.c$$|tests/vir(cgroup|pci)mock\.c$$)
+exclude_file_name_regexp--sc_flags_usage = \
+  ^(docs/|src/util/virnetdevtap\.c$$|tests/vir(cgroup|pci|usb)mock\.c$$)
 
 exclude_file_name_regexp--sc_libvirt_unmarked_diagnostics = \
   ^(src/rpc/gendispatch\.pl$$|tests/)
diff --git a/tests/Makefile.am b/tests/Makefile.am
index c374f14..1b752b2 100644
--- a/tests/Makefile.am
+++ b/tests/Makefile.am
@@ -115,6 +115,7 @@ EXTRA_DIST =		\
 	virfiledata \
 	virpcitestdata \
 	virscsidata \
+	virusbtestdata \
 	vmx2xmldata \
 	xencapsdata \
 	xmconfigdata \
@@ -263,6 +264,10 @@ test_programs += metadatatest
 
 test_programs += secretxml2xmltest
 
+if WITH_LINUX
+test_programs += virusbtest
+endif WITH_LINUX
+
 test_scripts = \
 	capabilityschematest \
 	interfaceschematest \
@@ -344,6 +349,10 @@ if WITH_DBUS
 test_libraries += virsystemdmock.la
 endif WITH_DBUS
 
+if WITH_LINUX
+test_libraries += virusbmock.la
+endif WITH_LINUX
+
 if WITH_TESTS
 noinst_PROGRAMS = $(test_programs) $(test_helpers)
 noinst_LTLIBRARIES = $(test_libraries)
@@ -815,6 +824,19 @@ virpcimock_la_LIBADD = $(GNULIB_LIBS) \
 virpcimock_la_LDFLAGS = -module -avoid-version \
         -rpath /evil/libtool/hack/to/force/shared/lib/creation
 
+if WITH_LINUX
+virusbtest_SOURCES = \
+	virusbtest.c testutils.h testutils.c
+virusbtest_LDADD = $(LDADDS)
+
+virusbmock_la_SOURCES = virusbmock.c
+virusbmock_la_CFLAGS = $(AM_CFLAGS)
+virusbmock_la_LDFLAGS = -module -avoid-version \
+        -rpath /evil/libtool/hack/to/force/shared/lib/creation
+else ! WITH_LINUX
+	EXTRA_DIST += virusbtest.c virusbmock.c
+endif ! WITH_LINUX
+
 if WITH_DBUS
 virdbustest_SOURCES = \
 	virdbustest.c testutils.h testutils.c
diff --git a/tests/virusbmock.c b/tests/virusbmock.c
new file mode 100644
index 0000000..1932ec8
--- /dev/null
+++ b/tests/virusbmock.c
@@ -0,0 +1,99 @@
+/*
+ * Copyright (C) 2014 Red Hat, Inc.
+ *
+ * This library is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU Lesser General Public
+ * License as published by the Free Software Foundation; either
+ * version 2.1 of the License, or (at your option) any later version.
+ *
+ * This library is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+ * Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public
+ * License along with this library.  If not, see
+ * <http://www.gnu.org/licenses/>.
+ *
+ * Author: Jan Tomko <jtomko at redhat.com>
+ */
+
+#include <config.h>
+#include <stdlib.h>
+
+#include <sys/types.h>
+#include <sys/stat.h>
+#include <dirent.h>
+#include <dlfcn.h>
+#include <fcntl.h>
+
+#include "viralloc.h"
+#include "virfile.h"
+#include "virstring.h"
+#include "virusb.h"
+
+#define USB_SYSFS "/sys/bus/usb"
+#define FAKE_USB_SYSFS "virusbtestdata/sys_bus_usb"
+
+static int (*realopen)(const char *pathname, int flags, ...);
+static DIR *(*realopendir)(const char *name);
+
+static void init_syms(void)
+{
+    if (realopen)
+        return;
+
+    realopen = dlsym(RTLD_NEXT, "open");
+    realopendir = dlsym(RTLD_NEXT, "opendir");
+    if (!realopen || !realopendir) {
+        fprintf(stderr, "Error getting symbols");
+        abort();
+    }
+}
+
+static char *get_fake_path(const char *real_path)
+{
+    const char *p = NULL;
+    char *path = NULL;
+
+    if ((p = STRSKIP(real_path, USB_SYSFS)) &&
+        virAsprintfQuiet(&path, "%s/%s/%s", abs_srcdir, FAKE_USB_SYSFS, p) < 0)
+        goto error;
+    else if (!p && VIR_STRDUP_QUIET(path, real_path) < 0)
+        goto error;
+
+    return path;
+
+error:
+    errno = ENOMEM;
+    return NULL;
+}
+
+DIR *opendir(const char *name)
+{
+    char *path;
+    DIR* ret;
+
+    init_syms();
+
+    path = get_fake_path(name);
+
+    ret = realopendir(path);
+    VIR_FREE(path);
+    return ret;
+}
+
+int open(const char *pathname, int flags, ...)
+{
+    char *path;
+    int ret;
+
+    init_syms();
+
+    path = get_fake_path(pathname);
+    if (!path)
+        return -1;
+    ret = realopen(path, flags);
+    VIR_FREE(path);
+    return ret;
+}
diff --git a/tests/virusbtest.c b/tests/virusbtest.c
new file mode 100644
index 0000000..9eb9abe
--- /dev/null
+++ b/tests/virusbtest.c
@@ -0,0 +1,190 @@
+/*
+ * Copyright (C) 2013-2014 Red Hat, Inc.
+ *
+ * This library is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU Lesser General Public
+ * License as published by the Free Software Foundation; either
+ * version 2.1 of the License, or (at your option) any later version.
+ *
+ * This library is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+ * Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public
+ * License along with this library.  If not, see
+ * <http://www.gnu.org/licenses/>.
+ *
+ * Author: Jan Tomko <jtomko at redhat.com>
+ */
+
+#include <config.h>
+#include <stdlib.h>
+
+#include "viralloc.h"
+#include "virerror.h"
+#include "virfile.h"
+#include "virusb.h"
+
+#include "testutils.h"
+
+#define VIR_FROM_THIS VIR_FROM_NONE
+
+typedef enum {
+    FIND_BY_ALL,
+    FIND_BY_VENDOR,
+    FIND_BY_BUS
+} testUSBFindFlags;
+
+struct findTestInfo {
+    const char *name;
+    unsigned int vendor;
+    unsigned int product;
+    unsigned int bus;
+    unsigned int devno;
+    const char *vroot;
+    bool mandatory;
+    int how;
+    bool expectFailure;
+};
+
+static int testDeviceFileActor(virUSBDevicePtr dev,
+                               const char *path,
+                               void *opaque ATTRIBUTE_UNUSED)
+{
+    char *str = NULL;
+    int ret = 0;
+
+    if (virAsprintf(&str, USB_DEVFS "%03d/%03d",
+                    virUSBDeviceGetBus(dev),
+                    virUSBDeviceGetDevno(dev)) < 0)
+        return -1;
+
+    if (STRNEQ(path, str)) {
+        virReportError(VIR_ERR_INTERNAL_ERROR,
+                       "Device path '%s' does not match expected '%s'",
+                       path, str);
+        ret = -1;
+    }
+    VIR_FREE(str);
+    return ret;
+}
+
+static int testDeviceFind(const void *opaque)
+{
+    const struct findTestInfo *info = opaque;
+    int ret = -1;
+    virUSBDevicePtr dev = NULL;
+    virUSBDeviceListPtr devs = NULL;
+    int rv = 0;
+    size_t i, ndevs = 0;
+
+    switch (info->how) {
+    case FIND_BY_ALL:
+        rv = virUSBDeviceFind(info->vendor, info->product,
+                              info->bus, info->devno,
+                              info->vroot, info->mandatory, &dev);
+        break;
+    case FIND_BY_VENDOR:
+        rv = virUSBDeviceFindByVendor(info->vendor, info->product,
+                                      info->vroot, info->mandatory, &devs);
+        break;
+    case FIND_BY_BUS:
+        rv = virUSBDeviceFindByBus(info->bus, info->devno,
+                                   info->vroot, info->mandatory, &dev);
+        break;
+    }
+
+    if (info->expectFailure) {
+        if (rv == 0) {
+            virReportError(VIR_ERR_INTERNAL_ERROR, "%s",
+                           "unexpected success");
+        } else {
+            ret = 0;
+        }
+        goto cleanup;
+    } else if (rv < 0) {
+        goto cleanup;
+    }
+
+    switch (info->how) {
+    case FIND_BY_ALL:
+    case FIND_BY_BUS:
+        if (virUSBDeviceFileIterate(dev, testDeviceFileActor, NULL) < 0)
+            goto cleanup;
+        break;
+
+    case FIND_BY_VENDOR:
+        ndevs = virUSBDeviceListCount(devs);
+
+        for (i = 0; i < ndevs; i++) {
+            virUSBDevicePtr device = virUSBDeviceListGet(devs, i);
+            if (virUSBDeviceFileIterate(device, testDeviceFileActor, NULL) < 0)
+                goto cleanup;
+        }
+        break;
+    }
+
+    ret = 0;
+
+cleanup:
+    virObjectUnref(devs);
+    virUSBDeviceFree(dev);
+    return ret;
+}
+
+
+static int
+mymain(void)
+{
+    int rv = 0;
+
+#define DO_TEST_FIND_FULL(name, vend, prod, bus, devno, vroot, mand, how, fail) \
+    do {                                                                    \
+        struct findTestInfo data = { name, vend, prod, bus,                 \
+            devno, vroot, mand, how, fail                                   \
+        };                                                                  \
+        if (virtTestRun("USBDeviceFind " name, testDeviceFind, &data) < 0)  \
+            rv = -1;                                                        \
+    } while (0)
+
+#define DO_TEST_FIND(name, vend, prod, bus, devno)                          \
+    DO_TEST_FIND_FULL(name, vend, prod, bus, devno, NULL, true,             \
+                      FIND_BY_ALL, false)
+#define DO_TEST_FIND_FAIL(name, vend, prod, bus, devno)                     \
+    DO_TEST_FIND_FULL(name, vend, prod, bus, devno, NULL, true,             \
+                      FIND_BY_ALL, true)
+
+#define DO_TEST_FIND_BY_BUS(name, bus, devno)                               \
+    DO_TEST_FIND_FULL(name, 101, 202, bus, devno, NULL, true,               \
+                      FIND_BY_BUS, false)
+#define DO_TEST_FIND_BY_BUS_FAIL(name, bus, devno)                          \
+    DO_TEST_FIND_FULL(name, 101, 202, bus, devno, NULL, true,               \
+                      FIND_BY_BUS, true)
+
+#define DO_TEST_FIND_BY_VENDOR(name, vend, prod)                            \
+    DO_TEST_FIND_FULL(name, vend, prod, 123, 456, NULL, true,               \
+                      FIND_BY_VENDOR, false)
+#define DO_TEST_FIND_BY_VENDOR_FAIL(name, vend, prod)                       \
+    DO_TEST_FIND_FULL(name, vend, prod, 123, 456, NULL, true,               \
+                      FIND_BY_VENDOR, true)
+
+    DO_TEST_FIND("Nexus", 0x18d1, 0x4e22, 1, 20);
+    DO_TEST_FIND_FAIL("Nexus wrong devnum", 0x18d1, 0x4e22, 1, 25);
+    DO_TEST_FIND_FAIL("Bogus", 0xf00d, 0xbeef, 1024, 768);
+
+    DO_TEST_FIND_BY_BUS("integrated camera", 1, 5);
+    DO_TEST_FIND_BY_BUS_FAIL("wrong bus/devno combination", 2, 20);
+    DO_TEST_FIND_BY_BUS_FAIL("missing bus", 5, 20);
+    DO_TEST_FIND_BY_BUS_FAIL("missing devnum", 1, 158);
+
+    DO_TEST_FIND_BY_VENDOR("Nexus (multiple results)", 0x18d1, 0x4e22);
+    DO_TEST_FIND_BY_VENDOR_FAIL("Bogus vendor and product", 0xf00d, 0xbeef);
+    DO_TEST_FIND_BY_VENDOR_FAIL("Valid vendor", 0x1d6b, 0xbeef);
+
+    if (rv < 0)
+        return EXIT_FAILURE;
+    return EXIT_SUCCESS;
+}
+
+VIRT_TEST_MAIN_PRELOAD(mymain, abs_builddir "/.libs/virusbmock.so")
diff --git a/tests/virusbtestdata/sys_bus_usb/devices/1-1.5.3.1/devnum b/tests/virusbtestdata/sys_bus_usb/devices/1-1.5.3.1/devnum
new file mode 100644
index 0000000..98d9bcb
--- /dev/null
+++ b/tests/virusbtestdata/sys_bus_usb/devices/1-1.5.3.1/devnum
@@ -0,0 +1 @@
+17
diff --git a/tests/virusbtestdata/sys_bus_usb/devices/1-1.5.3.1/idProduct b/tests/virusbtestdata/sys_bus_usb/devices/1-1.5.3.1/idProduct
new file mode 100644
index 0000000..211990d
--- /dev/null
+++ b/tests/virusbtestdata/sys_bus_usb/devices/1-1.5.3.1/idProduct
@@ -0,0 +1 @@
+301b
diff --git a/tests/virusbtestdata/sys_bus_usb/devices/1-1.5.3.1/idVendor b/tests/virusbtestdata/sys_bus_usb/devices/1-1.5.3.1/idVendor
new file mode 100644
index 0000000..489f206
--- /dev/null
+++ b/tests/virusbtestdata/sys_bus_usb/devices/1-1.5.3.1/idVendor
@@ -0,0 +1 @@
+04b3
diff --git a/tests/virusbtestdata/sys_bus_usb/devices/1-1.5.3.3/devnum b/tests/virusbtestdata/sys_bus_usb/devices/1-1.5.3.3/devnum
new file mode 100644
index 0000000..3c03207
--- /dev/null
+++ b/tests/virusbtestdata/sys_bus_usb/devices/1-1.5.3.3/devnum
@@ -0,0 +1 @@
+18
diff --git a/tests/virusbtestdata/sys_bus_usb/devices/1-1.5.3.3/idProduct b/tests/virusbtestdata/sys_bus_usb/devices/1-1.5.3.3/idProduct
new file mode 100644
index 0000000..6f023e6
--- /dev/null
+++ b/tests/virusbtestdata/sys_bus_usb/devices/1-1.5.3.3/idProduct
@@ -0,0 +1 @@
+c069
diff --git a/tests/virusbtestdata/sys_bus_usb/devices/1-1.5.3.3/idVendor b/tests/virusbtestdata/sys_bus_usb/devices/1-1.5.3.3/idVendor
new file mode 100644
index 0000000..cb40fac
--- /dev/null
+++ b/tests/virusbtestdata/sys_bus_usb/devices/1-1.5.3.3/idVendor
@@ -0,0 +1 @@
+046d
diff --git a/tests/virusbtestdata/sys_bus_usb/devices/1-1.5.3/devnum b/tests/virusbtestdata/sys_bus_usb/devices/1-1.5.3/devnum
new file mode 100644
index 0000000..b6a7d89
--- /dev/null
+++ b/tests/virusbtestdata/sys_bus_usb/devices/1-1.5.3/devnum
@@ -0,0 +1 @@
+16
diff --git a/tests/virusbtestdata/sys_bus_usb/devices/1-1.5.3/idProduct b/tests/virusbtestdata/sys_bus_usb/devices/1-1.5.3/idProduct
new file mode 100644
index 0000000..49bee7b
--- /dev/null
+++ b/tests/virusbtestdata/sys_bus_usb/devices/1-1.5.3/idProduct
@@ -0,0 +1 @@
+301a
diff --git a/tests/virusbtestdata/sys_bus_usb/devices/1-1.5.3/idVendor b/tests/virusbtestdata/sys_bus_usb/devices/1-1.5.3/idVendor
new file mode 100644
index 0000000..489f206
--- /dev/null
+++ b/tests/virusbtestdata/sys_bus_usb/devices/1-1.5.3/idVendor
@@ -0,0 +1 @@
+04b3
diff --git a/tests/virusbtestdata/sys_bus_usb/devices/1-1.5.4/devnum b/tests/virusbtestdata/sys_bus_usb/devices/1-1.5.4/devnum
new file mode 100644
index 0000000..bb95160
--- /dev/null
+++ b/tests/virusbtestdata/sys_bus_usb/devices/1-1.5.4/devnum
@@ -0,0 +1 @@
+33
diff --git a/tests/virusbtestdata/sys_bus_usb/devices/1-1.5.4/idProduct b/tests/virusbtestdata/sys_bus_usb/devices/1-1.5.4/idProduct
new file mode 100644
index 0000000..f586e1a
--- /dev/null
+++ b/tests/virusbtestdata/sys_bus_usb/devices/1-1.5.4/idProduct
@@ -0,0 +1 @@
+4e22
diff --git a/tests/virusbtestdata/sys_bus_usb/devices/1-1.5.4/idVendor b/tests/virusbtestdata/sys_bus_usb/devices/1-1.5.4/idVendor
new file mode 100644
index 0000000..38784d5
--- /dev/null
+++ b/tests/virusbtestdata/sys_bus_usb/devices/1-1.5.4/idVendor
@@ -0,0 +1 @@
+18d1
diff --git a/tests/virusbtestdata/sys_bus_usb/devices/1-1.5.5/devnum b/tests/virusbtestdata/sys_bus_usb/devices/1-1.5.5/devnum
new file mode 100644
index 0000000..f04c001
--- /dev/null
+++ b/tests/virusbtestdata/sys_bus_usb/devices/1-1.5.5/devnum
@@ -0,0 +1 @@
+29
diff --git a/tests/virusbtestdata/sys_bus_usb/devices/1-1.5.5/idProduct b/tests/virusbtestdata/sys_bus_usb/devices/1-1.5.5/idProduct
new file mode 100644
index 0000000..f586e1a
--- /dev/null
+++ b/tests/virusbtestdata/sys_bus_usb/devices/1-1.5.5/idProduct
@@ -0,0 +1 @@
+4e22
diff --git a/tests/virusbtestdata/sys_bus_usb/devices/1-1.5.5/idVendor b/tests/virusbtestdata/sys_bus_usb/devices/1-1.5.5/idVendor
new file mode 100644
index 0000000..38784d5
--- /dev/null
+++ b/tests/virusbtestdata/sys_bus_usb/devices/1-1.5.5/idVendor
@@ -0,0 +1 @@
+18d1
diff --git a/tests/virusbtestdata/sys_bus_usb/devices/1-1.5.6/devnum b/tests/virusbtestdata/sys_bus_usb/devices/1-1.5.6/devnum
new file mode 100644
index 0000000..209e3ef
--- /dev/null
+++ b/tests/virusbtestdata/sys_bus_usb/devices/1-1.5.6/devnum
@@ -0,0 +1 @@
+20
diff --git a/tests/virusbtestdata/sys_bus_usb/devices/1-1.5.6/idProduct b/tests/virusbtestdata/sys_bus_usb/devices/1-1.5.6/idProduct
new file mode 100644
index 0000000..f586e1a
--- /dev/null
+++ b/tests/virusbtestdata/sys_bus_usb/devices/1-1.5.6/idProduct
@@ -0,0 +1 @@
+4e22
diff --git a/tests/virusbtestdata/sys_bus_usb/devices/1-1.5.6/idVendor b/tests/virusbtestdata/sys_bus_usb/devices/1-1.5.6/idVendor
new file mode 100644
index 0000000..38784d5
--- /dev/null
+++ b/tests/virusbtestdata/sys_bus_usb/devices/1-1.5.6/idVendor
@@ -0,0 +1 @@
+18d1
diff --git a/tests/virusbtestdata/sys_bus_usb/devices/1-1.5/devnum b/tests/virusbtestdata/sys_bus_usb/devices/1-1.5/devnum
new file mode 100644
index 0000000..60d3b2f
--- /dev/null
+++ b/tests/virusbtestdata/sys_bus_usb/devices/1-1.5/devnum
@@ -0,0 +1 @@
+15
diff --git a/tests/virusbtestdata/sys_bus_usb/devices/1-1.5/idProduct b/tests/virusbtestdata/sys_bus_usb/devices/1-1.5/idProduct
new file mode 100644
index 0000000..49f6c75
--- /dev/null
+++ b/tests/virusbtestdata/sys_bus_usb/devices/1-1.5/idProduct
@@ -0,0 +1 @@
+100a
diff --git a/tests/virusbtestdata/sys_bus_usb/devices/1-1.5/idVendor b/tests/virusbtestdata/sys_bus_usb/devices/1-1.5/idVendor
new file mode 100644
index 0000000..67ad2a5
--- /dev/null
+++ b/tests/virusbtestdata/sys_bus_usb/devices/1-1.5/idVendor
@@ -0,0 +1 @@
+17ef
diff --git a/tests/virusbtestdata/sys_bus_usb/devices/1-1.6/devnum b/tests/virusbtestdata/sys_bus_usb/devices/1-1.6/devnum
new file mode 100644
index 0000000..7ed6ff8
--- /dev/null
+++ b/tests/virusbtestdata/sys_bus_usb/devices/1-1.6/devnum
@@ -0,0 +1 @@
+5
diff --git a/tests/virusbtestdata/sys_bus_usb/devices/1-1.6/idProduct b/tests/virusbtestdata/sys_bus_usb/devices/1-1.6/idProduct
new file mode 100644
index 0000000..2258c87
--- /dev/null
+++ b/tests/virusbtestdata/sys_bus_usb/devices/1-1.6/idProduct
@@ -0,0 +1 @@
+b221
diff --git a/tests/virusbtestdata/sys_bus_usb/devices/1-1.6/idVendor b/tests/virusbtestdata/sys_bus_usb/devices/1-1.6/idVendor
new file mode 100644
index 0000000..009ebe3
--- /dev/null
+++ b/tests/virusbtestdata/sys_bus_usb/devices/1-1.6/idVendor
@@ -0,0 +1 @@
+04f2
diff --git a/tests/virusbtestdata/sys_bus_usb/devices/1-1/devnum b/tests/virusbtestdata/sys_bus_usb/devices/1-1/devnum
new file mode 100644
index 0000000..0cfbf08
--- /dev/null
+++ b/tests/virusbtestdata/sys_bus_usb/devices/1-1/devnum
@@ -0,0 +1 @@
+2
diff --git a/tests/virusbtestdata/sys_bus_usb/devices/1-1/idProduct b/tests/virusbtestdata/sys_bus_usb/devices/1-1/idProduct
new file mode 100644
index 0000000..a55ce18
--- /dev/null
+++ b/tests/virusbtestdata/sys_bus_usb/devices/1-1/idProduct
@@ -0,0 +1 @@
+0024
diff --git a/tests/virusbtestdata/sys_bus_usb/devices/1-1/idVendor b/tests/virusbtestdata/sys_bus_usb/devices/1-1/idVendor
new file mode 100644
index 0000000..a7c026f
--- /dev/null
+++ b/tests/virusbtestdata/sys_bus_usb/devices/1-1/idVendor
@@ -0,0 +1 @@
+8087
diff --git a/tests/virusbtestdata/sys_bus_usb/devices/2-1.2/devnum b/tests/virusbtestdata/sys_bus_usb/devices/2-1.2/devnum
new file mode 100644
index 0000000..b8626c4
--- /dev/null
+++ b/tests/virusbtestdata/sys_bus_usb/devices/2-1.2/devnum
@@ -0,0 +1 @@
+4
diff --git a/tests/virusbtestdata/sys_bus_usb/devices/2-1.2/idProduct b/tests/virusbtestdata/sys_bus_usb/devices/2-1.2/idProduct
new file mode 100644
index 0000000..af68ed9
--- /dev/null
+++ b/tests/virusbtestdata/sys_bus_usb/devices/2-1.2/idProduct
@@ -0,0 +1 @@
+0011
diff --git a/tests/virusbtestdata/sys_bus_usb/devices/2-1.2/idVendor b/tests/virusbtestdata/sys_bus_usb/devices/2-1.2/idVendor
new file mode 100644
index 0000000..40a5eb0
--- /dev/null
+++ b/tests/virusbtestdata/sys_bus_usb/devices/2-1.2/idVendor
@@ -0,0 +1 @@
+046a
diff --git a/tests/virusbtestdata/sys_bus_usb/devices/2-1/devnum b/tests/virusbtestdata/sys_bus_usb/devices/2-1/devnum
new file mode 100644
index 0000000..0cfbf08
--- /dev/null
+++ b/tests/virusbtestdata/sys_bus_usb/devices/2-1/devnum
@@ -0,0 +1 @@
+2
diff --git a/tests/virusbtestdata/sys_bus_usb/devices/2-1/idProduct b/tests/virusbtestdata/sys_bus_usb/devices/2-1/idProduct
new file mode 100644
index 0000000..a55ce18
--- /dev/null
+++ b/tests/virusbtestdata/sys_bus_usb/devices/2-1/idProduct
@@ -0,0 +1 @@
+0024
diff --git a/tests/virusbtestdata/sys_bus_usb/devices/2-1/idVendor b/tests/virusbtestdata/sys_bus_usb/devices/2-1/idVendor
new file mode 100644
index 0000000..a7c026f
--- /dev/null
+++ b/tests/virusbtestdata/sys_bus_usb/devices/2-1/idVendor
@@ -0,0 +1 @@
+8087
diff --git a/tests/virusbtestdata/sys_bus_usb/devices/usb1/devnum b/tests/virusbtestdata/sys_bus_usb/devices/usb1/devnum
new file mode 100644
index 0000000..d00491f
--- /dev/null
+++ b/tests/virusbtestdata/sys_bus_usb/devices/usb1/devnum
@@ -0,0 +1 @@
+1
diff --git a/tests/virusbtestdata/sys_bus_usb/devices/usb1/idProduct b/tests/virusbtestdata/sys_bus_usb/devices/usb1/idProduct
new file mode 100644
index 0000000..5fca1fd
--- /dev/null
+++ b/tests/virusbtestdata/sys_bus_usb/devices/usb1/idProduct
@@ -0,0 +1 @@
+0002
diff --git a/tests/virusbtestdata/sys_bus_usb/devices/usb1/idVendor b/tests/virusbtestdata/sys_bus_usb/devices/usb1/idVendor
new file mode 100644
index 0000000..d247637
--- /dev/null
+++ b/tests/virusbtestdata/sys_bus_usb/devices/usb1/idVendor
@@ -0,0 +1 @@
+1d6b
diff --git a/tests/virusbtestdata/sys_bus_usb/devices/usb2/devnum b/tests/virusbtestdata/sys_bus_usb/devices/usb2/devnum
new file mode 100644
index 0000000..d00491f
--- /dev/null
+++ b/tests/virusbtestdata/sys_bus_usb/devices/usb2/devnum
@@ -0,0 +1 @@
+1
diff --git a/tests/virusbtestdata/sys_bus_usb/devices/usb2/idProduct b/tests/virusbtestdata/sys_bus_usb/devices/usb2/idProduct
new file mode 100644
index 0000000..5fca1fd
--- /dev/null
+++ b/tests/virusbtestdata/sys_bus_usb/devices/usb2/idProduct
@@ -0,0 +1 @@
+0002
diff --git a/tests/virusbtestdata/sys_bus_usb/devices/usb2/idVendor b/tests/virusbtestdata/sys_bus_usb/devices/usb2/idVendor
new file mode 100644
index 0000000..d247637
--- /dev/null
+++ b/tests/virusbtestdata/sys_bus_usb/devices/usb2/idVendor
@@ -0,0 +1 @@
+1d6b
diff --git a/tests/virusbtestdata/sys_bus_usb/devices/usb3/devnum b/tests/virusbtestdata/sys_bus_usb/devices/usb3/devnum
new file mode 100644
index 0000000..d00491f
--- /dev/null
+++ b/tests/virusbtestdata/sys_bus_usb/devices/usb3/devnum
@@ -0,0 +1 @@
+1
diff --git a/tests/virusbtestdata/sys_bus_usb/devices/usb3/idProduct b/tests/virusbtestdata/sys_bus_usb/devices/usb3/idProduct
new file mode 100644
index 0000000..5fca1fd
--- /dev/null
+++ b/tests/virusbtestdata/sys_bus_usb/devices/usb3/idProduct
@@ -0,0 +1 @@
+0002
diff --git a/tests/virusbtestdata/sys_bus_usb/devices/usb3/idVendor b/tests/virusbtestdata/sys_bus_usb/devices/usb3/idVendor
new file mode 100644
index 0000000..d247637
--- /dev/null
+++ b/tests/virusbtestdata/sys_bus_usb/devices/usb3/idVendor
@@ -0,0 +1 @@
+1d6b
diff --git a/tests/virusbtestdata/sys_bus_usb/devices/usb4/devnum b/tests/virusbtestdata/sys_bus_usb/devices/usb4/devnum
new file mode 100644
index 0000000..d00491f
--- /dev/null
+++ b/tests/virusbtestdata/sys_bus_usb/devices/usb4/devnum
@@ -0,0 +1 @@
+1
diff --git a/tests/virusbtestdata/sys_bus_usb/devices/usb4/idProduct b/tests/virusbtestdata/sys_bus_usb/devices/usb4/idProduct
new file mode 100644
index 0000000..1ce74b6
--- /dev/null
+++ b/tests/virusbtestdata/sys_bus_usb/devices/usb4/idProduct
@@ -0,0 +1 @@
+0003
diff --git a/tests/virusbtestdata/sys_bus_usb/devices/usb4/idVendor b/tests/virusbtestdata/sys_bus_usb/devices/usb4/idVendor
new file mode 100644
index 0000000..d247637
--- /dev/null
+++ b/tests/virusbtestdata/sys_bus_usb/devices/usb4/idVendor
@@ -0,0 +1 @@
+1d6b
-- 
1.8.3.2




More information about the libvir-list mailing list