core: add helper for parsing and validating the ICCID

This commit is contained in:
Dan Williams
2013-09-10 09:42:36 +02:00
committed by Aleksander Morgado
parent ac343d390b
commit 11a7e3dfdf
5 changed files with 178 additions and 93 deletions
+84
View File
@@ -1522,6 +1522,83 @@ test_cind_response_moto_v3m (void *f, gpointer d)
test_cind_results ("Motorola V3m", reply, &expected[0], G_N_ELEMENTS (expected));
}
/*****************************************************************************/
/* Test ICCID parsing */
static void
test_iccid_parse_quoted_swap_19_digit (void *f, gpointer d)
{
const char *raw_iccid = "\"984402003576012594F9\"";
const char *expected = "8944200053671052499";
char *parsed;
GError *error = NULL;
parsed = mm_3gpp_parse_iccid (raw_iccid, TRUE, &error);
g_assert_no_error (error);
g_assert_cmpstr (parsed, ==, expected);
}
static void
test_iccid_parse_unquoted_swap_20_digit (void *f, gpointer d)
{
const char *raw_iccid = "98231420326409614067";
const char *expected = "89324102234690160476";
char *parsed;
GError *error = NULL;
parsed = mm_3gpp_parse_iccid (raw_iccid, TRUE, &error);
g_assert_no_error (error);
g_assert_cmpstr (parsed, ==, expected);
}
static void
test_iccid_parse_unquoted_unswapped_19_digit (void *f, gpointer d)
{
const char *raw_iccid = "8944200053671052499F";
const char *expected = "8944200053671052499";
char *parsed;
GError *error = NULL;
parsed = mm_3gpp_parse_iccid (raw_iccid, FALSE, &error);
g_assert_no_error (error);
g_assert_cmpstr (parsed, ==, expected);
}
static void
test_iccid_parse_quoted_unswapped_20_digit (void *f, gpointer d)
{
const char *raw_iccid = "\"89324102234690160476\"";
const char *expected = "89324102234690160476";
char *parsed;
GError *error = NULL;
parsed = mm_3gpp_parse_iccid (raw_iccid, FALSE, &error);
g_assert_no_error (error);
g_assert_cmpstr (parsed, ==, expected);
}
static void
test_iccid_parse_short (void *f, gpointer d)
{
const char *raw_iccid = "982314203264096";
char *parsed;
GError *error = NULL;
parsed = mm_3gpp_parse_iccid (raw_iccid, TRUE, &error);
g_assert_error (error, MM_CORE_ERROR, MM_CORE_ERROR_FAILED);
}
static void
test_iccid_parse_invalid_chars (void *f, gpointer d)
{
const char *raw_iccid = "98231420326ab9614067";
char *parsed;
GError *error = NULL;
parsed = mm_3gpp_parse_iccid (raw_iccid, TRUE, &error);
g_assert_error (error, MM_CORE_ERROR, MM_CORE_ERROR_FAILED);
}
/*****************************************************************************/
/* Test CGDCONT test responses */
@@ -2315,6 +2392,13 @@ int main (int argc, char **argv)
g_test_suite_add (suite, TESTCASE (test_cind_response_linktop_lw273, NULL));
g_test_suite_add (suite, TESTCASE (test_cind_response_moto_v3m, NULL));
g_test_suite_add (suite, TESTCASE (test_iccid_parse_quoted_swap_19_digit, NULL));
g_test_suite_add (suite, TESTCASE (test_iccid_parse_unquoted_swap_20_digit, NULL));
g_test_suite_add (suite, TESTCASE (test_iccid_parse_unquoted_unswapped_19_digit, NULL));
g_test_suite_add (suite, TESTCASE (test_iccid_parse_quoted_unswapped_20_digit, NULL));
g_test_suite_add (suite, TESTCASE (test_iccid_parse_short, NULL));
g_test_suite_add (suite, TESTCASE (test_iccid_parse_invalid_chars, NULL));
while (item->devid) {
g_test_suite_add (suite, TESTCASE (test_devid_item, (gconstpointer) item));
item++;