diff --git a/tester/accountmanager.c b/tester/accountmanager.c index 58e98a3cf..385717ed2 100644 --- a/tester/accountmanager.c +++ b/tester/accountmanager.c @@ -27,6 +27,7 @@ struct _Account{ int done; int created; char *phone_alias; + char *uuid; }; typedef struct _Account Account; @@ -49,6 +50,7 @@ static Account *account_new(LinphoneAddress *identity, const char *unique_id){ }; void account_destroy(Account *obj){ + if (obj->uuid) bctbx_free(obj->uuid); linphone_address_unref(obj->identity); linphone_address_unref(obj->modified_identity); ms_free(obj->password); @@ -198,7 +200,7 @@ void account_create_on_server(Account *account, const LinphoneProxyConfig *refcf ms_free(chatdb); } -static LinphoneAddress *account_manager_check_account(AccountManager *m, LinphoneProxyConfig *cfg,const char* phone_alias){ +static LinphoneAddress *account_manager_check_account(AccountManager *m, LinphoneProxyConfig *cfg, LinphoneCoreManager *cm){ LinphoneCore *lc=linphone_proxy_config_get_core(cfg); const char *identity=linphone_proxy_config_get_identity(cfg); LinphoneAddress *id_addr=linphone_address_new(identity); @@ -209,6 +211,7 @@ static LinphoneAddress *account_manager_check_account(AccountManager *m, Linphon ,NULL , linphone_address_get_username(id_addr) , linphone_address_get_domain(id_addr)); + const char *phone_alias = cm->phone_alias; if (!account||(phone_alias&&(!account->phone_alias||strcmp(phone_alias,account->phone_alias)!=0))){ if (account) { @@ -229,6 +232,16 @@ static LinphoneAddress *account_manager_check_account(AccountManager *m, Linphon account_create_on_server(account,cfg,phone_alias); } + if (liblinphone_tester_keep_uuid) { + /* create and/or set uuid */ + if (account->uuid == NULL) { + char tmp[64]; + sal_create_uuid(cm->lc->sal, tmp, sizeof(tmp)); + account->uuid = bctbx_strdup(tmp); + } + sal_set_uuid(cm->lc->sal, account->uuid); + } + /*remove previous auth info to avoid mismatching*/ if (original_ai) linphone_core_remove_auth_info(lc,original_ai); @@ -251,7 +264,7 @@ void linphone_core_manager_check_accounts(LinphoneCoreManager *m){ if (!liblinphonetester_show_account_manager_logs) linphone_core_set_log_level_mask(ORTP_ERROR|ORTP_FATAL); for(it=linphone_core_get_proxy_config_list(m->lc);it!=NULL;it=it->next){ LinphoneProxyConfig *cfg=(LinphoneProxyConfig *)it->data; - account_manager_check_account(am,cfg,m->phone_alias); + account_manager_check_account(am,cfg,m); } if (!liblinphonetester_show_account_manager_logs) linphone_core_set_log_level_mask(logmask); } diff --git a/tester/liblinphone_tester.h b/tester/liblinphone_tester.h index dc5f07f9c..3e77b518d 100644 --- a/tester/liblinphone_tester.h +++ b/tester/liblinphone_tester.h @@ -115,6 +115,7 @@ extern const char* test_username; extern const char* test_password; extern const char* test_route; extern const char* userhostsfile; +extern bool_t liblinphone_tester_keep_uuid; extern bool_t liblinphone_tester_tls_support_disabled; extern const MSAudioDiffParams audio_cmp_params; extern const char *liblinphone_tester_mire_id; diff --git a/tester/message_tester.c b/tester/message_tester.c index d3293b1c7..3f4616c38 100644 --- a/tester/message_tester.c +++ b/tester/message_tester.c @@ -2428,7 +2428,7 @@ test_t message_tests[] = { TEST_NO_TAG("Transfer message with download io error", transfer_message_with_download_io_error), TEST_NO_TAG("Transfer message upload cancelled", transfer_message_upload_cancelled), TEST_NO_TAG("Transfer message download cancelled", transfer_message_download_cancelled), - TEST_ONE_TAG("Transfer message using external body url", file_transfer_using_external_body_url, "LeaksMemory"), + TEST_NO_TAG("Transfer message using external body url", file_transfer_using_external_body_url), TEST_NO_TAG("Transfer 2 messages simultaneously", file_transfer_2_messages_simultaneously), TEST_NO_TAG("Text message denied", text_message_denied), TEST_NO_TAG("Info message", info_message), @@ -2488,10 +2488,20 @@ test_t message_tests[] = { TEST_NO_TAG("IM Encryption Engine b64", im_encryption_engine_b64) }; +static int message_tester_before_suite(void) { + liblinphone_tester_keep_uuid = TRUE; + return 0; +} + +static int message_tester_after_suite(void) { + liblinphone_tester_keep_uuid = FALSE; + return 0; +} + test_suite_t message_test_suite = { "Message", - NULL, - NULL, + message_tester_before_suite, + message_tester_after_suite, liblinphone_tester_before_each, liblinphone_tester_after_each, sizeof(message_tests) / sizeof(message_tests[0]), message_tests diff --git a/tester/tester.c b/tester/tester.c index 51062890f..9e4f2c10e 100644 --- a/tester/tester.c +++ b/tester/tester.c @@ -44,8 +44,9 @@ static int liblinphone_tester_keep_accounts_flag = 0; -static int liblinphone_tester_keep_record_files = FALSE; -static int liblinphone_tester_leak_detector_disabled = FALSE; +static bool_t liblinphone_tester_keep_record_files = FALSE; +static bool_t liblinphone_tester_leak_detector_disabled = FALSE; +bool_t liblinphone_tester_keep_uuid = FALSE; bool_t liblinphone_tester_tls_support_disabled = FALSE; int manager_count = 0; int leaked_objects_count = 0;