From 6751c585385f017d08540bbe121606d642afb220 Mon Sep 17 00:00:00 2001 From: Martin Wolf Date: Thu, 4 Feb 2010 18:32:35 +0200 Subject: Automated tests for libdbus-qeventloop --- libdbus-qeventloop/dbusconnectioneventloop.cpp | 32 ++++++++++++++++++++++---- libdbus-qeventloop/dbusconnectioneventloop.h | 30 ++++++++++++++++++++++++ 2 files changed, 58 insertions(+), 4 deletions(-) (limited to 'libdbus-qeventloop') diff --git a/libdbus-qeventloop/dbusconnectioneventloop.cpp b/libdbus-qeventloop/dbusconnectioneventloop.cpp index 16f4a24..9d7a255 100644 --- a/libdbus-qeventloop/dbusconnectioneventloop.cpp +++ b/libdbus-qeventloop/dbusconnectioneventloop.cpp @@ -4,7 +4,6 @@ #include #include "dbusconnectioneventloop.h" -#include DBUSConnectionEventLoop::DBUSConnectionEventLoop() : QObject() { @@ -17,6 +16,8 @@ DBUSConnectionEventLoop::~DBUSConnectionEventLoop() // Handle a socket being ready to read. void DBUSConnectionEventLoop::readSocket(int fd) { + MYDEBUG(); + Watchers::const_iterator it = watchers.find(fd); while( it != watchers.end() && it.key() == fd ) @@ -40,6 +41,8 @@ void DBUSConnectionEventLoop::readSocket(int fd) // Handle a socket being ready to write. void DBUSConnectionEventLoop::writeSocket(int fd) { + MYDEBUG(); + Watchers::const_iterator it = watchers.find(fd); while( it != watchers.end() && it.key() == fd ) @@ -60,6 +63,8 @@ void DBUSConnectionEventLoop::writeSocket(int fd) void DBUSConnectionEventLoop::dispatch() { + MYDEBUG(); + for( Connections::const_iterator it = connections.constBegin(); it != connections.constEnd(); ++it ) while( dbus_connection_dispatch(*it) == DBUS_DISPATCH_DATA_REMAINS ) ; @@ -68,6 +73,9 @@ void DBUSConnectionEventLoop::dispatch() // Handle timer events. void DBUSConnectionEventLoop::timerEvent(QTimerEvent *e) { + MYDEBUG(); + MYDEBUGC("TimerID: %d", e->timerId()); + DBusTimeout *timeout = timeouts.value(e->timerId()); if( timeout ) @@ -76,6 +84,8 @@ void DBUSConnectionEventLoop::timerEvent(QTimerEvent *e) dbus_bool_t DBUSConnectionEventLoop::addWatch(DBusWatch *watch, void *data) { + MYDEBUG(); + DBUSConnectionEventLoop *loop = reinterpret_cast(data); int fd = dbus_watch_get_unix_fd(watch); @@ -106,6 +116,8 @@ dbus_bool_t DBUSConnectionEventLoop::addWatch(DBusWatch *watch, void *data) void DBUSConnectionEventLoop::removeWatch(DBusWatch *watch, void *data) { + MYDEBUG(); + DBUSConnectionEventLoop *loop = reinterpret_cast(data); int fd = dbus_watch_get_unix_fd(watch); @@ -135,7 +147,9 @@ void DBUSConnectionEventLoop::removeWatch(DBusWatch *watch, void *data) void DBUSConnectionEventLoop::toggleWatch(DBusWatch *watch, void *data) { - DBUSConnectionEventLoop *loop = reinterpret_cast(data); + MYDEBUG(); + + DBUSConnectionEventLoop *loop = reinterpret_cast(data); int fd = dbus_watch_get_unix_fd(watch); unsigned int flags = dbus_watch_get_flags(watch); @@ -164,6 +178,8 @@ void DBUSConnectionEventLoop::toggleWatch(DBusWatch *watch, void *data) dbus_bool_t DBUSConnectionEventLoop::addTimeout(DBusTimeout *timeout, void *data) { + MYDEBUG(); + // Nothing to do if the timeout is disabled. if( !dbus_timeout_get_enabled(timeout) ) return true; @@ -174,7 +190,10 @@ dbus_bool_t DBUSConnectionEventLoop::addTimeout(DBusTimeout *timeout, void *data DBUSConnectionEventLoop *loop = reinterpret_cast(data); - int id = loop->startTimer(dbus_timeout_get_interval(timeout)); + int timerInterval = dbus_timeout_get_interval(timeout); + int id = loop->startTimer(timerInterval); + + MYDEBUGC("Adding timeout %d with interval %d!", id, timerInterval); if( !id ) return false; @@ -186,6 +205,8 @@ dbus_bool_t DBUSConnectionEventLoop::addTimeout(DBusTimeout *timeout, void *data void DBUSConnectionEventLoop::removeTimeout(DBusTimeout *timeout, void *data) { + MYDEBUG(); + DBUSConnectionEventLoop *loop = reinterpret_cast(data); DBUSConnectionEventLoop::Timeouts::iterator it = loop->timeouts.begin(); @@ -204,12 +225,16 @@ void DBUSConnectionEventLoop::removeTimeout(DBusTimeout *timeout, void *data) void DBUSConnectionEventLoop::toggleTimeout(DBusTimeout *timeout, void *data) { + MYDEBUG(); + DBUSConnectionEventLoop::removeTimeout(timeout, data); DBUSConnectionEventLoop::addTimeout(timeout, data); } void DBUSConnectionEventLoop::wakeupMain(void *data) { + MYDEBUG(); + DBUSConnectionEventLoop *loop = reinterpret_cast(data); QTimer::singleShot(0, loop, SLOT(dispatch())); @@ -256,4 +281,3 @@ bool DBUSConnectionEventLoop::initConnection(DBusConnection* conn) return rc; } - diff --git a/libdbus-qeventloop/dbusconnectioneventloop.h b/libdbus-qeventloop/dbusconnectioneventloop.h index ef46ea2..6f8d8e7 100644 --- a/libdbus-qeventloop/dbusconnectioneventloop.h +++ b/libdbus-qeventloop/dbusconnectioneventloop.h @@ -8,6 +8,36 @@ #include +//#define _DISPLAY_DEBUG_ + +#ifdef _DISPLAY_DEBUG_ + #include + + #define MYDEBUG() MyDebug deb(__FUNCTION__) + #define MYDEBUGC(...) qDebug(__VA_ARGS__) + + class MyDebug + { + public: + MyDebug(const char* func) + { + funcName = strdup(func); + qDebug("--> Entering: %s() ...", funcName); + } + ~MyDebug() + { + qDebug("<-- Leaving: %s() ...", funcName); + free(funcName); + } + + private: + char* funcName; + }; +#else + #define MYDEBUG() + #define MYDEBUGC(...) +#endif + class QSocketNotifier; class QTimerEvent; -- cgit v1.2.3