mirror of https://gitee.com/openkylin/qemu.git
test-qobject-input-visitor: Cover visit_type_uint64()
The new test demonstrates known bugs: integers between INT64_MAX+1 and UINT64_MAX rejected, and integers between INT64_MIN and -1 are accepted modulo 2^64. Signed-off-by: Markus Armbruster <armbru@redhat.com> Message-Id: <1490118290-6133-1-git-send-email-armbru@redhat.com> Reviewed-by: Eric Blake <eblake@redhat.com>
This commit is contained in:
parent
658ae5a7b9
commit
4bc0c94da4
|
@ -116,6 +116,34 @@ static void test_visitor_in_int(TestInputVisitorData *data,
|
|||
g_assert_cmpint(res, ==, value);
|
||||
}
|
||||
|
||||
static void test_visitor_in_uint(TestInputVisitorData *data,
|
||||
const void *unused)
|
||||
{
|
||||
Error *err = NULL;
|
||||
uint64_t res = 0;
|
||||
int value = 42;
|
||||
Visitor *v;
|
||||
|
||||
v = visitor_input_test_init(data, "%d", value);
|
||||
|
||||
visit_type_uint64(v, NULL, &res, &error_abort);
|
||||
g_assert_cmpuint(res, ==, (uint64_t)value);
|
||||
|
||||
/* BUG: value between INT64_MIN and -1 accepted modulo 2^64 */
|
||||
|
||||
v = visitor_input_test_init(data, "%d", -value);
|
||||
|
||||
visit_type_uint64(v, NULL, &res, &error_abort);
|
||||
g_assert_cmpuint(res, ==, (uint64_t)-value);
|
||||
|
||||
/* BUG: value between INT64_MAX+1 and UINT64_MAX rejected */
|
||||
|
||||
v = visitor_input_test_init(data, "18446744073709551574");
|
||||
|
||||
visit_type_uint64(v, NULL, &res, &err);
|
||||
error_free_or_abort(&err);
|
||||
}
|
||||
|
||||
static void test_visitor_in_int_overflow(TestInputVisitorData *data,
|
||||
const void *unused)
|
||||
{
|
||||
|
@ -1225,6 +1253,8 @@ int main(int argc, char **argv)
|
|||
|
||||
input_visitor_test_add("/visitor/input/int",
|
||||
NULL, test_visitor_in_int);
|
||||
input_visitor_test_add("/visitor/input/uint",
|
||||
NULL, test_visitor_in_uint);
|
||||
input_visitor_test_add("/visitor/input/int_overflow",
|
||||
NULL, test_visitor_in_int_overflow);
|
||||
input_visitor_test_add("/visitor/input/int_keyval",
|
||||
|
|
Loading…
Reference in New Issue