Update tests to async callback call result check. 51/276251/2
authorArkadiusz Nowak <a.nowak3@samsung.com>
Mon, 13 Jun 2022 06:11:22 +0000 (08:11 +0200)
committerAdam Michalski <a.michalski2@partner.samsung.com>
Mon, 13 Jun 2022 12:46:35 +0000 (14:46 +0200)
Change-Id: I91eace5907919b6282a3a4b84fe52aabf1f8684b

libsessiond/target_test/test_api_add_remove_user_err.cpp
libsessiond/target_test/test_api_switchuser_err.cpp
libsessiond/target_test/test_hlp.hpp

index 168bb5a..7802804 100644 (file)
@@ -30,26 +30,36 @@ TEST(subsession_add_remove_test, FailAtAddUser) {
 
        std::apply([](auto &... args){( (init_user_s<tud_ &, subsession_5002>(args) ), ...); },  ud.t );
 
-       std::array<res_t, add_user_fail::action_items> results {
-               res_t{ add_user_wrap<ud_add_user_fail, add_user_fail::add_user_0>(TestUser::user_0, test_reply_callback_default, ud),
-                       SUBSESSION_ERROR_INVALID_PARAMETER, "Check if adding user 0 returns error" },
-
-               res_t{ add_user_wrap<ud_add_user_fail, add_user_fail::add_user_minus_1>( -(TestUser::user_1), test_reply_callback_default, ud),
-                       SUBSESSION_ERROR_INVALID_PARAMETER, "Check if adding user -1 returns error" },
-
-               res_t{ add_user_wrap<ud_add_user_fail, add_user_fail::add_user_1>( (TestUser::user_1), test_reply_callback_default, ud),
-                       SUBSESSION_ERROR_NONE, "Check if adding user 1 returns no error" },
-
-               res_t{ add_user_wrap<ud_add_user_fail, add_user_fail::add_user_1_again>( (TestUser::user_1), test_reply_callback_default, ud),
-                       SUBSESSION_ERROR_ALREADY_EXISTS, "Check if adding user 1 again returns error" },
-
-               res_t{ remove_user_wrap<ud_add_user_fail, add_user_fail::remove_user_1>( (TestUser::user_1), test_reply_callback_default, ud),
-                       SUBSESSION_ERROR_NONE, "Check if removing user 1 returns no error" },
+       std::array<res_t_cb, add_user_fail::action_items> results {
+               res_t_cb{ add_user_wrap<ud_add_user_fail, add_user_fail::add_user_0>(TestUser::user_0, test_reply_callback_default, ud),
+                               SUBSESSION_ERROR_INVALID_PARAMETER,  "Check if adding user 0 returns  error",
+                       std::get<add_user_fail::add_user_0>(ud.t),
+                               SUBSESSION_ERROR_INVALID_PARAMETER, "Check if adding user 0 returns error in callback" },
+
+               res_t_cb{ add_user_wrap<ud_add_user_fail, add_user_fail::add_user_minus_1>(-(TestUser::user_1), test_reply_callback_default, ud),
+                               SUBSESSION_ERROR_INVALID_PARAMETER,  "Check if adding user -1 returns error",
+                       std::get<add_user_fail::add_user_minus_1>(ud.t),
+                               SUBSESSION_ERROR_INVALID_PARAMETER, "Check if adding user -1 returns error in callback" },
+
+               res_t_cb{ add_user_wrap<ud_add_user_fail, add_user_fail::add_user_1>( (TestUser::user_1), test_reply_callback_default, ud),
+                               SUBSESSION_ERROR_NONE, "Check if adding user 1 returns no error",
+                       std::get<add_user_fail::add_user_1>(ud.t),
+                               SUBSESSION_ERROR_NONE, "Check if adding user 1 returns no error in callback" },
+
+               res_t_cb{ add_user_wrap<ud_add_user_fail, add_user_fail::add_user_1_again>( (TestUser::user_1), test_reply_callback_default, ud),
+                               SUBSESSION_ERROR_NONE, "Check if adding user 1 again returns no error" ,
+                       std::get<add_user_fail::add_user_1_again>(ud.t),
+                               SUBSESSION_ERROR_ALREADY_EXISTS, "Check if adding user 1 returns error in callback" },
+
+               res_t_cb{ remove_user_wrap<ud_add_user_fail, add_user_fail::remove_user_1>( (TestUser::user_1), test_reply_callback_default, ud),
+                               SUBSESSION_ERROR_NONE, "Check if removing user 1 returns no error",
+                       std::get<add_user_fail::remove_user_1>(ud.t),
+                               SUBSESSION_ERROR_NONE, "Check if emoving user 1 returns no error in callback" },
        };
 
        loop_run_for_test(callback_pending_ud<ud_add_user_fail>,(gpointer*)&ud, ud.loop);
 
-       summarize_results<add_user_fail::action_items>(results);
+       summarize_results_cb<add_user_fail::action_items>(results);
 }
 
 using ud_remove_user_fail = struct ud_ctrl_t<tud_, tud_, tud_, tud_, tud_, tud_> ;
@@ -75,29 +85,41 @@ TEST(subsession_add_remove_test, FailAtRemoveUser)  {
 
        std::apply([](auto &... args){( (init_user_s<tud_ &, subsession_5003>(args) ), ...); },  ud.t );
 
-       std::array<res_t, remove_user_fail::action_items> results {
-
-               res_t{ remove_user_wrap<ud_remove_user_fail, remove_user_fail::remove_user_0>( (TestUser::user_0), test_reply_callback_default, ud),
-                       SUBSESSION_ERROR_INVALID_PARAMETER, "Check if removing user 0 returns error" },
-
-               res_t{ remove_user_wrap<ud_remove_user_fail, remove_user_fail::remove_user_1>( (TestUser::user_1), test_reply_callback_default, ud),
-                       SUBSESSION_ERROR_NOT_AVAILABLE, "Check if removing non existing user 1 returns error" },
-
-               res_t{ remove_user_wrap<ud_remove_user_fail, remove_user_fail::remove_user_minus_1>( -(TestUser::user_1), test_reply_callback_default, ud),
-                       SUBSESSION_ERROR_INVALID_PARAMETER, "Check if removing non existing user 1 returns error" },
-
-               res_t{ add_user_wrap<ud_remove_user_fail, remove_user_fail::add_user_1>( TestUser::user_1, test_reply_callback_default, ud),
-                       SUBSESSION_ERROR_NONE, "Check if adding non existing user 1 returns no error" },
-
-               res_t{ remove_user_wrap<ud_remove_user_fail, remove_user_fail::remove_user_1_existing>( TestUser::user_1, test_reply_callback_default, ud),
-                       SUBSESSION_ERROR_NONE, "Check if removing  1 returns no error" },
-
-               res_t{ remove_user_wrap<ud_remove_user_fail, remove_user_fail::remove_user_1_again>( TestUser::user_1, test_reply_callback_default, ud),
-                       SUBSESSION_ERROR_NOT_AVAILABLE, "Check if removing  1 again returns error" },
+       std::array<res_t_cb, remove_user_fail::action_items> results {
+
+               res_t_cb{ remove_user_wrap<ud_remove_user_fail, remove_user_fail::remove_user_0>( (TestUser::user_0), test_reply_callback_default, ud),
+                               SUBSESSION_ERROR_INVALID_PARAMETER, "Check if removing user 0 returns error",
+                       std::get<remove_user_fail::remove_user_0>(ud.t),
+                               SUBSESSION_ERROR_INVALID_PARAMETER, "Check if emoving user 0 returns  error in callback" },
+
+               res_t_cb{ remove_user_wrap<ud_remove_user_fail, remove_user_fail::remove_user_1>( (TestUser::user_1), test_reply_callback_default, ud),
+                               SUBSESSION_ERROR_NONE, "Check if removing non existing user 1 returns no error",
+                       std::get<remove_user_fail::remove_user_1>(ud.t),
+                               SUBSESSION_ERROR_NOT_AVAILABLE, "Check if removing non existing user 1 returns error in callback"},
+
+               res_t_cb{ remove_user_wrap<ud_remove_user_fail, remove_user_fail::remove_user_minus_1>( -(TestUser::user_1), test_reply_callback_default, ud),
+                               SUBSESSION_ERROR_INVALID_PARAMETER, "Check if removing non existing user -1 returns error",
+                       std::get<remove_user_fail::remove_user_minus_1>(ud.t),
+                               SUBSESSION_ERROR_INVALID_PARAMETER, "Check if removing non existing user -1 returns error in callback"},
+
+               res_t_cb{ add_user_wrap<ud_remove_user_fail, remove_user_fail::add_user_1>( TestUser::user_1, test_reply_callback_default, ud),
+                               SUBSESSION_ERROR_NONE, "Check if adding non existing user 1 returns no error",
+                       std::get<remove_user_fail::add_user_1>(ud.t),
+                               SUBSESSION_ERROR_NONE, "Check if adding non existing user 1 returns no error in callback"},
+
+               res_t_cb{ remove_user_wrap<ud_remove_user_fail, remove_user_fail::remove_user_1_existing>( TestUser::user_1, test_reply_callback_default, ud),
+                               SUBSESSION_ERROR_NONE, "Check if removing user 1 returns no error" ,
+                       std::get<remove_user_fail::remove_user_1_existing>(ud.t),
+                               SUBSESSION_ERROR_NONE, "Check if removing user 1 returns no error in callback"},
+
+               res_t_cb{ remove_user_wrap<ud_remove_user_fail, remove_user_fail::remove_user_1_again>( TestUser::user_1, test_reply_callback_default, ud),
+                               SUBSESSION_ERROR_NONE, "Check if removing  1 again returns no error",
+                       std::get<remove_user_fail::remove_user_1_again>(ud.t),
+                               SUBSESSION_ERROR_NOT_AVAILABLE, "Check if removing user 1 returns error in callback"},
        };
 
        loop_run_for_test(callback_pending_ud<ud_remove_user_fail>,(gpointer*)&ud, ud.loop);
 
-       summarize_results<remove_user_fail::action_items>(results);
+       summarize_results_cb<remove_user_fail::action_items>(results);
 
 }
index 1244f01..7f72483 100644 (file)
@@ -31,39 +31,59 @@ TEST(subsession_switch_user_test, FailAtSwitchUser) {
        };
        std::apply([](auto &... args){( (init_user_s<tud_ &, subsession_5001>(args) ), ...); },  ud.t );
 
-       std::array<res_t, switch_user_fail::action_items> results {
-               res_t{ switch_user_wrap<ud_switch_user_fail, switch_user_fail::switch_user_0>(TestUser::user_0, test_reply_callback_default, ud),
-                               SUBSESSION_ERROR_NONE, "Check if switching to user 0 returns no error" },
-
-               res_t{ switch_user_wrap<ud_switch_user_fail, switch_user_fail::switch_non_existing_user_1>(TestUser::user_1, test_reply_callback_default, ud),
-                               SUBSESSION_ERROR_NOT_AVAILABLE, "Check if switching non_existing user 1 returns error" },
-
-               res_t{ switch_user_wrap<ud_switch_user_fail, switch_user_fail::switch_user_minus_1>( -(TestUser::user_1), test_reply_callback_default, ud),
-                               SUBSESSION_ERROR_INVALID_PARAMETER, "Check if switching to user -1 returns error" },
-
-               res_t{ add_user_wrap<ud_switch_user_fail, switch_user_fail::add_user_1>( TestUser::user_1, test_reply_callback_default, ud),
-                               SUBSESSION_ERROR_NONE, "Check if adding user 1 returns no error" },
-
-               res_t{ add_user_wrap<ud_switch_user_fail, switch_user_fail::add_user_2>( TestUser::user_2, test_reply_callback_default, ud),
-                               SUBSESSION_ERROR_NONE, "Check if adding user 2 returns no  error" },
-
-               res_t{ switch_user_wrap<ud_switch_user_fail, switch_user_fail::switch_to_user_2>( TestUser::user_2, test_reply_callback_default, ud),
-                               SUBSESSION_ERROR_NONE, "Check if switching to user 2 returns no error" },
-
-               res_t{ remove_user_wrap<ud_switch_user_fail, switch_user_fail::remove_switched_user_2>( TestUser::user_2, test_reply_callback_default, ud),
-                               SUBSESSION_ERROR_RESOURCE_BUSY, "Check if removing user 2 returns error" },
-
-               res_t{ switch_user_wrap<ud_switch_user_fail, switch_user_fail::switch_to_user_0_again>( TestUser::user_0, test_reply_callback_default, ud),
-                               SUBSESSION_ERROR_NONE, "Check if switching to user 0 returns no error" },
-
-               res_t{ remove_user_wrap<ud_switch_user_fail, switch_user_fail::remove_user_1>( TestUser::user_1, test_reply_callback_default, ud),
-                               SUBSESSION_ERROR_NONE, "Check if removing user 1 returns no  error" },
-
-               res_t{ remove_user_wrap<ud_switch_user_fail, switch_user_fail::remove_user_2>( TestUser::user_2, test_reply_callback_default, ud),
-                               SUBSESSION_ERROR_NONE, "Check if removing user 2 returns no  error" },
+       std::array<res_t_cb, switch_user_fail::action_items> results {
+               res_t_cb{ switch_user_wrap<ud_switch_user_fail, switch_user_fail::switch_user_0>(TestUser::user_0, test_reply_callback_default, ud),
+                               SUBSESSION_ERROR_NONE, "Check if switching to user 0 returns no error" ,
+                       std::get<switch_user_fail::switch_user_0>(ud.t),
+                               SUBSESSION_ERROR_NONE, "Check if switching to user 0 returns no error in callback"},
+
+               res_t_cb{ switch_user_wrap<ud_switch_user_fail, switch_user_fail::switch_non_existing_user_1>(TestUser::user_1, test_reply_callback_default, ud),
+                               SUBSESSION_ERROR_NONE, "Check if switching non existing user 1 returns no error",
+                       std::get<switch_user_fail::switch_non_existing_user_1>(ud.t),
+                               SUBSESSION_ERROR_NOT_AVAILABLE, "Check if switching non existing user 1 returns error in callback"},
+
+               res_t_cb{ switch_user_wrap<ud_switch_user_fail, switch_user_fail::switch_user_minus_1>( -(TestUser::user_1), test_reply_callback_default, ud),
+                               SUBSESSION_ERROR_INVALID_PARAMETER, "Check if switching to user -1 returns error",
+                       std::get<switch_user_fail::switch_user_minus_1>(ud.t),
+                               SUBSESSION_ERROR_INVALID_PARAMETER, "Check if switching user -1 returns error in callback"},
+
+               res_t_cb{ add_user_wrap<ud_switch_user_fail, switch_user_fail::add_user_1>( TestUser::user_1, test_reply_callback_default, ud),
+                               SUBSESSION_ERROR_NONE, "Check if adding user 1 returns no error",
+                       std::get<switch_user_fail::add_user_1>(ud.t),
+                               SUBSESSION_ERROR_NONE, "Check if adding user 1 returns no error in callback"},
+
+               res_t_cb{ add_user_wrap<ud_switch_user_fail, switch_user_fail::add_user_2>( TestUser::user_2, test_reply_callback_default, ud),
+                               SUBSESSION_ERROR_NONE, "Check if adding user 2 returns no  error" ,
+                       std::get<switch_user_fail::add_user_2>(ud.t),
+                               SUBSESSION_ERROR_NONE, "Check if adding user 2 returns no error in callback"},
+
+               res_t_cb{ switch_user_wrap<ud_switch_user_fail, switch_user_fail::switch_to_user_2>( TestUser::user_2, test_reply_callback_default, ud),
+                               SUBSESSION_ERROR_NONE, "Check if switching to user 2 returns no error" ,
+                       std::get<switch_user_fail::switch_to_user_2>(ud.t),
+                               SUBSESSION_ERROR_NONE, "Check if switching to user 2 returns no error in callback"},
+
+               res_t_cb{ remove_user_wrap<ud_switch_user_fail, switch_user_fail::remove_switched_user_2>( TestUser::user_2, test_reply_callback_default, ud),
+                               SUBSESSION_ERROR_NONE, "Check if removing user 2 returns no error",
+                       std::get<switch_user_fail::remove_switched_user_2>(ud.t),
+                               SUBSESSION_ERROR_RESOURCE_BUSY, "Check if removing user 2 returns error in callback"},
+
+               res_t_cb{ switch_user_wrap<ud_switch_user_fail, switch_user_fail::switch_to_user_0_again>( TestUser::user_0, test_reply_callback_default, ud),
+                               SUBSESSION_ERROR_NONE, "Check if switching to user 0 returns no error",
+                       std::get<switch_user_fail::switch_to_user_0_again>(ud.t),
+                               SUBSESSION_ERROR_NONE, "Check if switching to user 0 returns no error in callback"},
+
+               res_t_cb{ remove_user_wrap<ud_switch_user_fail, switch_user_fail::remove_user_1>( TestUser::user_1, test_reply_callback_default, ud),
+                               SUBSESSION_ERROR_NONE, "Check if removing user 1 returns no  error" ,
+                       std::get<switch_user_fail::remove_user_1>(ud.t),
+                               SUBSESSION_ERROR_NONE, "Check if removing user 1 returns no  error in callback"},
+
+               res_t_cb{ remove_user_wrap<ud_switch_user_fail, switch_user_fail::remove_user_2>( TestUser::user_2, test_reply_callback_default, ud),
+                               SUBSESSION_ERROR_NONE, "Check if removing user 2 returns no  error",
+                       std::get<switch_user_fail::remove_user_2>(ud.t),
+                               SUBSESSION_ERROR_NONE, "Check if removing user 2 returns no  error in callback"},
        };
 
        loop_run_for_test(callback_pending_ud<ud_switch_user_fail>,(gpointer*)&ud, ud.loop);
 
-       summarize_results<switch_user_fail::action_items>(results);
+       summarize_results_cb<switch_user_fail::action_items>(results);
 }
index ea0fb3d..e901741 100644 (file)
@@ -19,6 +19,9 @@ struct TestUser {
 const int got = 0;
 const int expected = 1;
 const int desc = 2;
+const int cb_got = 3;
+const int cb_expected = 4;
+const int cb_desc = 5;
 
 template<typename... Args>
 struct ud_ctrl_t{
@@ -105,7 +108,7 @@ template<typename T = test_user_data_cb_t& , typename S>
 void init_user_s(test_user_data_cb_t& arg) {
        arg.session_uid = S::subsession_uid();
        arg.user_id = -1;
-       arg.callback_result = -1;
+       arg.callback_result =  TIZEN_ERROR_INVALID_PARAMETER;
        arg.event = SUBSESSION_EVENT_ALL;
        arg.prev_user_id = -1;
        arg.switch_id = -1;
@@ -327,6 +330,8 @@ void loop_run_for_test(GSourceFunc f, gpointer data, GMainLoop *loop) {
 
 using res_t = std::tuple<int, int, std::string>;
 
+using res_t_cb = std::tuple<int, int, std::string, test_user_data_cb_t&, int, std::string>;
+
 template<int N>
 void summarize_results(std::array<res_t, N> &results) {
        std::for_each(results.begin(), results.end(), [=](res_t &res) {
@@ -334,3 +339,13 @@ void summarize_results(std::array<res_t, N> &results) {
                EXPECT_EQ(std::get<expected>(res), std::get<got>(res));
        });
 }
+
+template<int N>
+void summarize_results_cb(std::array<res_t_cb, N> &results) {
+       std::for_each(results.begin(), results.end(), [=](res_t_cb &res) {
+               std::cout << head_ << std::get<desc>(res) << std::endl;
+               EXPECT_EQ(std::get<expected>(res), std::get<got>(res));
+               std::cout << head_ << std::get<cb_desc>(res) << std::endl;
+               EXPECT_EQ(std::get<cb_expected>(res), std::get<cb_got>(res).callback_result);
+       });
+}