modem-helpers: handle spaces in +CPMS query response

Fixes: https://gitlab.freedesktop.org/mobile-broadband/ModemManager/-/issues/990

Signed-off-by: Dan Williams <dan@ioncontrol.co>
This commit is contained in:
Dan Williams
2025-05-20 09:56:49 -05:00
parent 847ce9ada5
commit 5888949fa3
2 changed files with 5 additions and 4 deletions
+1 -1
View File
@@ -3335,7 +3335,7 @@ mm_3gpp_parse_cpms_test_response (const gchar *reply,
* +CPMS: <memr>,<usedr>,<totalr>,<memw>,<usedw>,<totalw>, <mems>,<useds>,<totals> * +CPMS: <memr>,<usedr>,<totalr>,<memw>,<usedw>,<totalw>, <mems>,<useds>,<totals>
*/ */
#define CPMS_QUERY_REGEX "\\+CPMS:\\s*\"(?P<memr>.*)\",[0-9]+,[0-9]+,\"(?P<memw>.*)\",[0-9]+,[0-9]+,\"(?P<mems>.*)\",[0-9]+,[0-9]" #define CPMS_QUERY_REGEX "\\+CPMS:\\s*\"(?P<memr>.*)\",\\s*[0-9]+,\\s*[0-9]+,\\s*\"(?P<memw>.*)\",\\s*[0-9]+,\\s*[0-9]+,\\s*\"(?P<mems>.*)\",\\s*[0-9]+,\\s*[0-9]"
gboolean gboolean
mm_3gpp_parse_cpms_query_response (const gchar *reply, mm_3gpp_parse_cpms_query_response (const gchar *reply,
+4 -3
View File
@@ -3330,7 +3330,7 @@ CpmsQueryTest cpms_query_test[] = {
{"+CPMS: \"SM\",100,100,\"SR\",5,10,\"TA\",1,100", 1, 4}, {"+CPMS: \"SM\",100,100,\"SR\",5,10,\"TA\",1,100", 1, 4},
{"+CPMS: \"XX\",100,100,\"BM\",5,10,\"TA\",1,100", 0, 5}, {"+CPMS: \"XX\",100,100,\"BM\",5,10,\"TA\",1,100", 0, 5},
{"+CPMS: \"XX\",100,100,\"YY\",5,10,\"TA\",1,100", 0, 0}, {"+CPMS: \"XX\",100,100,\"YY\",5,10,\"TA\",1,100", 0, 0},
{NULL, 0, 0} {"+CPMS: \"MT\", 0, 100, \"MT\", 0, 100, \"MT\", 0, 100", 3, 3},
}; };
static void static void
@@ -3339,13 +3339,14 @@ test_cpms_query_response (void *f, gpointer d) {
MMSmsStorage mem2; MMSmsStorage mem2;
gboolean ret; gboolean ret;
GError *error = NULL; GError *error = NULL;
int i; guint i;
for (i = 0; cpms_query_test[i].query != NULL; i++){ for (i = 0; i < G_N_ELEMENTS (cpms_query_test); i++){
ret = mm_3gpp_parse_cpms_query_response (cpms_query_test[i].query, ret = mm_3gpp_parse_cpms_query_response (cpms_query_test[i].query,
&mem1, &mem1,
&mem2, &mem2,
&error); &error);
g_assert_no_error (error);
g_assert (ret); g_assert (ret);
g_assert_no_error (error); g_assert_no_error (error);
g_assert_cmpuint (cpms_query_test[i].mem1_want, ==, mem1); g_assert_cmpuint (cpms_query_test[i].mem1_want, ==, mem1);