/* *INDENT-OFF* */ START_PARAMETRIZED_TEST (test_serialize, test_serialize_ds) /* *INDENT-ON* */ { /* given */ char *actual_result; /* when */ actual_result = mc_serialize_str (data->input_char_prefix, data->input_string, &error); /* then */ mctest_assert_str_eq (actual_result, data->expected_result); g_free (actual_result); }
char * mc_serialize_config (const mc_config_t * data, GError ** error) { gchar **groups, **group_iterator; size_t group_count; GString *buffer; buffer = g_string_new (""); group_iterator = groups = mc_config_get_groups (data, &group_count); while (group_count-- != 0) { char *serialized_str; gchar **params, **param_iterator; size_t param_count; serialized_str = mc_serialize_str ('g', *group_iterator, error); if (serialized_str == NULL) { g_string_free (buffer, TRUE); g_strfreev (groups); return NULL; } g_string_append (buffer, serialized_str); g_free (serialized_str); param_iterator = params = mc_config_get_keys (data, *group_iterator, ¶m_count); while (param_count-- != 0) { char *value; serialized_str = mc_serialize_str ('p', *param_iterator, error); if (serialized_str == NULL) { g_string_free (buffer, TRUE); g_strfreev (params); g_strfreev (groups); return NULL; } g_string_append (buffer, serialized_str); g_free (serialized_str); value = mc_config_get_string_raw (data, *group_iterator, *param_iterator, ""); serialized_str = mc_serialize_str ('v', value, error); g_free (value); if (serialized_str == NULL) { g_string_free (buffer, TRUE); g_strfreev (params); g_strfreev (groups); return NULL; } g_string_append (buffer, serialized_str); g_free (serialized_str); param_iterator++; } g_strfreev (params); group_iterator++; } return g_string_free (buffer, FALSE); }