diff options
author | Aleksander Morgado <aleksander@aleksander.es> | 2020-01-31 15:46:14 +0100 |
---|---|---|
committer | Aleksander Morgado <aleksander@aleksander.es> | 2020-01-31 15:48:16 +0100 |
commit | 280363e0d639a77a4072f26b9ec499de6575c0f2 (patch) | |
tree | 5d1e0fb1ac6fa5798be20cbb1eb825df74529dfb /libmm-glib/tests | |
parent | 2020f1f2e748beb3f919cd0818a32673b39aecbc (diff) | |
download | ModemManager-280363e0d639a77a4072f26b9ec499de6575c0f2.tar.gz |
libmm-glib,helpers: allow \r\n in string to number conversions
It's not uncommon that we may want to parse a simple AT response that
contains a single number by doing mm_strip_tag() followed by
mm_get_uint_from_str(). In order to do this, we need to have the
helper methods that convert strings to numbers support \r\n characters
at the end of the string, as we would have in AT responses.
Diffstat (limited to 'libmm-glib/tests')
-rw-r--r-- | libmm-glib/tests/test-common-helpers.c | 15 |
1 files changed, 15 insertions, 0 deletions
diff --git a/libmm-glib/tests/test-common-helpers.c b/libmm-glib/tests/test-common-helpers.c index aa15b1723..78432bed5 100644 --- a/libmm-glib/tests/test-common-helpers.c +++ b/libmm-glib/tests/test-common-helpers.c @@ -366,6 +366,8 @@ field_parser_int (void) g_assert (mm_get_int_from_str ("100a", &num) == FALSE); + g_assert (mm_get_int_from_str ("\r\n", &num) == FALSE); + str = g_strdup_printf ("%" G_GINT64_FORMAT, (gint64)G_MAXINT + 1); g_assert (mm_get_int_from_str (str, &num) == FALSE); g_free (str); @@ -385,6 +387,9 @@ field_parser_int (void) g_assert (mm_get_int_from_str ("100", &num) == TRUE); g_assert_cmpint (num, ==, 100); + g_assert (mm_get_int_from_str ("-256\r\n", &num) == TRUE); + g_assert_cmpint (num, ==, -256); + str = g_strdup_printf ("%" G_GINT64_FORMAT, (gint64)G_MAXINT); g_assert (mm_get_int_from_str (str, &num) == TRUE); g_assert_cmpint (num, ==, G_MAXINT); @@ -416,6 +421,8 @@ field_parser_uint (void) g_assert (mm_get_uint_from_str ("-100", &num) == FALSE); + g_assert (mm_get_uint_from_str ("\r\n", &num) == FALSE); + str = g_strdup_printf ("%" G_GUINT64_FORMAT, (guint64)(G_MAXUINT) + 1); g_assert (mm_get_uint_from_str (str, &num) == FALSE); g_free (str); @@ -428,6 +435,9 @@ field_parser_uint (void) g_assert (mm_get_uint_from_str ("100", &num) == TRUE); g_assert_cmpuint (num, ==, 100); + g_assert (mm_get_uint_from_str ("256\r\n", &num) == TRUE); + g_assert_cmpuint (num, ==, 256); + str = g_strdup_printf ("%" G_GUINT64_FORMAT, (guint64)G_MAXUINT); g_assert (mm_get_uint_from_str (str, &num) == TRUE); g_assert_cmpuint (num, ==, G_MAXUINT); @@ -452,6 +462,8 @@ field_parser_double (void) g_assert (mm_get_double_from_str ("100a", &num) == FALSE); + g_assert (mm_get_double_from_str ("\r\n", &num) == FALSE); + /* Successes */ g_assert (mm_get_double_from_str ("-100", &num) == TRUE); @@ -475,6 +487,9 @@ field_parser_double (void) g_assert (mm_get_double_from_str ("100.7567", &num) == TRUE); g_assert (num - (100.7567) < 0000000.1); + g_assert (mm_get_double_from_str ("100.7567\r\n", &num) == TRUE); + g_assert (num - (100.7567) < 0000000.1); + str = g_strdup_printf ("%lf", (gdouble)G_MINDOUBLE); g_assert (mm_get_double_from_str (str, &num) == TRUE); g_assert (num - G_MINDOUBLE < 0000000.1); |