aboutsummaryrefslogtreecommitdiff
path: root/tests/unit
diff options
context:
space:
mode:
authorEric Blake <eblake@redhat.com>2023-05-22 14:04:39 -0500
committerEric Blake <eblake@redhat.com>2023-06-02 12:29:27 -0500
commitb87ac96651054fa89baab4e3a88a7feee7f92314 (patch)
tree912cb79075e7871787546deba4e37625b902c1ce /tests/unit
parent3c5f2467984c23aae5a64548dcb15efae18e207e (diff)
cutils: Use parse_uint in qemu_strtosz for negative rejection
Rather than open-coding two different ways to check for an unwanted negative sign, reuse the same code in both functions. That way, if we decide down the road to accept "-0" instead of rejecting it, we have fewer places to change. Also, it means we now get ERANGE instead of EINVAL for negative values in qemu_strtosz, which is reasonable for what it represents. This in turn changes the expected output of a couple of iotests. The change is not quite complete: negative fractional scaled values can trip us up. This will be fixed in a later patch addressing other issues with fractional scaled values. Signed-off-by: Eric Blake <eblake@redhat.com> Reviewed-by: Hanna Czenczek <hreitz@redhat.com> Message-Id: <20230522190441.64278-18-eblake@redhat.com>
Diffstat (limited to 'tests/unit')
-rw-r--r--tests/unit/test-cutils.c7
1 files changed, 3 insertions, 4 deletions
diff --git a/tests/unit/test-cutils.c b/tests/unit/test-cutils.c
index cfe1fc8a17..0e3215a46e 100644
--- a/tests/unit/test-cutils.c
+++ b/tests/unit/test-cutils.c
@@ -3519,10 +3519,9 @@ static void test_qemu_strtosz_trailing(void)
static void test_qemu_strtosz_erange(void)
{
/* FIXME negative values fit better as ERANGE */
- do_strtosz(" -0", -EINVAL /* FIXME -ERANGE */, 0, 0 /* FIXME 3 */);
- do_strtosz("-1", -EINVAL /* FIXME -ERANGE */, 0, 0 /* FIXME 2 */);
- do_strtosz_full("-2M", qemu_strtosz, -EINVAL /* FIXME -ERANGE */, 0,
- 0 /* FIXME 2 */, -EINVAL, 0);
+ do_strtosz(" -0", -ERANGE, 0, 3);
+ do_strtosz("-1", -ERANGE, 0, 2);
+ do_strtosz_full("-2M", qemu_strtosz, -ERANGE, 0, 2, -EINVAL, 0);
do_strtosz(" -.0", -EINVAL /* FIXME -ERANGE */, 0, 0 /* FIXME 4 */);
do_strtosz_full("-.1k", qemu_strtosz, -EINVAL /* FIXME -ERANGE */, 0,
0 /* FIXME 3 */, -EINVAL, 0);