r = parse_uint(NULL, &i, &endptr, 0);
g_assert_cmpint(r, ==, -EINVAL);
- g_assert_cmpint(i, ==, 0);
+ g_assert_cmpuint(i, ==, 0);
g_assert_null(endptr);
}
r = parse_uint(str, &i, &endptr, 0);
g_assert_cmpint(r, ==, -EINVAL);
- g_assert_cmpint(i, ==, 0);
+ g_assert_cmpuint(i, ==, 0);
g_assert_true(endptr == str);
}
r = parse_uint(str, &i, &endptr, 0);
g_assert_cmpint(r, ==, -EINVAL);
- g_assert_cmpint(i, ==, 0);
+ g_assert_cmpuint(i, ==, 0);
g_assert_true(endptr == str);
}
r = parse_uint(str, &i, &endptr, 0);
g_assert_cmpint(r, ==, -EINVAL);
- g_assert_cmpint(i, ==, 0);
+ g_assert_cmpuint(i, ==, 0);
g_assert_true(endptr == str);
}
r = parse_uint(str, &i, &endptr, 0);
g_assert_cmpint(r, ==, 0);
- g_assert_cmpint(i, ==, 123);
+ g_assert_cmpuint(i, ==, 123);
g_assert_true(endptr == str + 3);
}
r = parse_uint(str, &i, &endptr, 0);
g_assert_cmpint(r, ==, 0);
- g_assert_cmpint(i, ==, 123);
+ g_assert_cmpuint(i, ==, 123);
g_assert_true(endptr == str + strlen(str));
}
r = parse_uint(str, &i, &endptr, 0);
g_assert_cmpint(r, ==, 0);
- g_assert_cmpint(i, ==, 0123);
+ g_assert_cmpuint(i, ==, 0123);
g_assert_true(endptr == str + strlen(str));
}
r = parse_uint(str, &i, &endptr, 10);
g_assert_cmpint(r, ==, 0);
- g_assert_cmpint(i, ==, 123);
+ g_assert_cmpuint(i, ==, 123);
g_assert_true(endptr == str + strlen(str));
}
r = parse_uint(str, &i, &endptr, 0);
g_assert_cmpint(r, ==, 0);
- g_assert_cmpint(i, ==, (unsigned long long)LLONG_MAX + 1);
+ g_assert_cmpuint(i, ==, (unsigned long long)LLONG_MAX + 1);
g_assert_true(endptr == str + strlen(str));
g_free(str);
r = parse_uint(str, &i, &endptr, 0);
g_assert_cmpint(r, ==, -ERANGE);
- g_assert_cmpint(i, ==, ULLONG_MAX);
+ g_assert_cmpuint(i, ==, ULLONG_MAX);
g_assert_true(endptr == str + strlen(str));
}
r = parse_uint(str, &i, &endptr, 0);
g_assert_cmpint(r, ==, -ERANGE);
- g_assert_cmpint(i, ==, 0);
+ g_assert_cmpuint(i, ==, 0);
g_assert_true(endptr == str + strlen(str));
}
r = parse_uint_full(str, &i, 0);
g_assert_cmpint(r, ==, -EINVAL);
- g_assert_cmpint(i, ==, 0);
+ g_assert_cmpuint(i, ==, 0);
}
static void test_parse_uint_full_correct(void)
r = parse_uint_full(str, &i, 0);
g_assert_cmpint(r, ==, 0);
- g_assert_cmpint(i, ==, 123);
+ g_assert_cmpuint(i, ==, 123);
}
static void test_qemu_strtoi_correct(void)
int res = 999;
int err;
- err = qemu_strtoi(str, &endptr, 0, &res);
+ err = qemu_strtoi(str, &endptr, 0, &res);
g_assert_cmpint(err, ==, -ERANGE);
g_assert_cmpint(res, ==, INT_MIN);
static void test_qemu_strtoi_full_empty(void)
{
const char *str = "";
- int res = 999L;
+ int res = 999;
int err;
- err = qemu_strtoi(str, NULL, 0, &res);
+ err = qemu_strtoi(str, NULL, 0, &res);
g_assert_cmpint(err, ==, -EINVAL);
}
unsigned int res = 999;
int err;
- err = qemu_strtoui(str, &endptr, 0, &res);
+ err = qemu_strtoui(str, &endptr, 0, &res);
g_assert_cmpint(err, ==, -ERANGE);
g_assert_cmpuint(res, ==, (unsigned int)-1);
long res = 999;
int err;
- err = qemu_strtol(str, &endptr, 0, &res);
+ err = qemu_strtol(str, &endptr, 0, &res);
g_assert_cmpint(err, ==, -ERANGE);
g_assert_cmpint(res, ==, LONG_MIN);
long res = 999L;
int err;
- err = qemu_strtol(str, NULL, 0, &res);
+ err = qemu_strtol(str, NULL, 0, &res);
g_assert_cmpint(err, ==, -EINVAL);
}
unsigned long res = 999;
int err;
- err = qemu_strtoul(str, &endptr, 0, &res);
+ err = qemu_strtoul(str, &endptr, 0, &res);
g_assert_cmpint(err, ==, -ERANGE);
g_assert_cmpuint(res, ==, -1ul);
int64_t res = 999;
int err;
- err = qemu_strtoi64(str, &endptr, 0, &res);
+ err = qemu_strtoi64(str, &endptr, 0, &res);
g_assert_cmpint(err, ==, -ERANGE);
g_assert_cmpint(res, ==, LLONG_MIN);
uint64_t res = 999;
int err;
- err = qemu_strtou64(str, &endptr, 0, &res);
+ err = qemu_strtou64(str, &endptr, 0, &res);
g_assert_cmpint(err, ==, -ERANGE);
g_assert_cmphex(res, ==, -1ull);
res = 0xbaadf00d;
err = qemu_strtosz(str, &endptr, &res);
g_assert_cmpint(err, ==, 0);
- g_assert_cmpint(res, ==, 0);
+ g_assert_cmpuint(res, ==, 0);
g_assert_true(endptr == str + 1);
/* Leading 0 gives decimal results, not octal */
res = 0xbaadf00d;
err = qemu_strtosz(str, &endptr, &res);
g_assert_cmpint(err, ==, 0);
- g_assert_cmpint(res, ==, 8);
+ g_assert_cmpuint(res, ==, 8);
g_assert_true(endptr == str + 2);
/* Leading space is ignored */
res = 0xbaadf00d;
err = qemu_strtosz(str, &endptr, &res);
g_assert_cmpint(err, ==, 0);
- g_assert_cmpint(res, ==, 12345);
+ g_assert_cmpuint(res, ==, 12345);
g_assert_true(endptr == str + 6);
res = 0xbaadf00d;
err = qemu_strtosz(str, NULL, &res);
g_assert_cmpint(err, ==, 0);
- g_assert_cmpint(res, ==, 12345);
+ g_assert_cmpuint(res, ==, 12345);
str = "9007199254740991"; /* 2^53-1 */
endptr = str;
res = 0xbaadf00d;
err = qemu_strtosz(str, &endptr, &res);
g_assert_cmpint(err, ==, 0);
- g_assert_cmpint(res, ==, 0x1fffffffffffff);
+ g_assert_cmphex(res, ==, 0x1fffffffffffffULL);
g_assert_true(endptr == str + 16);
str = "9007199254740992"; /* 2^53 */
res = 0xbaadf00d;
err = qemu_strtosz(str, &endptr, &res);
g_assert_cmpint(err, ==, 0);
- g_assert_cmpint(res, ==, 0x20000000000000);
+ g_assert_cmphex(res, ==, 0x20000000000000ULL);
g_assert_true(endptr == str + 16);
str = "9007199254740993"; /* 2^53+1 */
res = 0xbaadf00d;
err = qemu_strtosz(str, &endptr, &res);
g_assert_cmpint(err, ==, 0);
- g_assert_cmpint(res, ==, 0x20000000000001);
+ g_assert_cmphex(res, ==, 0x20000000000001ULL);
g_assert_true(endptr == str + 16);
str = "18446744073709549568"; /* 0xfffffffffffff800 (53 msbs set) */
res = 0xbaadf00d;
err = qemu_strtosz(str, &endptr, &res);
g_assert_cmpint(err, ==, 0);
- g_assert_cmpint(res, ==, 0xfffffffffffff800);
+ g_assert_cmphex(res, ==, 0xfffffffffffff800ULL);
g_assert_true(endptr == str + 20);
str = "18446744073709550591"; /* 0xfffffffffffffbff */
res = 0xbaadf00d;
err = qemu_strtosz(str, &endptr, &res);
g_assert_cmpint(err, ==, 0);
- g_assert_cmpint(res, ==, 0xfffffffffffffbff);
+ g_assert_cmphex(res, ==, 0xfffffffffffffbffULL);
g_assert_true(endptr == str + 20);
str = "18446744073709551615"; /* 0xffffffffffffffff */
res = 0xbaadf00d;
err = qemu_strtosz(str, &endptr, &res);
g_assert_cmpint(err, ==, 0);
- g_assert_cmpint(res, ==, 0xffffffffffffffff);
+ g_assert_cmphex(res, ==, 0xffffffffffffffffULL);
g_assert_true(endptr == str + 20);
}
res = 0xbaadf00d;
err = qemu_strtosz(str, &endptr, &res);
g_assert_cmpint(err, ==, 0);
- g_assert_cmpint(res, ==, 0);
+ g_assert_cmpuint(res, ==, 0);
g_assert_true(endptr == str + 3);
str = "0xab";
res = 0xbaadf00d;
err = qemu_strtosz(str, &endptr, &res);
g_assert_cmpint(err, ==, 0);
- g_assert_cmpint(res, ==, 171);
+ g_assert_cmpuint(res, ==, 171);
g_assert_true(endptr == str + 4);
str = "0xae";
res = 0xbaadf00d;
err = qemu_strtosz(str, &endptr, &res);
g_assert_cmpint(err, ==, 0);
- g_assert_cmpint(res, ==, 174);
+ g_assert_cmpuint(res, ==, 174);
g_assert_true(endptr == str + 4);
}
res = 0xbaadf00d;
err = qemu_strtosz_MiB(none, &endptr, &res);
g_assert_cmpint(err, ==, 0);
- g_assert_cmpint(res, ==, MiB);
+ g_assert_cmpuint(res, ==, MiB);
g_assert_true(endptr == none + 1);
endptr = NULL;
res = 0xbaadf00d;
err = qemu_strtosz(b, &endptr, &res);
g_assert_cmpint(err, ==, 0);
- g_assert_cmpint(res, ==, 1);
+ g_assert_cmpuint(res, ==, 1);
g_assert_true(endptr == b + 2);
endptr = NULL;
res = 0xbaadf00d;
err = qemu_strtosz(k, &endptr, &res);
g_assert_cmpint(err, ==, 0);
- g_assert_cmpint(res, ==, KiB);
+ g_assert_cmpuint(res, ==, KiB);
g_assert_true(endptr == k + 2);
endptr = NULL;
res = 0xbaadf00d;
err = qemu_strtosz(m, &endptr, &res);
g_assert_cmpint(err, ==, 0);
- g_assert_cmpint(res, ==, MiB);
+ g_assert_cmpuint(res, ==, MiB);
g_assert_true(endptr == m + 2);
endptr = NULL;
res = 0xbaadf00d;
err = qemu_strtosz(g, &endptr, &res);
g_assert_cmpint(err, ==, 0);
- g_assert_cmpint(res, ==, GiB);
+ g_assert_cmpuint(res, ==, GiB);
g_assert_true(endptr == g + 2);
endptr = NULL;
res = 0xbaadf00d;
err = qemu_strtosz(t, &endptr, &res);
g_assert_cmpint(err, ==, 0);
- g_assert_cmpint(res, ==, TiB);
+ g_assert_cmpuint(res, ==, TiB);
g_assert_true(endptr == t + 2);
endptr = NULL;
res = 0xbaadf00d;
err = qemu_strtosz(p, &endptr, &res);
g_assert_cmpint(err, ==, 0);
- g_assert_cmpint(res, ==, PiB);
+ g_assert_cmpuint(res, ==, PiB);
g_assert_true(endptr == p + 2);
endptr = NULL;
res = 0xbaadf00d;
err = qemu_strtosz(e, &endptr, &res);
g_assert_cmpint(err, ==, 0);
- g_assert_cmpint(res, ==, EiB);
+ g_assert_cmpuint(res, ==, EiB);
g_assert_true(endptr == e + 2);
}
res = 0xbaadf00d;
err = qemu_strtosz(str, &endptr, &res);
g_assert_cmpint(err, ==, 0);
- g_assert_cmpint(res, ==, EiB / 2);
+ g_assert_cmpuint(res, ==, EiB / 2);
g_assert_true(endptr == str + 4);
/* For convenience, a fraction of 0 is tolerated even on bytes */
res = 0xbaadf00d;
err = qemu_strtosz(str, &endptr, &res);
g_assert_cmpint(err, ==, 0);
- g_assert_cmpint(res, ==, 1);
+ g_assert_cmpuint(res, ==, 1);
g_assert_true(endptr == str + 4);
/* An empty fraction is tolerated */
res = 0xbaadf00d;
err = qemu_strtosz(str, &endptr, &res);
g_assert_cmpint(err, ==, 0);
- g_assert_cmpint(res, ==, 1024);
+ g_assert_cmpuint(res, ==, 1024);
g_assert_true(endptr == str + 3);
/* For convenience, we permit values that are not byte-exact */
res = 0xbaadf00d;
err = qemu_strtosz(str, &endptr, &res);
g_assert_cmpint(err, ==, 0);
- g_assert_cmpint(res, ==, (uint64_t) (12.345 * MiB + 0.5));
+ g_assert_cmpuint(res, ==, (uint64_t) (12.345 * MiB + 0.5));
g_assert_true(endptr == str + 7);
}
endptr = NULL;
err = qemu_strtosz(str, &endptr, &res);
g_assert_cmpint(err, ==, -EINVAL);
- g_assert_cmpint(res, ==, 0xbaadf00d);
+ g_assert_cmphex(res, ==, 0xbaadf00d);
g_assert_true(endptr == str);
str = " \t ";
endptr = NULL;
err = qemu_strtosz(str, &endptr, &res);
g_assert_cmpint(err, ==, -EINVAL);
- g_assert_cmpint(res, ==, 0xbaadf00d);
+ g_assert_cmphex(res, ==, 0xbaadf00d);
g_assert_true(endptr == str);
str = "crap";
endptr = NULL;
err = qemu_strtosz(str, &endptr, &res);
g_assert_cmpint(err, ==, -EINVAL);
- g_assert_cmpint(res, ==, 0xbaadf00d);
+ g_assert_cmphex(res, ==, 0xbaadf00d);
g_assert_true(endptr == str);
str = "inf";
endptr = NULL;
err = qemu_strtosz(str, &endptr, &res);
g_assert_cmpint(err, ==, -EINVAL);
- g_assert_cmpint(res, ==, 0xbaadf00d);
+ g_assert_cmphex(res, ==, 0xbaadf00d);
g_assert_true(endptr == str);
str = "NaN";
endptr = NULL;
err = qemu_strtosz(str, &endptr, &res);
g_assert_cmpint(err, ==, -EINVAL);
- g_assert_cmpint(res, ==, 0xbaadf00d);
+ g_assert_cmphex(res, ==, 0xbaadf00d);
g_assert_true(endptr == str);
/* Fractional values require scale larger than bytes */
endptr = NULL;
err = qemu_strtosz(str, &endptr, &res);
g_assert_cmpint(err, ==, -EINVAL);
- g_assert_cmpint(res, ==, 0xbaadf00d);
+ g_assert_cmphex(res, ==, 0xbaadf00d);
g_assert_true(endptr == str);
str = "1.1";
endptr = NULL;
err = qemu_strtosz(str, &endptr, &res);
g_assert_cmpint(err, ==, -EINVAL);
- g_assert_cmpint(res, ==, 0xbaadf00d);
+ g_assert_cmphex(res, ==, 0xbaadf00d);
g_assert_true(endptr == str);
/* No floating point exponents */
endptr = NULL;
err = qemu_strtosz(str, &endptr, &res);
g_assert_cmpint(err, ==, -EINVAL);
- g_assert_cmpint(res, ==, 0xbaadf00d);
+ g_assert_cmphex(res, ==, 0xbaadf00d);
g_assert_true(endptr == str);
str = "1.5E+0k";
endptr = NULL;
err = qemu_strtosz(str, &endptr, &res);
g_assert_cmpint(err, ==, -EINVAL);
- g_assert_cmpint(res, ==, 0xbaadf00d);
+ g_assert_cmphex(res, ==, 0xbaadf00d);
g_assert_true(endptr == str);
/* No hex fractions */
endptr = NULL;
err = qemu_strtosz(str, &endptr, &res);
g_assert_cmpint(err, ==, -EINVAL);
- g_assert_cmpint(res, ==, 0xbaadf00d);
+ g_assert_cmphex(res, ==, 0xbaadf00d);
g_assert_true(endptr == str);
/* No suffixes */
endptr = NULL;
err = qemu_strtosz(str, &endptr, &res);
g_assert_cmpint(err, ==, -EINVAL);
- g_assert_cmpint(res, ==, 0xbaadf00d);
+ g_assert_cmphex(res, ==, 0xbaadf00d);
g_assert_true(endptr == str);
/* No negative values */
endptr = NULL;
err = qemu_strtosz(str, &endptr, &res);
g_assert_cmpint(err, ==, -EINVAL);
- g_assert_cmpint(res, ==, 0xbaadf00d);
+ g_assert_cmphex(res, ==, 0xbaadf00d);
g_assert_true(endptr == str);
str = "-1";
endptr = NULL;
err = qemu_strtosz(str, &endptr, &res);
g_assert_cmpint(err, ==, -EINVAL);
- g_assert_cmpint(res, ==, 0xbaadf00d);
+ g_assert_cmphex(res, ==, 0xbaadf00d);
g_assert_true(endptr == str);
}
res = 0xbaadf00d;
err = qemu_strtosz_MiB(str, &endptr, &res);
g_assert_cmpint(err, ==, 0);
- g_assert_cmpint(res, ==, 123 * MiB);
+ g_assert_cmpuint(res, ==, 123 * MiB);
g_assert_true(endptr == str + 3);
res = 0xbaadf00d;
err = qemu_strtosz(str, NULL, &res);
g_assert_cmpint(err, ==, -EINVAL);
- g_assert_cmpint(res, ==, 0xbaadf00d);
+ g_assert_cmphex(res, ==, 0xbaadf00d);
str = "1kiB";
endptr = NULL;
res = 0xbaadf00d;
err = qemu_strtosz(str, &endptr, &res);
g_assert_cmpint(err, ==, 0);
- g_assert_cmpint(res, ==, 1024);
+ g_assert_cmpuint(res, ==, 1024);
g_assert_true(endptr == str + 2);
res = 0xbaadf00d;
err = qemu_strtosz(str, NULL, &res);
g_assert_cmpint(err, ==, -EINVAL);
- g_assert_cmpint(res, ==, 0xbaadf00d);
+ g_assert_cmphex(res, ==, 0xbaadf00d);
str = "0x";
endptr = NULL;
res = 0xbaadf00d;
err = qemu_strtosz(str, &endptr, &res);
g_assert_cmpint(err, ==, 0);
- g_assert_cmpint(res, ==, 0);
+ g_assert_cmpuint(res, ==, 0);
g_assert_true(endptr == str + 1);
res = 0xbaadf00d;
err = qemu_strtosz(str, NULL, &res);
g_assert_cmpint(err, ==, -EINVAL);
- g_assert_cmpint(res, ==, 0xbaadf00d);
+ g_assert_cmphex(res, ==, 0xbaadf00d);
str = "0.NaN";
endptr = NULL;
res = 0xbaadf00d;
err = qemu_strtosz(str, &endptr, &res);
g_assert_cmpint(err, ==, 0);
- g_assert_cmpint(res, ==, 0);
+ g_assert_cmpuint(res, ==, 0);
g_assert_true(endptr == str + 2);
res = 0xbaadf00d;
err = qemu_strtosz(str, NULL, &res);
g_assert_cmpint(err, ==, -EINVAL);
- g_assert_cmpint(res, ==, 0xbaadf00d);
+ g_assert_cmphex(res, ==, 0xbaadf00d);
str = "123-45";
endptr = NULL;
res = 0xbaadf00d;
err = qemu_strtosz(str, &endptr, &res);
g_assert_cmpint(err, ==, 0);
- g_assert_cmpint(res, ==, 123);
+ g_assert_cmpuint(res, ==, 123);
g_assert_true(endptr == str + 3);
res = 0xbaadf00d;
err = qemu_strtosz(str, NULL, &res);
g_assert_cmpint(err, ==, -EINVAL);
- g_assert_cmpint(res, ==, 0xbaadf00d);
+ g_assert_cmphex(res, ==, 0xbaadf00d);
}
static void test_qemu_strtosz_erange(void)
endptr = NULL;
err = qemu_strtosz(str, &endptr, &res);
g_assert_cmpint(err, ==, -ERANGE);
- g_assert_cmpint(res, ==, 0xbaadf00d);
+ g_assert_cmphex(res, ==, 0xbaadf00d);
g_assert_true(endptr == str + 20);
str = "20E";
endptr = NULL;
err = qemu_strtosz(str, &endptr, &res);
g_assert_cmpint(err, ==, -ERANGE);
- g_assert_cmpint(res, ==, 0xbaadf00d);
+ g_assert_cmphex(res, ==, 0xbaadf00d);
g_assert_true(endptr == str + 3);
}
res = 0xbaadf00d;
err = qemu_strtosz_metric(str, &endptr, &res);
g_assert_cmpint(err, ==, 0);
- g_assert_cmpint(res, ==, 12345000);
+ g_assert_cmpuint(res, ==, 12345000);
g_assert_true(endptr == str + 6);
str = "12.345M";
res = 0xbaadf00d;
err = qemu_strtosz_metric(str, &endptr, &res);
g_assert_cmpint(err, ==, 0);
- g_assert_cmpint(res, ==, 12345000);
+ g_assert_cmpuint(res, ==, 12345000);
g_assert_true(endptr == str + 7);
}