From: Arkadiusz Nowak Date: Tue, 31 May 2022 09:17:23 +0000 (+0200) Subject: Event wait done API function X-Git-Tag: submit/tizen/20220603.143851^2~2 X-Git-Url: http://review.tizen.org/git/?a=commitdiff_plain;h=75fba88d97e65b3886ceb5db8f7265da10b99392;p=platform%2Fcore%2Fsystem%2Fsessiond.git Event wait done API function Function subsession_event_wait_done that replaces: subsession_add_user_wait_done subsession_remove_user_wait_done subsession_switch_wait_done Error tests for subsession_event_wait_done Appened permission denied error code to map_dbus_call_error_to_return_value Change-Id: I753b6ef5f3ee68f45ddacf58d58065855ae1825d --- diff --git a/libsessiond/include/sessiond.h b/libsessiond/include/sessiond.h index f74ddcb..ccc3846 100644 --- a/libsessiond/include/sessiond.h +++ b/libsessiond/include/sessiond.h @@ -79,17 +79,13 @@ int subsession_add_user(int session_uid, int user, subsession_reply_callback cb, int subsession_remove_user(int session_uid, int user, subsession_reply_callback cb, void *cb_data); int subsession_switch_user(int session_uid, int next_user, subsession_reply_callback cb, void *cb_data); -int subsession_add_user_wait_done(int session_uid, int user); -int subsession_remove_user_wait_done(int session_uid, int user); - -int subsession_switch_wait_done(int session_uid, uint64_t switch_id); - int subsession_get_user_list(int session_uid, int **user_list, int *user_count); int subsession_get_current_user(int session_uid, int *user); typedef int (*subsession_event_callback) (subsession_event_info info, void *cb_data); int subsession_register_event_callback(int session_uid, subsession_event_type_e event_bits, subsession_event_callback cb, void *cb_data); int subsession_unregister_event_callback(int session_uid, subsession_event_type_e event_bits); +int subsession_event_wait_done(int session_uid, subsession_event_type_e event, subsession_event_info info); #ifdef __cplusplus } diff --git a/libsessiond/src/lib.c b/libsessiond/src/lib.c index cc34aa2..e48dc0c 100644 --- a/libsessiond/src/lib.c +++ b/libsessiond/src/lib.c @@ -168,12 +168,18 @@ int map_dbus_call_error_to_return_value(const GError *error) { g_assert(error); - if (error->domain == G_DBUS_ERROR) - if (error->code == G_DBUS_ERROR_NAME_HAS_NO_OWNER || error->code == G_DBUS_ERROR_SERVICE_UNKNOWN) + if (error->domain == G_DBUS_ERROR) { + if (error->code == G_DBUS_ERROR_NAME_HAS_NO_OWNER || error->code == G_DBUS_ERROR_SERVICE_UNKNOWN) { return SUBSESSION_ERROR_NOT_SUPPORTED; + } + if (error->code == G_DBUS_ERROR_ACCESS_DENIED) { + return SUBSESSION_ERROR_PERMISSION_DENIED; + } + } - if (error->domain == G_IO_ERROR && error->code == G_IO_ERROR_DBUS_ERROR) + if (error->domain == G_IO_ERROR && error->code == G_IO_ERROR_DBUS_ERROR) { return get_dbus_error_mapping_to_subsession_error(error->message); + } return SUBSESSION_ERROR_IO_ERROR; } @@ -198,23 +204,27 @@ gint g_compare_user_params ( gconstpointer client_data, gconstpointer paramet signal_client_data_t *signal_client_data = (signal_client_data_t*)client_data; + maybe_not_comparable_if( + client_data_are_null(client_data) + ) + int client_session_uid = 0; int client_user = 0; maybe_g_variant_get_int_(signal_client_data->params, "(ii)", &client_session_uid, &client_user); - - maybe_not_compared_if( - not_valid(client_session_uid, - not_valid(client_user))) + maybe_not_comparable_if( + session_uid_is_not_valid(client_session_uid, + user_id_is_not_valid(client_user)) + ) GVariant *params = (GVariant *)parameters; int params_session_uid = 0; int params_user = 0; maybe_g_variant_get_int_(params, "(ii)", ¶ms_session_uid, ¶ms_user); - - maybe_not_compared_if( - not_valid(params_session_uid, - not_valid(params_user))) + maybe_not_comparable_if( + session_uid_is_not_valid(client_session_uid, + user_id_is_not_valid(client_user)) + ) if( client_session_uid == params_session_uid && client_user == params_user) { @@ -225,22 +235,32 @@ gint g_compare_user_params ( gconstpointer client_data, gconstpointer paramet gint g_compare_session_uid_params ( gconstpointer client_data, gconstpointer parameters) { + maybe_not_comparable_if( + client_data_are_null(client_data, + parameters_are_null(parameters)) + ) + signal_client_data_t *signal_client_data = (signal_client_data_t*)client_data; + maybe_not_comparable_if( + client_data_are_null(client_data, + parameters_are_null(parameters)) + ) + int client_session_uid = 0; maybe_g_variant_get_int_(signal_client_data->params, "(i)", &client_session_uid); - - maybe_not_compared_if( - not_valid(client_session_uid)) + maybe_not_comparable_if( + session_uid_is_not_valid(client_session_uid) + ) GVariant *params = (GVariant *)parameters; int params_session_uid = 0; maybe_g_variant_get_int_(params, "(i)", ¶ms_session_uid); - - maybe_not_compared_if( - not_valid(params_session_uid)) + maybe_not_comparable_if( + int_not_valid(params_session_uid) + ) if( client_session_uid == params_session_uid) { return COMPARATOR_RESULT_SAME_; @@ -250,13 +270,18 @@ gint g_compare_session_uid_params ( gconstpointer client_data, gconstpointer gint g_compare_session_uid_params_switch_wait ( gconstpointer client_data, gconstpointer parameters) { + maybe_not_comparable_if( + client_data_are_null(client_data, + parameters_are_null(parameters)) + ) + signal_client_data_t *signal_client_data = (signal_client_data_t*)client_data; int client_session_uid = 0; maybe_g_variant_get_int_(signal_client_data->params, "(i)", &client_session_uid); - - maybe_not_compared_if( - not_valid(client_session_uid)) + maybe_not_comparable_if( + user_id_is_not_valid(client_session_uid) + ) GVariant *params = (GVariant *)parameters; @@ -272,11 +297,12 @@ gint g_compare_session_uid_params_switch_wait ( gconstpointer client_data, gc ¶ms_next_user ); - maybe_not_compared_if( - not_valid(params_session_uid, - not_valid(params_switch_id, - not_valid(params_prev_user, - not_valid(params_next_user))))) + maybe_not_comparable_if( + session_uid_is_not_valid(params_session_uid, + switch_id_is_not_valid(params_switch_id, + switched_user_id_is_not_valid(params_prev_user, + switched_user_id_is_not_valid(params_next_user)))) + ) if( client_session_uid == params_session_uid) { return COMPARATOR_RESULT_SAME_; @@ -286,13 +312,18 @@ gint g_compare_session_uid_params_switch_wait ( gconstpointer client_data, gc gint g_compare_session_uid_params_wait (gconstpointer client_data, gconstpointer parameters) { + maybe_not_comparable_if( + client_data_are_null(client_data, + parameters_are_null(parameters)) + ) + signal_client_data_t *signal_client_data = (signal_client_data_t*)client_data; int client_session_uid = 0; maybe_g_variant_get_int_(signal_client_data->params, "(i)", &client_session_uid); - - maybe_not_compared_if( - not_valid(client_session_uid)) + maybe_not_comparable_if( + session_uid_is_not_valid(client_session_uid) + ) GVariant *params = (GVariant *)parameters; @@ -300,10 +331,10 @@ gint g_compare_session_uid_params_wait (gconstpointer client_data, gconstpointer int user_id = 0; maybe_g_variant_get_int_(params, "(ii)", ¶ms_session_uid, &user_id); - - maybe_not_compared_if( - not_valid(params_session_uid, - not_valid(user_id))) + maybe_not_comparable_if( + session_uid_is_not_valid(params_session_uid, + user_id_is_not_valid(user_id)) + ) if( client_session_uid == params_session_uid) { return COMPARATOR_RESULT_SAME_; @@ -388,16 +419,21 @@ static void signal_user_ops_complete_handler( gint g_compare_switch_user_params ( gconstpointer client_data, gconstpointer parameters) { + maybe_not_comparable_if( + client_data_are_null(client_data, + parameters_are_null(parameters)) + ) + signal_client_data_t *signal_client_data = (signal_client_data_t*)client_data; int client_session_uid = 0; int client_next_user = 0; maybe_g_variant_get_int_(signal_client_data->params, "(ii)", &client_session_uid, &client_next_user); - - maybe_not_compared_if( - not_valid(client_session_uid, - not_valid(client_next_user))) + maybe_not_comparable_if( + session_uid_is_not_valid(client_session_uid, + switched_user_id_is_not_valid(client_next_user)) + ) GVariant *params = (GVariant *)parameters; @@ -407,12 +443,12 @@ gint g_compare_switch_user_params ( gconstpointer client_data, gconstpointer int params_next_user = 0; maybe_g_variant_get_int_(params, "(ixii)", ¶ms_session_uid, ¶ms_switch_id, ¶ms_prev_user, ¶ms_next_user); - - maybe_not_compared_if( - not_valid(params_session_uid, - not_valid(params_switch_id, - not_valid(params_prev_user, - not_valid(params_next_user))))) + maybe_not_comparable_if( + session_uid_is_not_valid(params_session_uid, + switch_id_is_not_valid(params_switch_id, + switched_user_id_is_not_valid(params_prev_user, + switched_user_id_is_not_valid(params_next_user)))) + ) gboolean all_ok = (client_session_uid == params_session_uid) && (client_next_user == params_next_user); @@ -553,6 +589,7 @@ static void signal_switch_user_started_handler(GDBusConnection *connection, &event_info.switch_user.prev_user, &event_info.switch_user.next_user); + subsession_event_callback event_callback = signal_data->client_callback; event_callback(event_info, signal_data->client_callback_data); } @@ -741,18 +778,15 @@ void init_callbacks_list(client_callbacks_data_t *callbacks_data, GVariant *para #define callbacks_data_append_to_list(callback_data, data) \ callback_data.list = g_list_append(callback_data.list, data) -#define return_invalid_param_if(a) error_if(a, SUBSESSION_ERROR_INVALID_PARAMETER) - -#define return_invalid_if_input_params_are_wrong \ - return_invalid_param_if( \ - not_valid(session_uid, \ - not_valid(user, \ - not_valid(cb, \ - not_valid(cb_data))))) EXPORT_API int subsession_add_user(int session_uid, int user, subsession_reply_callback cb, void *cb_data) { - return_invalid_if_input_params_are_wrong + return_if( + session_uid_is_not_valid(session_uid, + user_id_is_not_valid(user, + callback_is_null(cb, + callbacks_data_are_null(cb_data)))) + ) g_mutex_lock (&add_user_callbacks_data_mt.mutex); @@ -781,7 +815,12 @@ EXPORT_API int subsession_add_user(int session_uid, int user, subsession_reply_c EXPORT_API int subsession_remove_user(int session_uid, int user, subsession_reply_callback cb, void *cb_data) { - return_invalid_if_input_params_are_wrong + return_if( + int_not_valid(session_uid, + int_not_valid(user, + callback_is_null(cb, + callbacks_data_are_null(cb_data)))) + ) g_mutex_lock (&remove_user_callbacks_data_mt.mutex); @@ -812,11 +851,12 @@ EXPORT_API int subsession_remove_user(int session_uid, int user, subsession_repl EXPORT_API int subsession_switch_user(int session_uid, int next_user, subsession_reply_callback cb, void *cb_data) { - return_invalid_param_if( - not_valid(session_uid, - not_valid(next_user, - not_valid(cb, - not_valid(cb_data))))) + return_if( + int_not_valid_on_switch(session_uid, + int_not_valid_on_switch(next_user, + callback_is_null(cb, + callbacks_data_are_null(cb_data)))) + ) g_mutex_lock (&switch_user_callbacks_data_mt.mutex); @@ -980,6 +1020,11 @@ EXPORT_API int subsession_register_event_callback(int session_uid, subsession_ev int unregister_event_callback(client_callbacks_data_t *callbacks_data, int session_uid) { + return_if( + callbacks_data_are_null(callbacks_data, + session_uid_is_not_valid(session_uid)) + ) + GVariant * gv_session_uid = g_variant_new("(i)", session_uid); signal_client_data_t *signal_data = take_from_callbacks_data_and_remove_from_list(callbacks_data, gv_session_uid, g_compare_session_uid_params); @@ -1015,24 +1060,57 @@ EXPORT_API int subsession_unregister_event_callback(int session_uid, subsession_ return SUBSESSION_ERROR_NONE; } -EXPORT_API int subsession_add_user_wait_done(int session_uid, int user) { +int subsession_add_user_wait_done(int session_uid, int user) { GVariant * params = g_variant_new("(ii)", session_uid, user); return method_call_no_signal(dbus_method_call.AddUserDone, params); } -EXPORT_API int subsession_remove_user_wait_done(int session_uid, int user) { +int subsession_remove_user_wait_done(int session_uid, int user) { GVariant * params = g_variant_new("(ii)", session_uid, user); return method_call_no_signal(dbus_method_call.RemoveUserDone, params); } -EXPORT_API int subsession_switch_wait_done(int session_uid, uint64_t switch_id) { +int subsession_switch_wait_done(int session_uid, uint64_t switch_id) { GVariant * params = g_variant_new("(ix)", session_uid, (gint64)switch_id); return method_call_no_signal(dbus_method_call.SwitchUserDone, params); } +EXPORT_API int subsession_event_wait_done(int session_uid, subsession_event_type_e event, subsession_event_info info) { + return_if( + session_uid_is_not_valid(session_uid) + ) + switch (event) { + case SUBSESSION_ADD_USER_WAIT: + return_if( + user_id_is_not_valid(info.add_user.user) + ) + return subsession_add_user_wait_done(session_uid, info.add_user.user); + break; + + case SUBSESSION_REMOVE_USER_WAIT: + return_if( + user_id_is_not_valid(info.remove_user.user) + ) + return subsession_remove_user_wait_done(session_uid, info.remove_user.user); + break; + + case SUBSESSION_SWITCH_USER_WAIT: + return_if( + switched_user_id_is_not_valid(info.switch_user.switch_id) + ) + return subsession_switch_wait_done(session_uid, info.switch_user.switch_id); + break; + + default: + return SUBSESSION_ERROR_INVALID_PARAMETER; + } + return SUBSESSION_ERROR_NOT_SUPPORTED; +} + + EXPORT_API int subsession_get_user_list(int session_uid, int **user_list, int *user_count) { g_autoptr(GVariant) out = NULL; diff --git a/libsessiond/src/lib.h b/libsessiond/src/lib.h index 98f740d..d269e79 100644 --- a/libsessiond/src/lib.h +++ b/libsessiond/src/lib.h @@ -50,39 +50,26 @@ typedef struct { if (!g_variant_is_of_type(var, G_VARIANT_TYPE(c_str_) )) { return; } \ g_variant_get(var, c_str_, args) -#define not_valid_g(X) _Generic((X), \ - int : not_valid_int, \ - uint64_t : not_valid_uint64_t, \ - subsession_reply_callback : not_valid_subsession_reply_callback, \ - void* : not_valid_void_ptr, \ - int* : not_valid_int_ptr \ - )(X) -#define not_valid(a, ...) || (not_valid_g(a)) __VA_ARGS__ +#define int_not_valid(a, ...) || (a <= 0) __VA_ARGS__ -#define error_if(a, error) if ( (0) a ) { return error; } +#define session_uid_is_not_valid(a, ...) || (a <= 0) __VA_ARGS__ +#define user_id_is_not_valid(a, ...) || (a <= 0) __VA_ARGS__ +#define switched_user_id_is_not_valid(a, ...) || (a < 0) __VA_ARGS__ +#define switch_id_is_not_valid(a, ...) || (a <= 0) __VA_ARGS__ -#define maybe_not_compared_if(a) error_if(a, COMPARATOR_RESULT_DIFFERENT_) -int not_valid_int_ptr(int *a) { - return a == NULL; -} - -int not_valid_uint64_t(uint64_t a) { - return a < 0; -} +#define int_not_valid_on_switch(a, ...) || (a < 0) __VA_ARGS__ -int not_valid_int(int a) { - return a < 0; -} +#define client_data_are_null(a, ...) || (a == NULL) __VA_ARGS__ +#define parameters_are_null(a, ...) || (a == NULL) __VA_ARGS__ +#define callback_is_null(a, ...) || (a == NULL) __VA_ARGS__ +#define callbacks_data_are_null(a, ...) || (a == NULL) __VA_ARGS__ -int not_valid_subsession_reply_callback (subsession_reply_callback cb) { - return cb == NULL; -} + #define error_if(a, error) if ( (0) a ) { return error; } -int not_valid_void_ptr(void *data) { - return data == NULL; -} +#define maybe_not_comparable_if(a) error_if(a, COMPARATOR_RESULT_DIFFERENT_) +#define return_if(a) error_if(a, SUBSESSION_ERROR_INVALID_PARAMETER) #ifdef __cplusplus } diff --git a/libsessiond/target_test/CMakeLists.txt b/libsessiond/target_test/CMakeLists.txt index 7c15b43..282df92 100644 --- a/libsessiond/target_test/CMakeLists.txt +++ b/libsessiond/target_test/CMakeLists.txt @@ -23,3 +23,4 @@ add_libsd_target_test(api_switch_user_wait "") add_libsd_target_test(api_reg_unreg_add_user_wait "") add_libsd_target_test(api_switch_user_completion "") add_libsd_target_test(api_get_user_list "") +add_libsd_target_test(api_event_wait_done_err "") diff --git a/libsessiond/target_test/test_api_adduserwait.cpp b/libsessiond/target_test/test_api_adduserwait.cpp index 8734757..babdbd4 100644 --- a/libsessiond/target_test/test_api_adduserwait.cpp +++ b/libsessiond/target_test/test_api_adduserwait.cpp @@ -78,7 +78,7 @@ int test_subsession_add_user_wait_callback(subsession_event_info info, void *cb_ user_data->user_id = info.add_user.user; user_data->session_uid = info.add_user.session_uid; - user_data->callback_result = subsession_add_user_wait_done(test_subsession_uid, 2); + user_data->callback_result = subsession_event_wait_done(test_subsession_uid, info.add_user.event, info); g_atomic_int_inc(&callback_adduserstarted_reference); return 0; diff --git a/libsessiond/target_test/test_api_event_wait_done_err.cpp b/libsessiond/target_test/test_api_event_wait_done_err.cpp new file mode 100644 index 0000000..c3b2903 --- /dev/null +++ b/libsessiond/target_test/test_api_event_wait_done_err.cpp @@ -0,0 +1,87 @@ +#include +#include +#include +#include +#include "sessiond.h" +#include "test_hlp.hpp" + +//subsession_event_wait_done(int session_uid, subsession_event_type_e event, subsession_event_info info); + /*SUBSESSION_ADD_USER_WAIT = 1 << 0, + SUBSESSION_REMOVE_USER_WAIT = 1 << 1, + SUBSESSION_SWITCH_USER_WAIT = 1 << 2, + SUBSESSION_SWITCH_USER_COMPLETION = 1 << 3, +*/ +const int test_actions = 9; + +TEST(subsession_event_wait_err_test, FailAtEventWaitBadMask) { + + subsession_event_info e_info = { .switch_user = {.event = SUBSESSION_EVENT_ALL, + .session_uid = subsession_5001::subsession_uid(), + .switch_id = 1, + .prev_user = TestUser::user_1, + .next_user = TestUser::user_2 }, + }; + + std::array results { + res_t { + subsession_event_wait_done( + subsession_5001::subsession_uid(), + subsession_event_type_e(SUBSESSION_EVENT_ALL), + e_info), + SUBSESSION_ERROR_INVALID_PARAMETER, + "Check if subsession_event_wait_done with SUBSESSION_EVENT_ALL returns error" }, + res_t { + subsession_event_wait_done( + subsession_5001::subsession_uid(), + subsession_event_type_e(SUBSESSION_ADD_USER_WAIT | SUBSESSION_REMOVE_USER_WAIT), + e_info), + SUBSESSION_ERROR_INVALID_PARAMETER, + "Check if subsession_event_wait_done with SUBSESSION_ADD_USER_WAIT | SUBSESSION_REMOVE_USER_WAIT returns error" }, + + res_t { subsession_event_wait_done( + subsession_5001::subsession_uid(), + subsession_event_type_e(SUBSESSION_ADD_USER_WAIT | SUBSESSION_SWITCH_USER_WAIT), + e_info), + SUBSESSION_ERROR_INVALID_PARAMETER, + "Check if subsession_event_wait_done with SUBSESSION_ADD_USER_WAIT | SUBSESSION_SWITCH_USER_WAIT returns error" }, + res_t { subsession_event_wait_done( + subsession_5001::subsession_uid(), + subsession_event_type_e(SUBSESSION_ADD_USER_WAIT | SUBSESSION_SWITCH_USER_COMPLETION), + e_info), + SUBSESSION_ERROR_INVALID_PARAMETER, + "Check if subsession_event_wait_done with SUBSESSION_ADD_USER_WAIT | SUBSESSION_SWITCH_USER_COMPLETION returns error" }, + res_t { subsession_event_wait_done( + subsession_5001::subsession_uid(), + subsession_event_type_e(SUBSESSION_ADD_USER_WAIT | SUBSESSION_REMOVE_USER_WAIT | SUBSESSION_SWITCH_USER_WAIT), + e_info), + SUBSESSION_ERROR_INVALID_PARAMETER, + "Check if subsession_event_wait_done with SUBSESSION_ADD_USER_WAIT | SUBSESSION_REMOVE_USER_WAIT | SUBSESSION_SWITCH_USER_WAIT returns error" }, + res_t { subsession_event_wait_done( + subsession_5001::subsession_uid(), + subsession_event_type_e(SUBSESSION_ADD_USER_WAIT | SUBSESSION_REMOVE_USER_WAIT | SUBSESSION_SWITCH_USER_COMPLETION), + e_info), + SUBSESSION_ERROR_INVALID_PARAMETER, + "Check if subsession_event_wait_done with SUBSESSION_ADD_USER_WAIT | SUBSESSION_REMOVE_USER_WAIT | SUBSESSION_SWITCH_USER_COMPLETION returns error" }, + res_t { subsession_event_wait_done( + subsession_5001::subsession_uid(), + subsession_event_type_e(SUBSESSION_ADD_USER_WAIT | SUBSESSION_SWITCH_USER_WAIT | SUBSESSION_SWITCH_USER_COMPLETION), + e_info), + SUBSESSION_ERROR_INVALID_PARAMETER, + "Check if subsession_event_wait_done with SUBSESSION_ADD_USER_WAIT | SUBSESSION_SWITCH_USER_WAIT | SUBSESSION_SWITCH_USER_COMPLETION returns error" }, + res_t { subsession_event_wait_done( + -(subsession_5001::subsession_uid()), + subsession_event_type_e(SUBSESSION_SWITCH_USER_WAIT), + e_info), + SUBSESSION_ERROR_INVALID_PARAMETER, + "Check if subsession_event_wait_done with bad session_uid < 0 value" }, + res_t { subsession_event_wait_done( + 0, + subsession_event_type_e(SUBSESSION_SWITCH_USER_WAIT), + e_info), + SUBSESSION_ERROR_INVALID_PARAMETER, + "Check if subsession_event_wait_done with bad session_uid = 0 value" }, + }; + + summarize_results(results); + EXPECT_EQ(0,0); +} diff --git a/libsessiond/target_test/test_api_reg_unreg_add_user_wait.cpp b/libsessiond/target_test/test_api_reg_unreg_add_user_wait.cpp index b115167..aaff2cd 100644 --- a/libsessiond/target_test/test_api_reg_unreg_add_user_wait.cpp +++ b/libsessiond/target_test/test_api_reg_unreg_add_user_wait.cpp @@ -71,7 +71,7 @@ int test_subsession_add_user_wait_callback(subsession_event_info info, void *cb_ user_data->user_id = info.add_user.user; user_data->session_uid = info.add_user.session_uid; - user_data->callback_result = subsession_add_user_wait_done(test_subsession_uid, 2); + user_data->callback_result = subsession_event_wait_done(test_subsession_uid, info.add_user.event, info); g_atomic_int_inc(&callback_adduserstarted_reference); return 0; diff --git a/libsessiond/target_test/test_api_removeuserwait.cpp b/libsessiond/target_test/test_api_removeuserwait.cpp index c61d94e..fa4edfd 100644 --- a/libsessiond/target_test/test_api_removeuserwait.cpp +++ b/libsessiond/target_test/test_api_removeuserwait.cpp @@ -73,9 +73,9 @@ int test_subsession_remove_user_wait_callback(subsession_event_info info, void * user_data->callback_result = 0; - user_data->callback_result = subsession_remove_user_wait_done(user_data->session_uid, user_data->user_id); - g_atomic_int_inc(&callback_remove_user_started_reference); + user_data->callback_result = subsession_event_wait_done(test_subsession_uid, info.remove_user.event, info); + g_atomic_int_inc(&callback_remove_user_started_reference); return 0; } diff --git a/libsessiond/target_test/test_api_switch_user_wait.cpp b/libsessiond/target_test/test_api_switch_user_wait.cpp index d1793f2..bc2680f 100644 --- a/libsessiond/target_test/test_api_switch_user_wait.cpp +++ b/libsessiond/target_test/test_api_switch_user_wait.cpp @@ -21,7 +21,7 @@ int test_subsession_switch_user_wait_callback(subsession_event_info info, void * user_data->switch_id = info.switch_user.switch_id; 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( info.switch_user.session_uid, info.switch_user.switch_id); + user_data->callback_result = subsession_event_wait_done(test_subsession_uid, info.switch_user.event, info); if (user_data->user_id == TestUser::user_0 || user_data->user_id == TestUser::user_2) { g_atomic_int_inc(&user_data->callback_reference);