aboutsummaryrefslogtreecommitdiff
path: root/src/tests/test-modem-helpers.c
diff options
context:
space:
mode:
Diffstat (limited to 'src/tests/test-modem-helpers.c')
-rw-r--r--src/tests/test-modem-helpers.c68
1 files changed, 68 insertions, 0 deletions
diff --git a/src/tests/test-modem-helpers.c b/src/tests/test-modem-helpers.c
index b59c5900..d6984d2d 100644
--- a/src/tests/test-modem-helpers.c
+++ b/src/tests/test-modem-helpers.c
@@ -1867,6 +1867,70 @@ test_devid_item (void *f, gpointer d)
}
/*****************************************************************************/
+/* Test CMER test responses */
+
+static void
+test_cmer_response (const gchar *str,
+ MM3gppCmerMode expected_modes,
+ MM3gppCmerInd expected_inds)
+{
+ gboolean ret;
+ MM3gppCmerMode modes = MM_3GPP_CMER_MODE_NONE;
+ MM3gppCmerInd inds = MM_3GPP_CMER_IND_NONE;
+ GError *error = NULL;
+
+ ret = mm_3gpp_parse_cmer_test_response (str, &modes, &inds, &error);
+ g_assert_no_error (error);
+ g_assert (ret);
+
+ g_assert_cmpuint (modes, ==, expected_modes);
+ g_assert_cmpuint (inds, ==, expected_inds);
+}
+
+static void
+test_cmer_response_cinterion_pls8 (void)
+{
+ static const gchar *str = "+CMER: (0-3),(0),(0),(0-1),(0-1)";
+ static const MM3gppCmerMode expected_modes = ( \
+ MM_3GPP_CMER_MODE_DISCARD_URCS | \
+ MM_3GPP_CMER_MODE_DISCARD_URCS_IF_LINK_RESERVED | \
+ MM_3GPP_CMER_MODE_BUFFER_URCS_IF_LINK_RESERVED | \
+ MM_3GPP_CMER_MODE_FORWARD_URCS);
+ static const MM3gppCmerInd expected_inds = ( \
+ MM_3GPP_CMER_IND_DISABLE | \
+ MM_3GPP_CMER_IND_ENABLE_NOT_CAUSED_BY_CIND);
+
+ test_cmer_response (str, expected_modes, expected_inds);
+}
+
+static void
+test_cmer_response_sierra_em7345 (void)
+{
+ static const gchar *str = "+CMER: 1,0,0,(0-1),0";
+ static const MM3gppCmerMode expected_modes = ( \
+ MM_3GPP_CMER_MODE_DISCARD_URCS_IF_LINK_RESERVED);
+ static const MM3gppCmerInd expected_inds = ( \
+ MM_3GPP_CMER_IND_DISABLE | \
+ MM_3GPP_CMER_IND_ENABLE_NOT_CAUSED_BY_CIND);
+
+ test_cmer_response (str, expected_modes, expected_inds);
+}
+
+static void
+test_cmer_response_cinterion_ehs5 (void)
+{
+ static const gchar *str = "+CMER: (1,2),0,0,(0-1),0";
+ static const MM3gppCmerMode expected_modes = ( \
+ MM_3GPP_CMER_MODE_DISCARD_URCS_IF_LINK_RESERVED | \
+ MM_3GPP_CMER_MODE_BUFFER_URCS_IF_LINK_RESERVED);
+ static const MM3gppCmerInd expected_inds = ( \
+ MM_3GPP_CMER_IND_DISABLE | \
+ MM_3GPP_CMER_IND_ENABLE_NOT_CAUSED_BY_CIND);
+
+ test_cmer_response (str, expected_modes, expected_inds);
+}
+
+/*****************************************************************************/
/* Test CIND responses */
typedef struct {
@@ -3726,6 +3790,10 @@ int main (int argc, char **argv)
g_test_suite_add (suite, TESTCASE (test_cscs_buslink_support_response, NULL));
g_test_suite_add (suite, TESTCASE (test_cscs_blackberry_support_response, NULL));
+ g_test_suite_add (suite, TESTCASE (test_cmer_response_cinterion_pls8, NULL));
+ g_test_suite_add (suite, TESTCASE (test_cmer_response_sierra_em7345, NULL));
+ g_test_suite_add (suite, TESTCASE (test_cmer_response_cinterion_ehs5, NULL));
+
g_test_suite_add (suite, TESTCASE (test_cind_response_linktop_lw273, NULL));
g_test_suite_add (suite, TESTCASE (test_cind_response_moto_v3m, NULL));