aboutsummaryrefslogtreecommitdiff
path: root/tests
diff options
context:
space:
mode:
authorEric Blake <eblake@redhat.com>2023-05-22 14:04:34 -0500
committerEric Blake <eblake@redhat.com>2023-06-02 12:29:27 -0500
commitf49371ecae182eb07cfb105aa7ea637479d83764 (patch)
tree19263b62ed8bcc785db6b17f9e8b1e26818ff118 /tests
parent157367cf21ea01a9413fd6f16808b0bf34804138 (diff)
cutils: Allow NULL str in qemu_strtosz
All the other qemu_strto* and parse_uint allow a NULL str. Having qemu_strtosz not crash on qemu_strtosz(NULL, NULL, &value) is an easy fix that adds some consistency between our string parsers. Signed-off-by: Eric Blake <eblake@redhat.com> Reviewed-by: Philippe Mathieu-Daudé <philmd@linaro.org> Reviewed-by: Hanna Czenczek <hreitz@redhat.com> Message-Id: <20230522190441.64278-13-eblake@redhat.com>
Diffstat (limited to 'tests')
-rw-r--r--tests/unit/test-cutils.c10
1 files changed, 9 insertions, 1 deletions
diff --git a/tests/unit/test-cutils.c b/tests/unit/test-cutils.c
index fa94d15891..095a611d1e 100644
--- a/tests/unit/test-cutils.c
+++ b/tests/unit/test-cutils.c
@@ -3285,7 +3285,12 @@ static void do_strtosz_full(const char *str, qemu_strtosz_fn fn,
ret = fn(str, &endptr, &val);
g_assert_cmpint(ret, ==, exp_ptr_ret);
g_assert_cmpuint(val, ==, exp_ptr_val);
- g_assert_true(endptr == str + exp_ptr_offset);
+ if (str) {
+ g_assert_true(endptr == str + exp_ptr_offset);
+ } else {
+ g_assert_cmpint(exp_ptr_offset, ==, 0);
+ g_assert_null(endptr);
+ }
val = 0xbaadf00d;
ret = fn(str, NULL, &val);
@@ -3383,6 +3388,9 @@ static void test_qemu_strtosz_float(void)
static void test_qemu_strtosz_invalid(void)
{
+ do_strtosz(NULL, -EINVAL, 0xbaadf00d, 0);
+
+ /* Must parse at least one digit */
do_strtosz("", -EINVAL, 0xbaadf00d, 0);
do_strtosz(" \t ", -EINVAL, 0xbaadf00d, 0);
do_strtosz("crap", -EINVAL, 0xbaadf00d, 0);