broadband-modem: implement +CCWA URC handling
This commit is contained in:
@@ -3969,6 +3969,55 @@ test_clip_indication (void)
|
||||
g_regex_unref (r);
|
||||
}
|
||||
|
||||
/*****************************************************************************/
|
||||
/* +CCWA URC */
|
||||
|
||||
typedef struct {
|
||||
const gchar *str;
|
||||
const gchar *number;
|
||||
guint type;
|
||||
guint class;
|
||||
} CcwaUrcTest;
|
||||
|
||||
static const CcwaUrcTest ccwa_urc_tests[] = {
|
||||
{ "\r\n+CCWA: \"123456789\",129,1\r\n", "123456789", 129, 1 },
|
||||
{ "\r\n+CCWA: \"123456789\",129,1,,0\r\n", "123456789", 129, 1 },
|
||||
{ "\r\n+CCWA: \"123456789\",129,1,,0,,,\r\n", "123456789", 129, 1 },
|
||||
};
|
||||
|
||||
static void
|
||||
test_ccwa_indication (void)
|
||||
{
|
||||
GRegex *r;
|
||||
guint i;
|
||||
|
||||
r = mm_voice_ccwa_regex_get ();
|
||||
|
||||
for (i = 0; i < G_N_ELEMENTS (ccwa_urc_tests); i++) {
|
||||
GMatchInfo *match_info = NULL;
|
||||
gchar *number;
|
||||
guint type;
|
||||
guint class;
|
||||
|
||||
g_assert (g_regex_match (r, ccwa_urc_tests[i].str, 0, &match_info));
|
||||
g_assert (g_match_info_matches (match_info));
|
||||
|
||||
number = mm_get_string_unquoted_from_match_info (match_info, 1);
|
||||
g_assert_cmpstr (number, ==, ccwa_urc_tests[i].number);
|
||||
|
||||
g_assert (mm_get_uint_from_match_info (match_info, 2, &type));
|
||||
g_assert_cmpuint (type, ==, ccwa_urc_tests[i].type);
|
||||
|
||||
g_assert (mm_get_uint_from_match_info (match_info, 3, &class));
|
||||
g_assert_cmpuint (class, ==, ccwa_urc_tests[i].class);
|
||||
|
||||
g_free (number);
|
||||
g_match_info_free (match_info);
|
||||
}
|
||||
|
||||
g_regex_unref (r);
|
||||
}
|
||||
|
||||
/*****************************************************************************/
|
||||
|
||||
typedef struct {
|
||||
@@ -4281,6 +4330,7 @@ int main (int argc, char **argv)
|
||||
g_test_suite_add (suite, TESTCASE (test_cesq_response_to_signal, NULL));
|
||||
|
||||
g_test_suite_add (suite, TESTCASE (test_clip_indication, NULL));
|
||||
g_test_suite_add (suite, TESTCASE (test_ccwa_indication, NULL));
|
||||
|
||||
g_test_suite_add (suite, TESTCASE (test_parse_uint_list, NULL));
|
||||
|
||||
|
||||
Reference in New Issue
Block a user