diff --git a/coreapi/bellesip_sal/sal_op_call_transfer.c b/coreapi/bellesip_sal/sal_op_call_transfer.c index d42c49a28..177a23602 100644 --- a/coreapi/bellesip_sal/sal_op_call_transfer.c +++ b/coreapi/bellesip_sal/sal_op_call_transfer.c @@ -90,11 +90,11 @@ int sal_call_refer_with_replaces(SalOp *op, SalOp *other_call_op){ belle_sip_parameters_clean(BELLE_SIP_PARAMETERS(refer_to)); if (belle_sip_dialog_is_server(other_call_op->dialog)) { to_tag=belle_sip_dialog_get_local_tag(other_call_op->dialog); - from_tag=belle_sip_dialog_get_remote_tag(other_call_op->dialog);; + from_tag=belle_sip_dialog_get_remote_tag(other_call_op->dialog); } else { from_tag=belle_sip_dialog_get_local_tag(other_call_op->dialog); - to_tag=belle_sip_dialog_get_remote_tag(other_call_op->dialog);; + to_tag=belle_sip_dialog_get_remote_tag(other_call_op->dialog); } replaces=belle_sip_header_replaces_create(belle_sip_header_call_id_get_call_id(belle_sip_dialog_get_call_id(other_call_op->dialog)) ,from_tag,to_tag); diff --git a/coreapi/nat_policy.c b/coreapi/nat_policy.c index 424f08fa4..c80a1dd4f 100644 --- a/coreapi/nat_policy.c +++ b/coreapi/nat_policy.c @@ -23,7 +23,6 @@ Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. static LinphoneNatPolicy * _linphone_nat_policy_new_with_ref(LinphoneCore *lc, const char *ref) { LinphoneNatPolicy *policy = belle_sip_object_new(LinphoneNatPolicy); - belle_sip_object_ref(policy); policy->lc = lc; policy->ref = belle_sip_strdup(ref); return policy; @@ -57,7 +56,7 @@ BELLE_SIP_INSTANCIATE_VPTR(LinphoneNatPolicy, belle_sip_object_t, (belle_sip_object_destroy_t)linphone_nat_policy_destroy, NULL, // clone NULL, // marshal - TRUE + FALSE ); diff --git a/coreapi/proxy.c b/coreapi/proxy.c index da8af2206..b15c57453 100644 --- a/coreapi/proxy.c +++ b/coreapi/proxy.c @@ -1421,5 +1421,5 @@ LinphoneNatPolicy * linphone_proxy_config_get_nat_policy(const LinphoneProxyConf void linphone_proxy_config_set_nat_policy(LinphoneProxyConfig *cfg, LinphoneNatPolicy *policy) { if (policy != NULL) policy = linphone_nat_policy_ref(policy); /* Prevent object destruction if the same policy is used */ if (cfg->nat_policy != NULL) linphone_nat_policy_unref(cfg->nat_policy); - if (policy != NULL) cfg->nat_policy = policy; + cfg->nat_policy = policy; } diff --git a/tester/liblinphone_tester.h b/tester/liblinphone_tester.h index ca26e2359..b65543e38 100644 --- a/tester/liblinphone_tester.h +++ b/tester/liblinphone_tester.h @@ -382,7 +382,7 @@ int linphone_core_manager_get_mean_audio_up_bw(const LinphoneCoreManager *mgr); void video_call_base_2(LinphoneCoreManager* pauline,LinphoneCoreManager* marie, bool_t using_policy,LinphoneMediaEncryption mode, bool_t callee_video_enabled, bool_t caller_video_enabled); void liblinphone_tester_before_each(void); -int liblinphone_tester_after_each(void); +void liblinphone_tester_after_each(void); void liblinphone_tester_init(void(*ftester_printf)(int level, const char *fmt, va_list args)); void liblinphone_tester_uninit(void); int liblinphone_tester_set_log_file(const char *filename); diff --git a/tester/setup_tester.c b/tester/setup_tester.c index cd1e9d142..a9225ae52 100644 --- a/tester/setup_tester.c +++ b/tester/setup_tester.c @@ -25,6 +25,7 @@ static void linphone_version_test(void){ const char *version=linphone_core_get_version(); /*make sure the git version is always included in the version number*/ + BC_ASSERT_PTR_NOT_NULL(version); BC_ASSERT_PTR_NULL(strstr(version,"unknown")); } @@ -186,6 +187,12 @@ static void linphone_lpconfig_from_xml_zerolen_value(void){ LinphoneCoreManager* mgr = linphone_core_manager_new2("empty_rc",FALSE); + /* BUG + * This test makes a provisionning by xml outside of the Configuring state of the LinphoneCore. + * It is leaking memory because the config is litterally erased and rewritten by the invocation + * of the private function linphone_remote_provisioning_load_file . + */ + BC_ASSERT_EQUAL(linphone_remote_provisioning_load_file(mgr->lc, xml_path), 0, int, "%d"); conf = mgr->lc->config; @@ -387,7 +394,7 @@ test_t setup_tests[] = { TEST_NO_TAG("LPConfig from buffer", linphone_lpconfig_from_buffer), TEST_NO_TAG("LPConfig zero_len value from buffer", linphone_lpconfig_from_buffer_zerolen_value), TEST_NO_TAG("LPConfig zero_len value from file", linphone_lpconfig_from_file_zerolen_value), - TEST_NO_TAG("LPConfig zero_len value from XML", linphone_lpconfig_from_xml_zerolen_value), + TEST_ONE_TAG("LPConfig zero_len value from XML", linphone_lpconfig_from_xml_zerolen_value, "LeaksMemory"), TEST_NO_TAG("Chat room", chat_room_test), TEST_NO_TAG("Devices reload", devices_reload_test), TEST_NO_TAG("Codec usability", codec_usability_test), diff --git a/tester/tester.c b/tester/tester.c index e284e42eb..8e9af1629 100644 --- a/tester/tester.c +++ b/tester/tester.c @@ -609,8 +609,8 @@ void liblinphone_tester_before_each(void) { static char* all_leaks_buffer = NULL; -int liblinphone_tester_after_each(void) { - int err = 0; +void liblinphone_tester_after_each(void) { + if (!liblinphone_tester_leak_detector_disabled){ int leaked_objects = belle_sip_object_get_object_count() - leaked_objects_count; if (leaked_objects > 0) { @@ -634,11 +634,9 @@ int liblinphone_tester_after_each(void) { // if the test is NOT marked as leaking memory and it actually is, we should make it fail if (!leaks_expected && leaked_objects > 0) { BC_FAIL("This test is leaking memory!"); - err = 1; // and reciprocally } else if (leaks_expected && leaked_objects == 0) { BC_FAIL("This test is not leaking anymore, please remove LeaksMemory tag!"); - // err = 1; // do not force fail actually, because it can be some false positive warning } } } @@ -646,7 +644,6 @@ int liblinphone_tester_after_each(void) { if (manager_count != 0) { ms_fatal("%d Linphone core managers are still alive!", manager_count); } - return err; } void liblinphone_tester_uninit(void) {