Update test for SUBSESSION_SWITCH_USER_WAIT 78/275278/5
authorArkadiusz Nowak <a.nowak3@samsung.com>
Thu, 19 May 2022 10:05:20 +0000 (12:05 +0200)
committerArkadiusz Nowak <a.nowak3@samsung.com>
Fri, 27 May 2022 12:58:13 +0000 (14:58 +0200)
Additional call of API subsession_switch_user
that set user to "1" before change it to "2"

Change-Id: I9e0a6637ec7e1a4fb4208a34630788afc0f5dbef

libsessiond/target_test/test_api_switch_user_wait.cpp

index daef54b..518b991 100644 (file)
@@ -52,6 +52,9 @@ gboolean callback_pending_ud (gpointer data) {
        return TRUE;
 }
 
+const int user_1 = 1;
+const int user_2 = 2;
+
 int test_subsession_switch_user_wait_callback(subsession_event_info info, void *cb_data) {
 
        test_user_data_cb_t *user_data = (test_user_data_cb_t *)cb_data;
@@ -61,25 +64,24 @@ int test_subsession_switch_user_wait_callback(subsession_event_info info, void *
        user_data->user_id = info.switch_user.next_user;
        user_data->prev_user_id = info.switch_user.prev_user;
        user_data->callback_result = subsession_switch_wait_done(user_data->session_uid, user_data->switch_id);
-       g_atomic_int_inc(&user_data->callback_reference);
-
+       if (user_data->user_id == user_2) {
+               g_atomic_int_inc(&user_data->callback_reference);
+       }
        return 0;
 }
 
-const int user_1 = 1;
-const int user_2 = 2;
-
 enum {
        add_user_1 = 0,
        add_user_2,
        remove_user_1,
        remove_user_2,
-       switch_user,
+       switch_user_to_1,
+       switch_user_to_2,
        switch_wait,
 };
 
 using tud_ = test_user_data_cb_t;
-using ud_ = struct ud_ctrl_t<tud_, tud_, tud_, tud_, tud_, tud_>;
+using ud_ = struct ud_ctrl_t<tud_, tud_, tud_, tud_, tud_, tud_, tud_>;
 
 template<int N>
 int add_user_wrap(int user_id, subsession_reply_callback cb, ud_ &ud) {
@@ -100,7 +102,7 @@ int remove_user_wrap(int user_id, subsession_reply_callback cb, ud_ &ud) {
 TEST(subsession_switch_user_wait, APISwitchUserStarted) {
 
        ud_ ud = { .loop =  g_main_loop_new (NULL, FALSE),
-               .t = std::tuple<tud_, tud_, tud_, tud_, tud_, tud_>(),
+               .t = std::tuple<tud_, tud_, tud_, tud_, tud_, tud_, tud_>(),
        };
 
        std::apply([](auto &... args){( (init_user<tud_ &>(args) ), ...); },  ud.t );
@@ -110,16 +112,20 @@ TEST(subsession_switch_user_wait, APISwitchUserStarted) {
        test_subsession_switch_user_wait_callback, (void *)&std::get<switch_wait>(ud.t) );
 
        int add_user_res_1 = add_user_wrap<add_user_1>(user_1, test_reply_callback, ud);
-
        int add_user_res_2 = add_user_wrap<add_user_2>(user_2, test_reply_callback, ud);
 
-       std::get<switch_user>(ud.t).prev_user_id = user_1;
-       std::get<switch_user>(ud.t).user_id = user_2;
+       std::get<switch_user_to_1>(ud.t).prev_user_id = user_1;
+       std::get<switch_user_to_1>(ud.t).user_id = user_1;
 
-       int switch_user_res = subsession_switch_user(test_subsession_uid, std::get<switch_user>(ud.t).user_id, test_reply_callback, (void *)&std::get<switch_user>(ud.t));
+       int switch_user_res_to_1 = subsession_switch_user(test_subsession_uid, std::get<switch_user_to_1>(ud.t).user_id, test_reply_callback, (void *)&std::get<switch_user_to_1>(ud.t));
 
-       int remove_user_res_1 = remove_user_wrap<remove_user_1>(user_1, test_reply_callback, ud);
 
+       std::get<switch_user_to_2>(ud.t).prev_user_id = user_1;
+       std::get<switch_user_to_2>(ud.t).user_id = user_2;
+
+       int switch_user_res_to_2 = subsession_switch_user(test_subsession_uid, std::get<switch_user_to_2>(ud.t).user_id, test_reply_callback, (void *)&std::get<switch_user_to_2>(ud.t));
+
+       int remove_user_res_1 = remove_user_wrap<remove_user_1>(user_1, test_reply_callback, ud);
        int remove_user_res_2 = remove_user_wrap<remove_user_2>(user_2, test_reply_callback, ud);
 
 
@@ -129,13 +135,15 @@ TEST(subsession_switch_user_wait, APISwitchUserStarted) {
        EXPECT_EQ(switch_user_wait_res, 0);
        EXPECT_EQ(add_user_res_1, 0);
        EXPECT_EQ(remove_user_res_1, 0);
-       EXPECT_EQ(switch_user_res, 0);
+       EXPECT_EQ(switch_user_res_to_1, 0);
+       EXPECT_EQ(switch_user_res_to_2, 0);
        EXPECT_EQ(add_user_res_2, 0);
        EXPECT_EQ(remove_user_res_2, 0);
 
        EXPECT_EQ(0, std::get<add_user_1>(ud.t).callback_result);
        EXPECT_EQ(0, std::get<add_user_2>(ud.t).callback_result);
-       EXPECT_EQ(0, std::get<switch_user>(ud.t).callback_result);
+       EXPECT_EQ(0, std::get<switch_user_to_1>(ud.t).callback_result);
+       EXPECT_EQ(0, std::get<switch_user_to_2>(ud.t).callback_result);
        EXPECT_EQ(0, std::get<remove_user_1>(ud.t).callback_result);
        EXPECT_EQ(0, std::get<remove_user_2>(ud.t).callback_result);