diff --git a/tester/presence_server_tester.c b/tester/presence_server_tester.c index 6bd524836834af72b73b3052b972c804d36c6367..dcb1cb4cf1a02fa01e2f2cf5b5d914a29564f0e0 100644 --- a/tester/presence_server_tester.c +++ b/tester/presence_server_tester.c @@ -140,7 +140,7 @@ static void subscriber_no_longer_reachable(void){ lcs = bctbx_list_append(lcs, marie->lc); lcs = bctbx_list_append(lcs, pauline1->lc); - lp_config_set_int(marie->lc->config, "sip", "subscribe_expires", 60); + lp_config_set_int(marie->lc->config, "sip", "subscribe_expires", 80); linphone_core_set_user_agent(marie->lc, "full-presence-support", NULL); linphone_core_set_user_agent(pauline1->lc, "full-presence-support", NULL); @@ -152,7 +152,7 @@ static void subscriber_no_longer_reachable(void){ linphone_core_add_friend(marie->lc, lf); linphone_friend_unref(lf); - BC_ASSERT_TRUE(wait_for_list(lcs,&marie->stat.number_of_LinphonePresenceBasicStatusOpen,1, 2000)); + BC_ASSERT_TRUE(wait_for_list(lcs,&marie->stat.number_of_LinphonePresenceBasicStatusOpen,1, 5000)); /*make sure marie subscribe is not reset by accident because of code below located in linphone_core_iterate @@ -173,16 +173,22 @@ static void subscriber_no_longer_reachable(void){ //sal_set_send_error(marie->lc->sal,0); - /*because of notify timeout detected by server, so subscription is reset*/ + /* + * Because of notify timeout detected by server, subscription is reset. + * The server then sends a NOTIFY with subscription-state terminated, which translated in Offline status to be notified. + */ previous_number_of_LinphonePresenceActivityOffline = marie->stat.number_of_LinphonePresenceBasicStatusClosed; BC_ASSERT_TRUE(wait_for_list(lcs,&marie->stat.number_of_LinphonePresenceActivityOffline,previous_number_of_LinphonePresenceActivityOffline+1, 4000)); - // now subscription is supposed to be dead because notify was not answered in time. + /* + * The client handles this subscription terminated event. + * It will not resubmit a new SUBSCRIBE until expiration of the current one. + */ presence =linphone_presence_model_new_with_activity(LinphonePresenceActivityOnline,NULL); linphone_core_set_presence_model(pauline1->lc,presence); - /*because subscription not is automatically restarted*/ - BC_ASSERT_FALSE(wait_for_list(lcs,&marie->stat.number_of_LinphonePresenceActivityOnline,previous_number_of_LinphonePresenceActivityOnline+1, 4000)); + /*because subscription is not restarted, the online status shall not be notified again.*/ + BC_ASSERT_FALSE(wait_for_list(lcs,&marie->stat.number_of_LinphonePresenceActivityOnline,previous_number_of_LinphonePresenceActivityOnline+1, 8000)); linphone_core_manager_destroy(marie); linphone_core_manager_destroy(pauline1); diff --git a/tester/tester.c b/tester/tester.c index fdfea8af9c5a988caea181891f582fdbdc25541a..2c719bbbda189f165ed43dce0037f374ca77ce9a 100644 --- a/tester/tester.c +++ b/tester/tester.c @@ -438,7 +438,7 @@ void linphone_core_manager_stop(LinphoneCoreManager *mgr){ } } linphone_core_destroy(mgr->lc); - if (chatdb) { + if (chatdb && ortp_file_exist(chatdb)==0) { if (unlink(chatdb) != 0){ ms_error("Could not delete %s: %s", chatdb, strerror(errno)); }