GArray * mm_huawei_parse_syscfgex_test (const gchar *response, GError **error) { gchar **split; GError *inner_error = NULL; GArray *out; if (!response || !g_str_has_prefix (response, "^SYSCFGEX:")) { g_set_error (error, MM_CORE_ERROR, MM_CORE_ERROR_FAILED, "Missing ^SYSCFGEX prefix"); return NULL; } /* Examples: * * ^SYSCFGEX: ("00","03","02","01","99"), * ((2000004e80380,"GSM850/GSM900/GSM1800/GSM1900/WCDMA850/WCDMA900/WCDMA1900/WCDMA2100"), * (3fffffff,"All Bands")), * (0-3), * (0-4), * ((800c5,"LTE2100/LTE1800/LTE2600/LTE900/LTE800"), * (7fffffffffffffff,"All bands")) */ split = split_groups (mm_strip_tag (response, "^SYSCFGEX:"), error); if (!split) return NULL; /* We expect 5 string chunks */ if (g_strv_length (split) < 5) { g_set_error (error, MM_CORE_ERROR, MM_CORE_ERROR_FAILED, "Unexpected ^SYSCFGEX format"); g_strfreev (split); return NULL; } out = parse_mode_combination_string_list (split[0], &inner_error); g_strfreev (split); if (inner_error) { g_propagate_error (error, inner_error); return NULL; } return out; }
GArray * mm_huawei_parse_syscfg_test (const gchar *response, GError **error) { gchar **split; GError *inner_error = NULL; GArray *out; if (!response || !g_str_has_prefix (response, "^SYSCFG:")) { g_set_error (error, MM_CORE_ERROR, MM_CORE_ERROR_FAILED, "Missing ^SYSCFG prefix"); return NULL; } /* Examples: * * ^SYSCFG:(2,13,14,16), * (0-3), * ((400000,"WCDMA2100")), * (0-2), * (0-4) */ split = split_groups (mm_strip_tag (response, "^SYSCFG:"), error); if (!split) return NULL; /* We expect 5 string chunks */ if (g_strv_length (split) < 5) { g_set_error (error, MM_CORE_ERROR, MM_CORE_ERROR_FAILED, "Unexpected ^SYSCFG format"); g_strfreev (split); return FALSE; } /* Parse supported mode combinations */ out = parse_syscfg_modes (split[0], split[1], &inner_error); g_strfreev (split); if (inner_error) { g_propagate_error (error, inner_error); return NULL; } return out; }
TestRegister::TestRegister(const char *fixture_name, const char *groups, new_fixture_func n, delete_fixture_func d) : _new_func(n), _delete_func(d), _fixture_name(fixture_name) { assert(NULL != fixture_name); assert(NULL != groups); assert(NULL != n); assert(NULL != d); // 分离出组别 split_groups(groups, &_groups); // 将实例添加到链表中 _pnext = *get_link_header(); *get_link_header() = this; }