aboutsummaryrefslogtreecommitdiff
path: root/plugins/telit/tests/test-mm-modem-helpers-telit.c
diff options
context:
space:
mode:
Diffstat (limited to 'plugins/telit/tests/test-mm-modem-helpers-telit.c')
-rw-r--r--plugins/telit/tests/test-mm-modem-helpers-telit.c93
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 */