aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorDan Williams <dcbw@redhat.com>2010-01-05 15:03:06 -0600
committerDan Williams <dcbw@redhat.com>2010-01-05 15:03:06 -0600
commitc30f23e02c0759ddd333699c7d39fe53bdf159ac (patch)
treed4823fed69651f1a5745ceba19bff2d266179e06
parent3988f53d2e9b9aae7eb4f6fb8c46dca55373ba6f (diff)
gsm: add testcase for invalid +COPS response
-rw-r--r--src/mm-modem-helpers.c3
-rw-r--r--src/tests/test-modem-helpers.c26
2 files changed, 29 insertions, 0 deletions
diff --git a/src/mm-modem-helpers.c b/src/mm-modem-helpers.c
index dbf04d01..1741b5f0 100644
--- a/src/mm-modem-helpers.c
+++ b/src/mm-modem-helpers.c
@@ -50,6 +50,9 @@ save_scan_value (GHashTable *hash, const char *key, GMatchInfo *info, guint32 nu
g_hash_table_insert (hash, g_strdup (key), quoted);
}
+/* If the response was successfully parsed (even if no valid entries were
+ * found) the pointer array will be returned.
+ */
GPtrArray *
mm_gsm_parse_scan_response (const char *reply, GError **error)
{
diff --git a/src/tests/test-modem-helpers.c b/src/tests/test-modem-helpers.c
index 8ae27e54..ee2e7ddb 100644
--- a/src/tests/test-modem-helpers.c
+++ b/src/tests/test-modem-helpers.c
@@ -320,6 +320,30 @@ test_cops_response_n80 (void *f, gpointer d)
test_results ("Nokia N80", reply, &expected[0], ARRAY_LEN (expected));
}
+static void
+test_cops_response_gsm_invalid (void *f, gpointer d)
+{
+ const char *reply = "+COPS: (0,1,2,3),(1,2,3,4)";
+ GPtrArray *results;
+ GError *error = NULL;
+
+ results = mm_gsm_parse_scan_response (reply, &error);
+ g_assert (results != NULL);
+ g_assert (error == NULL);
+}
+
+static void
+test_cops_response_umts_invalid (void *f, gpointer d)
+{
+ const char *reply = "+COPS: (0,1,2,3,4),(1,2,3,4,5)";
+ GPtrArray *results;
+ GError *error = NULL;
+
+ results = mm_gsm_parse_scan_response (reply, &error);
+ g_assert (results != NULL);
+ g_assert (error == NULL);
+}
+
typedef void (*TCFunc)(void);
@@ -351,6 +375,8 @@ int main (int argc, char **argv)
g_test_suite_add (suite, TESTCASE (test_cops_response_f3607gw, NULL));
g_test_suite_add (suite, TESTCASE (test_cops_response_mc8775, NULL));
g_test_suite_add (suite, TESTCASE (test_cops_response_n80, NULL));
+ g_test_suite_add (suite, TESTCASE (test_cops_response_gsm_invalid, NULL));
+ g_test_suite_add (suite, TESTCASE (test_cops_response_umts_invalid, NULL));
return g_test_run ();
}