diff options
Diffstat (limited to 'plugins/telit/tests/test-mm-modem-helpers-telit.c')
-rw-r--r-- | plugins/telit/tests/test-mm-modem-helpers-telit.c | 93 |
1 files changed, 66 insertions, 27 deletions
diff --git a/plugins/telit/tests/test-mm-modem-helpers-telit.c b/plugins/telit/tests/test-mm-modem-helpers-telit.c index 251abd1e..16cd776e 100644 --- a/plugins/telit/tests/test-mm-modem-helpers-telit.c +++ b/plugins/telit/tests/test-mm-modem-helpers-telit.c @@ -39,20 +39,21 @@ typedef struct { gboolean modem_is_3g; gboolean modem_is_4g; gboolean modem_alternate_3g_bands; + gboolean modem_ext_4g_bands; guint mm_bands_len; MMModemBand mm_bands [MAX_BANDS_LIST_LEN]; } BndResponseTest; static BndResponseTest supported_band_mapping_tests [] = { { - "#BND: (0-3)", TRUE, FALSE, FALSE, FALSE, 4, + "#BND: (0-3)", TRUE, FALSE, FALSE, FALSE, FALSE, 4, { MM_MODEM_BAND_EGSM, MM_MODEM_BAND_DCS, MM_MODEM_BAND_PCS, MM_MODEM_BAND_G850 } }, { - "#BND: (0-3),(0,2,5,6)", TRUE, TRUE, FALSE, FALSE, 7, + "#BND: (0-3),(0,2,5,6)", TRUE, TRUE, FALSE, FALSE, FALSE, 7, { MM_MODEM_BAND_EGSM, MM_MODEM_BAND_DCS, MM_MODEM_BAND_PCS, @@ -62,7 +63,7 @@ static BndResponseTest supported_band_mapping_tests [] = { MM_MODEM_BAND_UTRAN_8 } }, { - "#BND: (0,3),(0,2,5,6)", TRUE, TRUE, FALSE, FALSE, 7, + "#BND: (0,3),(0,2,5,6)", TRUE, TRUE, FALSE, FALSE, FALSE, 7, { MM_MODEM_BAND_EGSM, MM_MODEM_BAND_DCS, MM_MODEM_BAND_PCS, @@ -72,7 +73,7 @@ static BndResponseTest supported_band_mapping_tests [] = { MM_MODEM_BAND_UTRAN_8 } }, { - "#BND: (0,2),(0,2,5,6)", TRUE, TRUE, FALSE, FALSE, 6, + "#BND: (0,2),(0,2,5,6)", TRUE, TRUE, FALSE, FALSE, FALSE, 6, { MM_MODEM_BAND_EGSM, MM_MODEM_BAND_DCS, MM_MODEM_BAND_G850, @@ -81,7 +82,7 @@ static BndResponseTest supported_band_mapping_tests [] = { MM_MODEM_BAND_UTRAN_8 } }, { - "#BND: (0,2),(0-4,5,6)", TRUE, TRUE, FALSE, FALSE, 7, + "#BND: (0,2),(0-4,5,6)", TRUE, TRUE, FALSE, FALSE, FALSE, 7, { MM_MODEM_BAND_EGSM, MM_MODEM_BAND_DCS, MM_MODEM_BAND_G850, @@ -91,7 +92,7 @@ static BndResponseTest supported_band_mapping_tests [] = { MM_MODEM_BAND_UTRAN_8 } }, { - "#BND: (0-3),(0,2,5,6),(1-1)", TRUE, TRUE, TRUE, FALSE, 8, + "#BND: (0-3),(0,2,5,6),(1-1)", TRUE, TRUE, TRUE, FALSE, FALSE, 8, { MM_MODEM_BAND_EGSM, MM_MODEM_BAND_DCS, MM_MODEM_BAND_PCS, @@ -102,7 +103,7 @@ static BndResponseTest supported_band_mapping_tests [] = { MM_MODEM_BAND_EUTRAN_1 } }, { - "#BND: (0),(0),(1-3)", TRUE, TRUE, TRUE, FALSE, 5, + "#BND: (0),(0),(1-3)", TRUE, TRUE, TRUE, FALSE, FALSE, 5, { MM_MODEM_BAND_EGSM, MM_MODEM_BAND_DCS, MM_MODEM_BAND_UTRAN_1, @@ -110,13 +111,13 @@ static BndResponseTest supported_band_mapping_tests [] = { MM_MODEM_BAND_EUTRAN_2 } }, { - "#BND: (0),(0),(1-3)", FALSE, FALSE, TRUE, FALSE, 2, + "#BND: (0),(0),(1-3)", FALSE, FALSE, TRUE, FALSE, FALSE, 2, { MM_MODEM_BAND_EUTRAN_1, MM_MODEM_BAND_EUTRAN_2 } }, /* 3G alternate band settings: default */ { - "#BND: (0),(0,2,5,6,12,25)", FALSE, TRUE, FALSE, FALSE, 5, + "#BND: (0),(0,2,5,6,12,25)", FALSE, TRUE, FALSE, FALSE, FALSE, 5, { MM_MODEM_BAND_UTRAN_1, MM_MODEM_BAND_UTRAN_5, MM_MODEM_BAND_UTRAN_8, @@ -125,7 +126,7 @@ static BndResponseTest supported_band_mapping_tests [] = { }, /* 3G alternate band settings: alternate */ { - "#BND: (0),(0,2,5,6,12,13)", FALSE, TRUE, FALSE, TRUE, 4, + "#BND: (0),(0,2,5,6,12,13)", FALSE, TRUE, FALSE, TRUE, FALSE, 4, { MM_MODEM_BAND_UTRAN_1, MM_MODEM_BAND_UTRAN_3, MM_MODEM_BAND_UTRAN_5, @@ -135,7 +136,7 @@ static BndResponseTest supported_band_mapping_tests [] = { * 168695967: 0xA0E189F: 0000 1010 0000 1110 0001 1000 1001 1111 */ { - "#BND: (0-5),(0),(1-168695967)", TRUE, FALSE, TRUE, FALSE, 17, + "#BND: (0-5),(0),(1-168695967)", TRUE, FALSE, TRUE, FALSE, FALSE, 17, { MM_MODEM_BAND_EGSM, MM_MODEM_BAND_DCS, MM_MODEM_BAND_PCS, @@ -153,6 +154,23 @@ static BndResponseTest supported_band_mapping_tests [] = { MM_MODEM_BAND_EUTRAN_20, MM_MODEM_BAND_EUTRAN_26, MM_MODEM_BAND_EUTRAN_28 } + }, + /* 4G ext band settings: devices such as LN920 */ + { + "#BND: (0),(0),(1003100185A),(42)", FALSE, TRUE, TRUE, FALSE, TRUE, 13, + { MM_MODEM_BAND_UTRAN_1, + MM_MODEM_BAND_EUTRAN_2, + MM_MODEM_BAND_EUTRAN_4, + MM_MODEM_BAND_EUTRAN_5, + MM_MODEM_BAND_EUTRAN_7, + MM_MODEM_BAND_EUTRAN_12, + MM_MODEM_BAND_EUTRAN_13, + MM_MODEM_BAND_EUTRAN_25, + MM_MODEM_BAND_EUTRAN_29, + MM_MODEM_BAND_EUTRAN_30, + MM_MODEM_BAND_EUTRAN_41, + MM_MODEM_BAND_EUTRAN_66, + MM_MODEM_BAND_EUTRAN_71 } } }; @@ -170,6 +188,7 @@ test_parse_supported_bands_response (void) supported_band_mapping_tests[i].modem_is_3g, supported_band_mapping_tests[i].modem_is_4g, supported_band_mapping_tests[i].modem_alternate_3g_bands, + supported_band_mapping_tests[i].modem_ext_4g_bands, NULL, &error); g_assert_no_error (error); @@ -184,18 +203,18 @@ test_parse_supported_bands_response (void) static BndResponseTest current_band_mapping_tests [] = { { - "#BND: 0", TRUE, FALSE, FALSE, FALSE, 2, + "#BND: 0", TRUE, FALSE, FALSE, FALSE, FALSE, 2, { MM_MODEM_BAND_EGSM, MM_MODEM_BAND_DCS } }, { - "#BND: 0,5", TRUE, TRUE, FALSE, FALSE, 3, + "#BND: 0,5", TRUE, TRUE, FALSE, FALSE, FALSE, 3, { MM_MODEM_BAND_EGSM, MM_MODEM_BAND_DCS, MM_MODEM_BAND_UTRAN_8 } }, { - "#BND: 1,3", TRUE, TRUE, FALSE, FALSE, 5, + "#BND: 1,3", TRUE, TRUE, FALSE, FALSE, FALSE, 5, { MM_MODEM_BAND_EGSM, MM_MODEM_BAND_PCS, MM_MODEM_BAND_UTRAN_1, @@ -203,38 +222,38 @@ static BndResponseTest current_band_mapping_tests [] = { MM_MODEM_BAND_UTRAN_5 } }, { - "#BND: 2,7", TRUE, TRUE, FALSE, FALSE, 3, + "#BND: 2,7", TRUE, TRUE, FALSE, FALSE, FALSE, 3, { MM_MODEM_BAND_DCS, MM_MODEM_BAND_G850, MM_MODEM_BAND_UTRAN_4 } }, { - "#BND: 3,0,1", TRUE, TRUE, TRUE, FALSE, 4, + "#BND: 3,0,1", TRUE, TRUE, TRUE, FALSE, FALSE, 4, { MM_MODEM_BAND_PCS, MM_MODEM_BAND_G850, MM_MODEM_BAND_UTRAN_1, MM_MODEM_BAND_EUTRAN_1 } }, { - "#BND: 0,0,3", TRUE, FALSE, TRUE, FALSE, 4, + "#BND: 0,0,3", TRUE, FALSE, TRUE, FALSE, FALSE, 4, { MM_MODEM_BAND_EGSM, MM_MODEM_BAND_DCS, MM_MODEM_BAND_EUTRAN_1, MM_MODEM_BAND_EUTRAN_2 } }, { - "#BND: 0,0,3", FALSE, FALSE, TRUE, FALSE, 2, + "#BND: 0,0,3", FALSE, FALSE, TRUE, FALSE, FALSE, 2, { MM_MODEM_BAND_EUTRAN_1, MM_MODEM_BAND_EUTRAN_2 } }, /* 3G alternate band settings: default */ { - "#BND: 0,12", FALSE, TRUE, FALSE, FALSE, 1, + "#BND: 0,12", FALSE, TRUE, FALSE, FALSE, FALSE, 1, { MM_MODEM_BAND_UTRAN_6 } }, /* 3G alternate band settings: alternate */ { - "#BND: 0,12", FALSE, TRUE, FALSE, TRUE, 4, + "#BND: 0,12", FALSE, TRUE, FALSE, TRUE, FALSE, 4, { MM_MODEM_BAND_UTRAN_1, MM_MODEM_BAND_UTRAN_3, MM_MODEM_BAND_UTRAN_5, @@ -244,7 +263,7 @@ static BndResponseTest current_band_mapping_tests [] = { * 168695967: 0xA0E189F: 0000 1010 0000 1110 0001 1000 1001 1111 */ { - "#BND: 5,0,168695967", TRUE, FALSE, TRUE, FALSE, 17, + "#BND: 5,0,168695967", TRUE, FALSE, TRUE, FALSE, FALSE, 17, { MM_MODEM_BAND_EGSM, MM_MODEM_BAND_DCS, MM_MODEM_BAND_PCS, @@ -262,6 +281,23 @@ static BndResponseTest current_band_mapping_tests [] = { MM_MODEM_BAND_EUTRAN_20, MM_MODEM_BAND_EUTRAN_26, MM_MODEM_BAND_EUTRAN_28 } + }, + /* 4G ext band settings: devices such as LN920 */ + { + "#BND: 0,0,1003100185A,42", FALSE, TRUE, TRUE, FALSE, TRUE, 13, + { MM_MODEM_BAND_UTRAN_1, + MM_MODEM_BAND_EUTRAN_2, + MM_MODEM_BAND_EUTRAN_4, + MM_MODEM_BAND_EUTRAN_5, + MM_MODEM_BAND_EUTRAN_7, + MM_MODEM_BAND_EUTRAN_12, + MM_MODEM_BAND_EUTRAN_13, + MM_MODEM_BAND_EUTRAN_25, + MM_MODEM_BAND_EUTRAN_29, + MM_MODEM_BAND_EUTRAN_30, + MM_MODEM_BAND_EUTRAN_41, + MM_MODEM_BAND_EUTRAN_66, + MM_MODEM_BAND_EUTRAN_71 } } }; @@ -279,6 +315,7 @@ test_parse_current_bands_response (void) current_band_mapping_tests[i].modem_is_3g, current_band_mapping_tests[i].modem_is_4g, current_band_mapping_tests[i].modem_alternate_3g_bands, + current_band_mapping_tests[i].modem_ext_4g_bands, NULL, &error); g_assert_no_error (error); @@ -299,6 +336,7 @@ test_common_bnd_cmd (const gchar *expected_cmd, gboolean modem_is_3g, gboolean modem_is_4g, gboolean modem_alternate_3g_bands, + gboolean modem_ext_4g_bands, GArray *bands_array) { gchar *cmd; @@ -307,15 +345,16 @@ test_common_bnd_cmd (const gchar *expected_cmd, cmd = mm_telit_build_bnd_request (bands_array, modem_is_2g, modem_is_3g, modem_is_4g, modem_alternate_3g_bands, + modem_ext_4g_bands, &error); g_assert_no_error (error); g_assert_cmpstr (cmd, ==, expected_cmd); g_free (cmd); } -#define test_common_bnd_cmd_2g(EXPECTED_CMD, BANDS_ARRAY) test_common_bnd_cmd (EXPECTED_CMD, TRUE, FALSE, FALSE, FALSE, BANDS_ARRAY) -#define test_common_bnd_cmd_3g(EXPECTED_CMD, ALTERNATE, BANDS_ARRAY) test_common_bnd_cmd (EXPECTED_CMD, FALSE, TRUE, FALSE, ALTERNATE, BANDS_ARRAY) -#define test_common_bnd_cmd_4g(EXPECTED_CMD, BANDS_ARRAY) test_common_bnd_cmd (EXPECTED_CMD, FALSE, FALSE, TRUE, FALSE, BANDS_ARRAY) +#define test_common_bnd_cmd_2g(EXPECTED_CMD, BANDS_ARRAY) test_common_bnd_cmd (EXPECTED_CMD, TRUE, FALSE, FALSE, FALSE, FALSE, BANDS_ARRAY) +#define test_common_bnd_cmd_3g(EXPECTED_CMD, ALTERNATE, BANDS_ARRAY) test_common_bnd_cmd (EXPECTED_CMD, FALSE, TRUE, FALSE, ALTERNATE, FALSE, BANDS_ARRAY) +#define test_common_bnd_cmd_4g(EXPECTED_CMD, EXTENDED, BANDS_ARRAY) test_common_bnd_cmd (EXPECTED_CMD, FALSE, FALSE, TRUE, FALSE, EXTENDED, BANDS_ARRAY) static void test_common_bnd_cmd_error (gboolean modem_is_2g, @@ -329,7 +368,7 @@ test_common_bnd_cmd_error (gboolean modem_is_2g, cmd = mm_telit_build_bnd_request (bands_array, modem_is_2g, modem_is_3g, modem_is_4g, - FALSE, + FALSE, FALSE, &error); g_assert_error (error, MM_CORE_ERROR, (gint)expected_error); g_assert (!cmd); @@ -512,14 +551,14 @@ test_telit_get_4g_bnd_flag (void) /* Test flag 1 */ bands_array = g_array_sized_new (FALSE, FALSE, sizeof (MMModemBand), 1); g_array_append_val (bands_array, eutran_i); - test_common_bnd_cmd_4g ("#BND=0,0,1", bands_array); + test_common_bnd_cmd_4g ("#BND=0,0,1", FALSE, bands_array); g_array_unref (bands_array); /* Test flag 3 */ bands_array = g_array_sized_new (FALSE, FALSE, sizeof (MMModemBand), 2); g_array_append_val (bands_array, eutran_i); g_array_append_val (bands_array, eutran_ii); - test_common_bnd_cmd_4g ("#BND=0,0,3", bands_array); + test_common_bnd_cmd_4g ("#BND=0,0,3", FALSE, bands_array); g_array_unref (bands_array); /* Test unmatched band array */ |