tests: Add missing tests for API calls 49/208049/1
authorPaweł Szewczyk <p.szewczyk@samsung.com>
Mon, 17 Jun 2019 15:06:07 +0000 (17:06 +0200)
committerPaweł Szewczyk <p.szewczyk@samsung.com>
Mon, 17 Jun 2019 15:07:19 +0000 (17:07 +0200)
Change-Id: Ib3f8dd2e9305e1b4384668447dad555b79590d7e
Signed-off-by: Paweł Szewczyk <p.szewczyk@samsung.com>
tests/unit_tests.c

index 8f2799c148ba4b697dafde9437d34f10fa774dca..6af3d1dc27991c6e0bd6f0cd908da295dcd03e46 100644 (file)
@@ -1,12 +1,12 @@
 #include "unit_control.h"
 #include <stdio.h>
 #include <assert.h>
+#include <unistd.h>
 
 static const char *async_result = NULL;
 
 #define TEST_SERVICE "activationd-acceptance-test-s-p.service"
 
-
 int test_unit_start()
 {
        return actd_start_unit(G_BUS_TYPE_SYSTEM, TEST_SERVICE);
@@ -24,11 +24,20 @@ int test_unit_restart()
 
 void handler(GVariant *var, void *user_data, GError *err)
 {
-       g_variant_get(var, "(s)", &async_result);
-       g_main_loop_quit(user_data);
+       if (!var) {
+               printf("failed to handle async call: %s\n", err->message);
+               async_result = strdup(err->message);
+               g_main_loop_quit(user_data);
+               return;
+       }
+
+       if (g_variant_check_format_string(var, "(s)", FALSE)) {
+               g_variant_get(var, "(s)", &async_result);
+               g_main_loop_quit(user_data);
+       }
 }
 
-int test_async_action(int (*func)(GBusType bus_type, const char *unit, actd_unit_cb cb, void *user_data))
+int test_async_action(GBusType bus_type, int (*func)(GBusType bus_type, const char *unit, actd_unit_cb cb, void *user_data))
 {
        assert(func);
        int ret;
@@ -36,7 +45,7 @@ int test_async_action(int (*func)(GBusType bus_type, const char *unit, actd_unit
 
        loop = g_main_loop_new(NULL, FALSE);
 
-       ret = func(G_BUS_TYPE_SYSTEM, TEST_SERVICE, handler, loop);
+       ret = func(bus_type, TEST_SERVICE, handler, loop);
        if (ret < 0)
                return ret;
 
@@ -54,17 +63,47 @@ int test_async_action(int (*func)(GBusType bus_type, const char *unit, actd_unit
 
 int test_unit_start_async()
 {
-       return test_async_action(actd_start_unit_async);
+       return test_async_action(G_BUS_TYPE_SYSTEM, actd_start_unit_async);
 }
 
 int test_unit_stop_async()
 {
-       return test_async_action(actd_stop_unit_async);
+       return test_async_action(G_BUS_TYPE_SYSTEM, actd_stop_unit_async);
 }
 
 int test_unit_restart_async()
 {
-       return test_async_action(actd_restart_unit_async);
+       return test_async_action(G_BUS_TYPE_SYSTEM, actd_restart_unit_async);
+}
+
+int test_unit_start_session()
+{
+       return actd_start_unit(G_BUS_TYPE_SESSION, TEST_SERVICE);
+}
+
+int test_unit_stop_session()
+{
+       return actd_stop_unit(G_BUS_TYPE_SESSION, TEST_SERVICE);
+}
+
+int test_unit_restart_session()
+{
+       return actd_restart_unit(G_BUS_TYPE_SESSION, TEST_SERVICE);
+}
+
+int test_unit_start_async_session()
+{
+       return test_async_action(G_BUS_TYPE_SESSION, actd_start_unit_async);
+}
+
+int test_unit_stop_async_session()
+{
+       return test_async_action(G_BUS_TYPE_SESSION, actd_stop_unit_async);
+}
+
+int test_unit_restart_async_session()
+{
+       return test_async_action(G_BUS_TYPE_SESSION, actd_restart_unit_async);
 }
 
 int main()
@@ -82,6 +121,12 @@ int main()
                {"UnitStartAsync", test_unit_start_async},
                {"UnitStopAsync", test_unit_stop_async},
                {"UnitRestartAsync", test_unit_restart_async},
+               {"UnitStartSession", test_unit_start_session},
+               {"UnitStopSession", test_unit_stop_session},
+               {"UnitRestartSession", test_unit_restart_session},
+               {"UnitStartAsynSessionc", test_unit_start_async_session},
+               {"UnitStopAsyncSession", test_unit_stop_async_session},
+               {"UnitRestartAsynSessionc", test_unit_restart_async_session},
                {NULL, NULL},
        };
 
@@ -91,6 +136,8 @@ int main()
                        printf("[FAILED] %s (ret = %d)\n", tests[i].id, ret);
                else
                        printf("[OK] %s\n", tests[i].id);
+
+               usleep(100000);
        }
 
        return 0;