unit: Use D-Bus watch for testing ConnMan running
authorDaniel Wagner <daniel.wagner@bmw-carit.de>
Thu, 11 Aug 2011 14:56:17 +0000 (16:56 +0200)
committerDaniel Wagner <daniel.wagner@bmw-carit.de>
Thu, 11 Aug 2011 15:40:52 +0000 (17:40 +0200)
unit/test-connman.h
unit/test-session.c
unit/utils.c

index f651444..fb9f957 100644 (file)
@@ -32,6 +32,7 @@ struct test_fix {
 
        GMainLoop *main_loop;
        DBusConnection *main_connection;
+       guint watch;
 
        /* session test cases */
        unsigned int max_sessions;
index 07bd3dc..c626e04 100644 (file)
@@ -53,25 +53,6 @@ static struct test_session *get_session(struct test_session *session,
        return &session->fix->session[index];
 }
 
-static connman_bool_t is_connman_running(DBusConnection *connection)
-{
-       DBusError error;
-       connman_bool_t running;
-
-       dbus_error_init(&error);
-
-       running = dbus_bus_name_has_owner(connection, CONNMAN_SERVICE, &error);
-
-       if (dbus_error_is_set(&error) == TRUE) {
-               fprintf(stderr, "%s\n", error.message);
-               dbus_error_free(&error);
-
-               return FALSE;
-       }
-
-       return running;
-}
-
 static gboolean test_session_create_no_notify(gpointer data)
 {
        struct test_fix *fix = data;
@@ -86,7 +67,6 @@ static gboolean test_session_create_no_notify(gpointer data)
 
        dbus_message_unref(msg);
 
-       g_assert(is_connman_running(fix->session->connection) == TRUE);
        util_idle_call(fix, util_quit_loop, util_session_destroy);
 
        return FALSE;
@@ -102,7 +82,6 @@ static gboolean test_session_destroy_no_notify(gpointer data)
        msg = manager_destroy_session(fix->session->connection, "/foo");
        g_assert(msg == NULL);
 
-       g_assert(is_connman_running(fix->session->connection) == TRUE);
        util_idle_call(fix, util_quit_loop, util_session_destroy);
 
        return FALSE;
@@ -112,7 +91,6 @@ static void test_session_create_notify(struct test_session *session)
 {
        LOG("session %p", session);
 
-       g_assert(is_connman_running(session->connection) == TRUE);
        util_idle_call(session->fix, util_quit_loop, util_session_destroy);
 }
 
@@ -156,7 +134,6 @@ static gboolean test_session_create_destroy(gpointer data)
        util_session_init(fix->session);
        util_session_cleanup(fix->session);
 
-       g_assert(is_connman_running(session->connection) == TRUE);
        util_idle_call(fix, util_quit_loop, util_session_destroy);
 
        return FALSE;
@@ -184,7 +161,6 @@ static gboolean test_session_create_already_exists(gpointer data)
 
        util_session_cleanup(session0);
 
-       g_assert(is_connman_running(session0->connection) == TRUE);
        util_idle_call(fix, util_quit_loop, util_session_destroy);
 
        return FALSE;
@@ -196,8 +172,6 @@ static void test_session_create_many_notify(struct test_session *session)
 
        LOG("session %p", session);
 
-       g_assert(is_connman_running(session->connection) == TRUE);
-
        nr = GPOINTER_TO_UINT(session->fix->user_data);
        nr--;
        session->fix->user_data = GUINT_TO_POINTER(nr);
@@ -255,7 +229,6 @@ static void test_session_connect_notify(struct test_session *session)
 
        util_session_cleanup(session);
 
-       g_assert(is_connman_running(session->connection) == TRUE);
        util_idle_call(session->fix, util_quit_loop, util_session_destroy);
 }
 
@@ -290,7 +263,6 @@ static void test_session_disconnect_notify(struct test_session *session)
 
        util_session_cleanup(session);
 
-       g_assert(is_connman_running(session->connection) == TRUE);
        util_idle_call(session->fix, util_quit_loop, util_session_destroy);
 }
 
@@ -329,7 +301,6 @@ static void test_session_connect_disconnect_notify(struct test_session *session)
 
        util_session_cleanup(session);
 
-       g_assert(is_connman_running(session->connection) == TRUE);
        util_idle_call(session->fix, util_quit_loop, util_session_destroy);
 }
 
@@ -421,7 +392,6 @@ static void test_session_connect_free_ride_notify(struct test_session *session)
                util_session_cleanup(session0);
                util_session_cleanup(session1);
 
-               g_assert(is_connman_running(session0->connection) == TRUE);
                util_idle_call(session0->fix, util_quit_loop,
                                util_session_destroy);
 
index 45c78e5..6a174bc 100644 (file)
@@ -54,6 +54,11 @@ guint util_idle_call(struct test_fix *fix, GSourceFunc func,
        return id;
 }
 
+static void connman_died(DBusConnection *connection, void *user_data)
+{
+       g_assert(FALSE);
+}
+
 guint util_call(struct test_fix *fix, GSourceFunc func,
                GDestroyNotify notify)
 {
@@ -73,10 +78,16 @@ void util_setup(struct test_fix *fix, gconstpointer data)
        fix->main_loop = g_main_loop_new(NULL, FALSE);
        fix->main_connection = g_dbus_setup_private(DBUS_BUS_SYSTEM,
                                                        NULL, NULL);
+       fix->watch = g_dbus_add_service_watch(fix->main_connection,
+                                               CONNMAN_SERVICE,
+                                               NULL,
+                                               connman_died,
+                                               NULL, NULL);
 }
 
 void util_teardown(struct test_fix *fix, gconstpointer data)
 {
+       g_dbus_remove_watch(fix->main_connection, fix->watch);
        dbus_connection_close(fix->main_connection);
        dbus_connection_unref(fix->main_connection);