[UTC][accounts-svc][Non-ACR][Fix memory leak issue]
authorJooseok Song <seogii.song@samsung.com>
Tue, 7 Feb 2017 04:01:14 +0000 (13:01 +0900)
committerJooseok Song <seogii.song@samsung.com>
Tue, 7 Feb 2017 04:30:16 +0000 (13:30 +0900)
Change-Id: Ic0b8c4ae97e56f73765270534119f1da236ba51f

src/utc/accounts-svc/utc-accounts-svc.c

index 8ca4ac56d3d3b0ace0a3d1bd69f1586a5590bbe8..ac699b72a96740cf17b1aa4ce4560e84e31c1e68 100644 (file)
        if (_is_fail == true) \
                return 1;
 
+#define assert_eq_free(var, ref, var1) \
+    do { \
+        if (var != ref) { \
+            fprintf(stderr, \
+                "\\n[TCT][%s][Line : %d] Assert fail; Values (%s == 0x%x) and (%s == 0x%x) are not equal\\n", \
+                __FILE__, __LINE__, #var, (int)var, #ref, (int)ref); \
+            account_destroy(var1); \
+            return 1; \
+        } \
+    } while (0)
+
+
+#define assert_eq_free_text(var, ref, var1, var2) \
+    do { \
+        if (var != ref) { \
+            fprintf(stderr, \
+                "\\n[TCT][%s][Line : %d] Assert fail; Values (%s == 0x%x) and (%s == 0x%x) are not equal\\n", \
+                __FILE__, __LINE__, #var, (int)var, #ref, (int)ref); \
+            _account_free_text(var1); \
+            account_destroy(var2); \
+            return 1; \
+        } \
+    } while (0)
+
+
 enum ICON_PATH_TYPE {
        ICON,
        SMALL_ICON
@@ -440,83 +465,102 @@ int utc_account_insert_to_db_p(void)
        assert_eq(ret, ACCOUNT_ERROR_NONE);
 
        ret = account_query_account_by_account_id(account_id, &ret_account);
+       if(ret != ACCOUNT_ERROR_NONE) {
+               account_destroy(ret_account);
+       }
        assert_eq(ret, ACCOUNT_ERROR_NONE);
 
+       // User Name
        ret = account_get_user_name(ret_account, &ret_user_name);
-       assert_eq(ret, ACCOUNT_ERROR_NONE);
-       assert_eq(strcmp(ret_user_name, user_name), 0);
+       assert_eq_free_text(ret, ACCOUNT_ERROR_NONE, ret_user_name, ret_account);
+       assert_eq_free_text(strcmp(ret_user_name, user_name), 0, ret_user_name, ret_account);
        _account_free_text(ret_user_name);
 
+       // Package Name
        ret = account_get_package_name(ret_account, &ret_package_name);
-       assert_eq(ret, ACCOUNT_ERROR_NONE);
-       assert_eq(strcmp(ret_package_name, package_name), 0);
+       assert_eq_free_text(ret, ACCOUNT_ERROR_NONE, ret_package_name, ret_account);
+       assert_eq_free_text(strcmp(ret_package_name, package_name), 0, ret_package_name, ret_account);
        _account_free_text(ret_package_name);
 
+       // Display Name
        ret = account_get_display_name(ret_account, &ret_display_name);
-       assert_eq(ret, ACCOUNT_ERROR_NONE);
-       assert_eq(strcmp(ret_display_name, display_name), 0);
+       assert_eq_free_text(ret, ACCOUNT_ERROR_NONE, ret_display_name, ret_account);
+       assert_eq_free_text(strcmp(ret_display_name, display_name), 0, ret_display_name, ret_account);
        _account_free_text(ret_display_name);
 
+       // Icon Path
        ret = account_get_icon_path(ret_account, &ret_icon_path);
-       assert_eq(ret, ACCOUNT_ERROR_NONE);
-       assert_eq(strcmp(ret_icon_path, icon_path), 0);
+       assert_eq_free_text(ret, ACCOUNT_ERROR_NONE, ret_icon_path, ret_account);
+       assert_eq_free_text(strcmp(ret_icon_path, icon_path), 0, ret_icon_path, ret_account);
        _account_free_text(ret_icon_path);
 
+       // Domain Name
        ret = account_get_domain_name(ret_account, &ret_domain_name);
-       assert_eq(ret, ACCOUNT_ERROR_NONE);
-       assert_eq(strcmp(ret_domain_name, domain_name), 0);
+       assert_eq_free_text(ret, ACCOUNT_ERROR_NONE, ret_domain_name, ret_account);
+       assert_eq_free_text(strcmp(ret_domain_name, domain_name), 0, ret_domain_name, ret_account);
        _account_free_text(ret_domain_name);
 
+       // Email Address
        ret = account_get_email_address(ret_account, &ret_email_address);
-       assert_eq(ret, ACCOUNT_ERROR_NONE);
-       assert_eq(strcmp(ret_email_address, email_address), 0);
+       assert_eq_free_text(ret, ACCOUNT_ERROR_NONE, ret_email_address, ret_account);
+       assert_eq_free_text(strcmp(ret_email_address, email_address), 0, ret_email_address, ret_account);
        _account_free_text(ret_email_address);
 
+       // Source
        ret = account_get_source(ret_account, &ret_source);
-       assert_eq(ret, ACCOUNT_ERROR_NONE);
-       assert_eq(strcmp(ret_source, source), 0);
+       assert_eq_free_text(ret, ACCOUNT_ERROR_NONE, ret_source, ret_account);
+       assert_eq_free_text(strcmp(ret_source, source), 0, ret_source, ret_account);
        _account_free_text(ret_source);
 
+       // Custom
        ret = account_get_custom(ret_account, key, &ret_value);
-       assert_eq(ret, ACCOUNT_ERROR_NONE);
-       assert_eq(strcmp(ret_value, value), 0);
+       assert_eq_free_text(ret, ACCOUNT_ERROR_NONE, ret_value, ret_account);
+       assert_eq_free_text(strcmp(ret_value, value), 0, ret_value, ret_account);
        _account_free_text(ret_value);
 
+       // Capability
        ret = account_get_capability(ret_account, contact_capability, &ret_capability_state);
-       assert_eq(ret, ACCOUNT_ERROR_NONE);
-       assert_eq(ret_capability_state, capability_state);
+       assert_eq_free(ret, ACCOUNT_ERROR_NONE, ret_account);
+       assert_eq_free(ret_capability_state, capability_state, ret_account);
 
+       // Access Token
        ret = account_get_access_token(ret_account, &ret_access_token);
-       assert_eq(ret, ACCOUNT_ERROR_NONE);
-       if (ret_access_token != NULL && access_token != NULL)
-               assert_eq(strcmp(ret_access_token, access_token), 0);
+       assert_eq_free_text(ret, ACCOUNT_ERROR_NONE, ret_access_token, ret_account);
+       if (ret_access_token != NULL && access_token != NULL) {
+               assert_eq_free_text(strcmp(ret_access_token, access_token), 0, ret_access_token, ret_account);
+       }
        _account_free_text(ret_access_token);
 
+       // User Text
        for (i = 0; i < 5; i++){
                ret = account_get_user_text(ret_account, i, &ret_user_text);
-               assert_eq(ret, ACCOUNT_ERROR_NONE);
-               assert_eq(strcmp(ret_user_text, user_text), 0);
+               assert_eq_free_text(ret, ACCOUNT_ERROR_NONE, ret_user_text, ret_account);
+               assert_eq_free_text(strcmp(ret_user_text, user_text), 0, ret_user_text, ret_account);
                _account_free_text(ret_user_text);
        }
 
+       // User Int
        for (i = 0; i < 5; i++){
                int ret_user_int = -1;
                ret = account_get_user_int(ret_account, i, &ret_user_int);
-               assert_eq(ret, ACCOUNT_ERROR_NONE);
-               assert_eq(ret_user_int, i*10);
+               assert_eq_free(ret, ACCOUNT_ERROR_NONE, ret_account);
+               assert_eq_free(ret_user_int, i*10, ret_account);
        }
 
+       // Auth Type
        ret = account_get_auth_type(ret_account, &ret_auth_type);
-       assert_eq(ret, ACCOUNT_ERROR_NONE);
-       assert_eq(ret_auth_type, auth_type);
+       assert_eq_free(ret, ACCOUNT_ERROR_NONE, ret_account);
+       assert_eq_free(ret_auth_type, auth_type, ret_account);
 
+       // Secret
        ret = account_get_secret(ret_account, &ret_secrecy_state);
-       assert_eq(ret, ACCOUNT_ERROR_NONE);
-       assert_eq(ret_secrecy_state, secrecy_state);
+       assert_eq_free(ret, ACCOUNT_ERROR_NONE, ret_account);
+       assert_eq_free(ret_secrecy_state, secrecy_state, ret_account);
 
+       // Sync Support
        ret = account_get_sync_support(ret_account, &ret_sync_state);
-       assert_eq(ret, ACCOUNT_ERROR_NONE);
-       assert_eq(ret_sync_state, sync_state);
+       assert_eq_free(ret, ACCOUNT_ERROR_NONE, ret_account);
+       assert_eq_free(ret_sync_state, sync_state, ret_account);
 
        ret = account_destroy(ret_account);
        assert_eq(ret, ACCOUNT_ERROR_NONE);
@@ -1928,24 +1972,46 @@ static bool capability_call_back(const char* capability_type, account_capability
        const char* capability = contact_capability;
 
        ret = account_get_package_name(account_data, &str);
-       check_fail(ret == ACCOUNT_ERROR_NONE);
-       check_fail(strcmp(str, package_name)==0);
+       if(ret != ACCOUNT_ERROR_NONE) {
+               _account_free_text(str);
+               _is_fail = true;
+               return true;
+       }
+       if(strcmp(str, package_name) !=0) {
+               _account_free_text(str);
+               _is_fail = true;
+               return true;
+       }
 
        ret = account_get_user_name(account_data, &str);
-       check_fail(ret == ACCOUNT_ERROR_NONE);
-       check_fail(strcmp(str, user_name)==0);
+       if(ret != ACCOUNT_ERROR_NONE) {
+               _account_free_text(str);
+               _is_fail = true;
+               return true;
+       }
+       if(strcmp(str, user_name) !=0) {
+               _account_free_text(str);
+               _is_fail = true;
+               return true;
+       }
 
        if( strcmp(capability_type, capability)==0 ) {
                ret = account_get_capability(account_data, capability, &_capability_state);
-               check_fail(ret == ACCOUNT_ERROR_NONE);
-               check_fail(_capability_state == capability_state);
+               if(ret != ACCOUNT_ERROR_NONE) {
+                       _account_free_text(str);
+                       _is_fail = true;
+                       return true;
+               }
+               if(_capability_state != capability_state) {
+                       _account_free_text(str);
+                       _is_fail = true;
+                       return true;
+               }
        }
 
+       _account_free_text(str);
        _is_fail = false;
 
-//     g_main_loop_quit(mainloop);
-//     mainloop = NULL;
-
        return 0;
 }
 
@@ -4434,8 +4500,11 @@ static bool account_type_cb_func(account_type_h account_type, void *user_data) {
        dlog_print(DLOG_ERROR, "ACCOUNT_TC", "test_small_icon_path %s", test_small_icon_path);
 
        ret = account_type_get_app_id(account_type, &app_id);
-       check_fail(ret == ACCOUNT_ERROR_NONE);
-       check_fail(strcmp(package_name, app_id)==0);
+       if(ret != ACCOUNT_ERROR_NONE) {
+               _is_fail=true;
+               _account_free_text(app_id);
+               return true;
+       }
        if( strcmp(app_id, package_name) != 0 )
        {
                _is_fail=true;