mirror of
https://github.com/qemu/qemu.git
synced 2024-11-26 21:33:40 +08:00
test-cutils: Add missing qemu_strtosz()... endptr checks
Signed-off-by: Markus Armbruster <armbru@redhat.com> Reviewed-by: Eric Blake <eblake@redhat.com> Reviewed-by: Philippe Mathieu-Daudé <f4bug@amsat.org> Message-Id: <1487708048-2131-11-git-send-email-armbru@redhat.com>
This commit is contained in:
parent
3403e5eb88
commit
019144b286
@ -1393,60 +1393,75 @@ static void test_qemu_strtosz_units(void)
|
||||
const char *t = "1T";
|
||||
const char *p = "1P";
|
||||
const char *e = "1E";
|
||||
char *endptr = NULL;
|
||||
int64_t res;
|
||||
|
||||
/* default is M */
|
||||
res = qemu_strtosz(none, NULL);
|
||||
res = qemu_strtosz(none, &endptr);
|
||||
g_assert_cmpint(res, ==, M_BYTE);
|
||||
g_assert(endptr == none + 1);
|
||||
|
||||
res = qemu_strtosz(b, NULL);
|
||||
res = qemu_strtosz(b, &endptr);
|
||||
g_assert_cmpint(res, ==, 1);
|
||||
g_assert(endptr == b + 2);
|
||||
|
||||
res = qemu_strtosz(k, NULL);
|
||||
res = qemu_strtosz(k, &endptr);
|
||||
g_assert_cmpint(res, ==, K_BYTE);
|
||||
g_assert(endptr == k + 2);
|
||||
|
||||
res = qemu_strtosz(m, NULL);
|
||||
res = qemu_strtosz(m, &endptr);
|
||||
g_assert_cmpint(res, ==, M_BYTE);
|
||||
g_assert(endptr == m + 2);
|
||||
|
||||
res = qemu_strtosz(g, NULL);
|
||||
res = qemu_strtosz(g, &endptr);
|
||||
g_assert_cmpint(res, ==, G_BYTE);
|
||||
g_assert(endptr == g + 2);
|
||||
|
||||
res = qemu_strtosz(t, NULL);
|
||||
res = qemu_strtosz(t, &endptr);
|
||||
g_assert_cmpint(res, ==, T_BYTE);
|
||||
g_assert(endptr == t + 2);
|
||||
|
||||
res = qemu_strtosz(p, NULL);
|
||||
res = qemu_strtosz(p, &endptr);
|
||||
g_assert_cmpint(res, ==, P_BYTE);
|
||||
g_assert(endptr == p + 2);
|
||||
|
||||
res = qemu_strtosz(e, NULL);
|
||||
res = qemu_strtosz(e, &endptr);
|
||||
g_assert_cmpint(res, ==, E_BYTE);
|
||||
g_assert(endptr == e + 2);
|
||||
}
|
||||
|
||||
static void test_qemu_strtosz_float(void)
|
||||
{
|
||||
const char *str = "12.345M";
|
||||
char *endptr = NULL;
|
||||
int64_t res;
|
||||
|
||||
res = qemu_strtosz(str, NULL);
|
||||
res = qemu_strtosz(str, &endptr);
|
||||
g_assert_cmpint(res, ==, 12.345 * M_BYTE);
|
||||
g_assert(endptr == str + 7);
|
||||
}
|
||||
|
||||
static void test_qemu_strtosz_erange(void)
|
||||
{
|
||||
const char *str = "10E";
|
||||
char *endptr = NULL;
|
||||
int64_t res;
|
||||
|
||||
res = qemu_strtosz(str, NULL);
|
||||
res = qemu_strtosz(str, &endptr);
|
||||
g_assert_cmpint(res, ==, -ERANGE);
|
||||
g_assert(endptr == str + 3);
|
||||
}
|
||||
|
||||
static void test_qemu_strtosz_suffix_unit(void)
|
||||
{
|
||||
const char *str = "12345";
|
||||
char *endptr = NULL;
|
||||
int64_t res;
|
||||
|
||||
res = qemu_strtosz_suffix_unit(str, NULL,
|
||||
res = qemu_strtosz_suffix_unit(str, &endptr,
|
||||
QEMU_STRTOSZ_DEFSUFFIX_KB, 1000);
|
||||
g_assert_cmpint(res, ==, 12345000);
|
||||
g_assert(endptr == str + 5);
|
||||
}
|
||||
|
||||
int main(int argc, char **argv)
|
||||
|
Loading…
Reference in New Issue
Block a user