summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--src/dbus/qdbusreply.h2
-rw-r--r--tests/auto/dbus/qdbusreply/tst_qdbusreply.cpp25
2 files changed, 27 insertions, 0 deletions
diff --git a/src/dbus/qdbusreply.h b/src/dbus/qdbusreply.h
index 7b4a4ebcf8..4567c80131 100644
--- a/src/dbus/qdbusreply.h
+++ b/src/dbus/qdbusreply.h
@@ -111,6 +111,7 @@ public:
inline bool isValid() const { return !m_error.isValid(); }
inline const QDBusError& error() { return m_error; }
+ inline const QDBusError& error() const { return m_error; }
inline Type value() const
{
@@ -182,6 +183,7 @@ public:
inline bool isValid() const { return !m_error.isValid(); }
inline const QDBusError& error() { return m_error; }
+ inline const QDBusError& error() const { return m_error; }
private:
QDBusError m_error;
diff --git a/tests/auto/dbus/qdbusreply/tst_qdbusreply.cpp b/tests/auto/dbus/qdbusreply/tst_qdbusreply.cpp
index 5e60e468a2..8b0fa92adf 100644
--- a/tests/auto/dbus/qdbusreply/tst_qdbusreply.cpp
+++ b/tests/auto/dbus/qdbusreply/tst_qdbusreply.cpp
@@ -97,6 +97,7 @@ private slots:
void simpleTypes();
void complexTypes();
void wrongTypes();
+ void error();
};
class TypesInterface: public QDBusAbstractAdaptor
@@ -372,6 +373,30 @@ void tst_QDBusReply::wrongTypes()
QVERIFY(!rstruct.isValid());
}
+void tst_QDBusReply::error()
+{
+ {
+ // Wrong type
+ QDBusReply<bool> result = iface->call(QDBus::BlockWithGui, "retrieveInt");
+ QVERIFY(result.error().isValid());
+ }
+ {
+ // Wrong type, const version
+ const QDBusReply<bool> result = iface->call(QDBus::BlockWithGui, "retrieveInt");
+ QVERIFY(result.error().isValid());
+ }
+ {
+ // Ok type
+ QDBusReply<void> result = iface->call(QDBus::BlockWithGui, "retrieveInt");
+ QVERIFY(!result.error().isValid());
+ }
+ {
+ // Ok type, const version
+ const QDBusReply<void> result = iface->call(QDBus::BlockWithGui, "retrieveInt");
+ QVERIFY(!result.error().isValid());
+ }
+}
+
QTEST_MAIN(tst_QDBusReply)
#include "tst_qdbusreply.moc"