summaryrefslogtreecommitdiffstats
path: root/tests
diff options
context:
space:
mode:
authorKari Oikarinen <kari.oikarinen@qt.io>2016-10-20 16:37:38 +0300
committerKari Oikarinen <kari.oikarinen@qt.io>2016-11-07 07:18:11 +0000
commita6bfa840aeab17d565030920422000861615e6e6 (patch)
tree0e73a314f073d526e33252bc371a57fab524198a /tests
parent6e15f80aed27e87e9727568ee8d968641a9ed913 (diff)
Handle plugged and unplugged USB devices
Looking for inserted and removed devices is done by polling once a second. libusb hotplug events are not used since they are not supported on Windows and not available in the libusb version in RHEL 7.2. If the IP address is not available for the device on the first check, the device will be checked again after a short delay until the information is complete. In the meanwhile the incomplete information is exposed to the client when asked. Parts that use libusb were moved from libqdb to the host part, since they are only used on the host. Task-number: QTBUG-56067 Change-Id: I0cfbd3659001982609a7d4a77cb1266a7dc6ce8c Reviewed-by: Samuli Piippo <samuli.piippo@qt.io>
Diffstat (limited to 'tests')
-rw-r--r--tests/servicetest.cpp8
-rw-r--r--tests/servicetest.pro24
-rw-r--r--tests/streamtest.cpp7
-rw-r--r--tests/streamtest.pro23
4 files changed, 52 insertions, 10 deletions
diff --git a/tests/servicetest.cpp b/tests/servicetest.cpp
index da38de9..a895257 100644
--- a/tests/servicetest.cpp
+++ b/tests/servicetest.cpp
@@ -21,10 +21,10 @@
#include "libqdb/make_unique.h"
#include "libqdb/protocol/qdbtransport.h"
#include "libqdb/protocol/services.h"
-#include "libqdb/usb/devicemanagement.h"
-#include "libqdb/usb/usbconnection.h"
#include "qdb/server/connection.h"
#include "qdb/server/echoservice.h"
+#include "qdb/server/usb-host/usbconnection.h"
+#include "qdb/server/usb-host/usbdeviceenumerator.h"
#include <QtCore/qdebug.h>
#include <QtCore/qregularexpression.h>
@@ -37,12 +37,14 @@ const int testTimeout = 500; // in milliseconds
struct ConnectionContext
{
ConnectionContext()
- : connection{new QdbTransport{new UsbConnection{listUsbDevices()[0]}}}
+ : deviceEnumerator{},
+ connection{new QdbTransport{new UsbConnection{deviceEnumerator.listUsbDevices()[0]}}}
{
QVERIFY(connection.initialize());
connection.connect();
}
+ UsbDeviceEnumerator deviceEnumerator;
Connection connection;
};
diff --git a/tests/servicetest.pro b/tests/servicetest.pro
index b0ca1cf..ac95228 100644
--- a/tests/servicetest.pro
+++ b/tests/servicetest.pro
@@ -6,16 +6,34 @@ CONFIG -= app_bundle
TEMPLATE = app
+unix {
+ CONFIG += link_pkgconfig
+ PKGCONFIG += libusb-1.0
+}
+win32 {
+ LIBS += -llibusb-1.0
+}
+
HEADERS += \
../qdb/server/connection.h \
../qdb/server/echoservice.h \
- ../qdb/server/service.h
+ ../qdb/server/service.h \
+ ../qdb/server/usb-host/usbcommon.h \
+ ../qdb/server/usb-host/usbconnection.h \
+ ../qdb/server/usb-host/usbconnectionreader.h \
+ ../qdb/server/usb-host/usbdevice.h \
+ ../qdb/server/usb-host/usbdeviceenumerator.h \
SOURCES += \
- servicetest.cpp \
../qdb/server/connection.cpp \
../qdb/server/echoservice.cpp \
- ../qdb/server/service.cpp
+ ../qdb/server/service.cpp \
+ ../qdb/server/usb-host/libusbcontext.cpp \
+ ../qdb/server/usb-host/usbconnection.cpp \
+ ../qdb/server/usb-host/usbconnectionreader.cpp \
+ ../qdb/server/usb-host/usbdevice.cpp \
+ ../qdb/server/usb-host/usbdeviceenumerator.cpp \
+ servicetest.cpp \
INCLUDEPATH += $$PWD/../
diff --git a/tests/streamtest.cpp b/tests/streamtest.cpp
index c44c585..0e3068b 100644
--- a/tests/streamtest.cpp
+++ b/tests/streamtest.cpp
@@ -23,8 +23,8 @@
#include "libqdb/protocol/qdbmessage.h"
#include "libqdb/protocol/qdbtransport.h"
#include "libqdb/protocol/services.h"
-#include "libqdb/usb/devicemanagement.h"
-#include "libqdb/usb/usbconnection.h"
+#include "qdb/server/usb-host/usbconnection.h"
+#include "qdb/server/usb-host/usbdeviceenumerator.h"
#include <QtCore/qdebug.h>
#include <QtCore/qtimer.h>
@@ -45,7 +45,8 @@ public:
public slots:
void run()
{
- m_transport = make_unique<QdbTransport>(new UsbConnection{listUsbDevices()[0]});
+ UsbDeviceEnumerator deviceManager;
+ m_transport = make_unique<QdbTransport>(new UsbConnection{deviceManager.listUsbDevices()[0]});
if (m_transport->open()) {
qDebug() << "opened transport";
connect(m_transport.get(), &QdbTransport::messageAvailable, this, &TestCase::testPhases);
diff --git a/tests/streamtest.pro b/tests/streamtest.pro
index ed45253..09cff3a 100644
--- a/tests/streamtest.pro
+++ b/tests/streamtest.pro
@@ -6,7 +6,28 @@ CONFIG -= app_bundle
TEMPLATE = app
-SOURCES += streamtest.cpp
+unix {
+ CONFIG += link_pkgconfig
+ PKGCONFIG += libusb-1.0
+}
+win32 {
+ LIBS += -llibusb-1.0
+}
+
+HEADERS += \
+ ../qdb/server/usb-host/usbcommon.h \
+ ../qdb/server/usb-host/usbconnection.h \
+ ../qdb/server/usb-host/usbconnectionreader.h \
+ ../qdb/server/usb-host/usbdevice.h \
+ ../qdb/server/usb-host/usbdeviceenumerator.h \
+
+SOURCES += \
+ ../qdb/server/usb-host/libusbcontext.cpp \
+ ../qdb/server/usb-host/usbconnection.cpp \
+ ../qdb/server/usb-host/usbconnectionreader.cpp \
+ ../qdb/server/usb-host/usbdevice.cpp \
+ ../qdb/server/usb-host/usbdeviceenumerator.cpp \
+ streamtest.cpp \
INCLUDEPATH += $$PWD/../