diff options
author | Thomas Sailer <t.sailer@alumni.ethz.ch> | 2016-02-13 14:19:13 +0100 |
---|---|---|
committer | Aleksander Morgado <aleksander@aleksander.es> | 2016-02-13 14:27:51 +0100 |
commit | 95876c6f576875503f20f7e3ad27440bffd9067c (patch) | |
tree | 8f1b0b454d8c93aa063dddbc634048d38ecc1b9e /src/tests/test-modem-helpers.c | |
parent | a33615d6cb087c646de3b1899fbed0f7284f9340 (diff) |
helpers: move +CRSM parsing to mm_3gpp_parse_crsm_response
Also added test cases.
Signed-off-by: Thomas Sailer <t.sailer@alumni.ethz.ch>
Diffstat (limited to 'src/tests/test-modem-helpers.c')
-rw-r--r-- | src/tests/test-modem-helpers.c | 54 |
1 files changed, 54 insertions, 0 deletions
diff --git a/src/tests/test-modem-helpers.c b/src/tests/test-modem-helpers.c index d1833e5a..db84f016 100644 --- a/src/tests/test-modem-helpers.c +++ b/src/tests/test-modem-helpers.c @@ -2631,6 +2631,58 @@ test_cclk_response (void) } } + +/*****************************************************************************/ +/* Test +CRSM responses */ + +typedef struct { + const gchar *str; + gboolean ret; + guint sw1; + guint sw2; + gchar *hex; +} CrsmTest; + +static const CrsmTest crsm_tests[] = { + { "+CRSM: 144, 0, 0054485552415941FFFFFFFFFFFFFFFFFF", TRUE, 144, 0, "0054485552415941FFFFFFFFFFFFFFFFFF" }, + { "+CRSM: 144, 0,0054485552415941FFFFFFFFFFFFFFFFFF", TRUE, 144, 0, "0054485552415941FFFFFFFFFFFFFFFFFF" }, + { "+CRSM: 144, 0, \"0054485552415941FFFFFFFFFFFFFFFFFF\"", TRUE, 144, 0, "0054485552415941FFFFFFFFFFFFFFFFFF" }, + { "+CRSM: 144, 0,\"0054485552415941FFFFFFFFFFFFFFFFFF\"", TRUE, 144, 0, "0054485552415941FFFFFFFFFFFFFFFFFF" }, + { NULL, FALSE, 0, 0, NULL } +}; + +static void +test_crsm_response (void) +{ + guint i; + + for (i = 0; crsm_tests[i].str; i++) { + GError *error = NULL; + guint sw1 = 0; + guint sw2 = 0; + gchar *hex = 0; + gboolean ret; + + ret = mm_3gpp_parse_crsm_response (crsm_tests[i].str, + &sw1, + &sw2, + &hex, + &error); + + g_assert (ret == crsm_tests[i].ret); + g_assert (ret == (error ? FALSE : TRUE)); + + g_clear_error (&error); + + g_assert (sw1 == crsm_tests[i].sw1); + g_assert (sw2 == crsm_tests[i].sw2); + + g_assert_cmpstr (crsm_tests[i].hex, ==, hex); + + g_free(hex); + } +} + /*****************************************************************************/ void @@ -2805,6 +2857,8 @@ int main (int argc, char **argv) g_test_suite_add (suite, TESTCASE (test_cclk_response, NULL)); + g_test_suite_add (suite, TESTCASE (test_crsm_response, NULL)); + result = g_test_run (); reg_test_data_free (reg_data); |