diff options
author | Andre Hartmann <aha_1980@gmx.de> | 2016-05-27 20:54:37 +0200 |
---|---|---|
committer | André Hartmann <aha_1980@gmx.de> | 2016-06-01 08:20:33 +0000 |
commit | a345430678366db1a0540b4a38718bb12c0962c9 (patch) | |
tree | 606e7799032ee74dbc2ba85d1e85c068f342493c /tests | |
parent | 5ddd6bb219102b9561ab7a85cc9c9b8feba17e58 (diff) |
QCanBus: Receive an error message from createDevice()
[ChangeLog] Before, createDevice() could only return
nullptr if anything goes wrong. Now, an optional textual
error description can be returned.
Task-number: QTBUG-53642
Change-Id: Ie097e5c63096ae6a6fb9a798e4a8f23219cf1cfb
Reviewed-by: Alex Blasche <alexander.blasche@theqtcompany.com>
Diffstat (limited to 'tests')
-rw-r--r-- | tests/auto/plugins/genericcanbus/main.cpp | 10 | ||||
-rw-r--r-- | tests/auto/qcanbus/tst_qcanbus.cpp | 9 |
2 files changed, 16 insertions, 3 deletions
diff --git a/tests/auto/plugins/genericcanbus/main.cpp b/tests/auto/plugins/genericcanbus/main.cpp index 3fc6225..d482c3b 100644 --- a/tests/auto/plugins/genericcanbus/main.cpp +++ b/tests/auto/plugins/genericcanbus/main.cpp @@ -50,9 +50,15 @@ class GenericBusPlugin : public QObject, public QCanBusFactory Q_INTERFACES(QCanBusFactory) public: - QCanBusDevice *createDevice(const QString &interfaceName) const + QCanBusDevice *createDevice(const QString &interfaceName, + QString *errorMessage) const { - Q_UNUSED(interfaceName) + if (interfaceName == QStringLiteral("invalid")) { + if (errorMessage) + *errorMessage = tr("No such interface: '%1'").arg(interfaceName); + + return nullptr; + } auto device = new DummyBackend(); return device; } diff --git a/tests/auto/qcanbus/tst_qcanbus.cpp b/tests/auto/qcanbus/tst_qcanbus.cpp index 08047e8..63f98cc 100644 --- a/tests/auto/qcanbus/tst_qcanbus.cpp +++ b/tests/auto/qcanbus/tst_qcanbus.cpp @@ -85,12 +85,19 @@ void tst_QCanBus::plugins() void tst_QCanBus::createDevice() { + QString error, error2; QCanBusDevice *dummy = bus->createDevice("generic", "unused"); QCanBusDevice *dummy2 = bus->createDevice("generic", "unused"); - QCanBusDevice *faulty = bus->createDevice("faulty", "faulty"); + QCanBusDevice *faulty = bus->createDevice("generic", "invalid", &error); + QCanBusDevice *faulty2 = bus->createDevice("faulty", "faulty", &error2); QVERIFY(dummy); QVERIFY(dummy2); + QVERIFY(!faulty); + QCOMPARE(error, tr("No such interface: 'invalid'")); + + QVERIFY(!faulty2); + QCOMPARE(error2, tr("No such plugin: 'faulty'")); delete dummy; delete dummy2; |