[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Qemu-devel] [PATCH 07/11] qapi: add QMP input test for large integers
From: |
Michael Roth |
Subject: |
[Qemu-devel] [PATCH 07/11] qapi: add QMP input test for large integers |
Date: |
Fri, 10 May 2013 17:46:06 -0500 |
Large integers previously got capped to LLONG_MAX/LLONG_MIN so we could
store them as int64_t. This could lead to silent errors occuring.
Now, we use a double to handle these cases.
Add a test to confirm that QMPInputVisitor handles this as expected if
we're expected an integer value: errors for out of range integer values
that got promoted to doubles in this fashion.
Signed-off-by: Michael Roth <address@hidden>
---
tests/test-qmp-input-visitor.c | 20 ++++++++++++++++++++
1 file changed, 20 insertions(+)
diff --git a/tests/test-qmp-input-visitor.c b/tests/test-qmp-input-visitor.c
index 955a4c0..b308cf9 100644
--- a/tests/test-qmp-input-visitor.c
+++ b/tests/test-qmp-input-visitor.c
@@ -75,6 +75,24 @@ static void test_visitor_in_int(TestInputVisitorData *data,
g_assert_cmpint(res, ==, value);
}
+static void test_visitor_in_int_overflow(TestInputVisitorData *data,
+ const void *unused)
+{
+ int64_t res = 0;
+ Error *errp = NULL;
+ Visitor *v;
+
+ /* this will overflow a Qint/int64, so should be deserialized into
+ * a QFloat/double field instead, leading to an error if we pass it
+ * to visit_type_int. confirm this.
+ */
+ v = visitor_input_test_init(data, "%f", DBL_MAX);
+
+ visit_type_int(v, &res, NULL, &errp);
+ g_assert(error_is_set(&errp));
+ error_free(errp);
+}
+
static void test_visitor_in_bool(TestInputVisitorData *data,
const void *unused)
{
@@ -292,6 +310,8 @@ int main(int argc, char **argv)
input_visitor_test_add("/visitor/input/int",
&in_visitor_data, test_visitor_in_int);
+ input_visitor_test_add("/visitor/input/int_overflow",
+ &in_visitor_data, test_visitor_in_int_overflow);
input_visitor_test_add("/visitor/input/bool",
&in_visitor_data, test_visitor_in_bool);
input_visitor_test_add("/visitor/input/number",
--
1.7.9.5
- [Qemu-devel] [PATCH v3 00/11] qapi: add support for lists of native types, Michael Roth, 2013/05/10
- [Qemu-devel] [PATCH 01/11] qapi: qapi-types.py, native list support, Michael Roth, 2013/05/10
- [Qemu-devel] [PATCH 02/11] qapi: qapi-visit.py, fix list handling for union types, Michael Roth, 2013/05/10
- [Qemu-devel] [PATCH 03/11] qapi: qapi-visit.py, native list support, Michael Roth, 2013/05/10
- [Qemu-devel] [PATCH 04/11] qapi: enable generation of native list code, Michael Roth, 2013/05/10
- [Qemu-devel] [PATCH 05/11] qapi: fix leak in unit tests, Michael Roth, 2013/05/10
- [Qemu-devel] [PATCH 06/11] json-parser: fix handling of large whole number values, Michael Roth, 2013/05/10
- [Qemu-devel] [PATCH 07/11] qapi: add QMP input test for large integers,
Michael Roth <=
- [Qemu-devel] [PATCH 08/11] qapi: fix visitor serialization tests for numbers/doubles, Michael Roth, 2013/05/10
- [Qemu-devel] [PATCH 09/11] qapi: add native list coverage for visitor serialization tests, Michael Roth, 2013/05/10
- [Qemu-devel] [PATCH 10/11] qapi: add native list coverage for QMP output visitor tests, Michael Roth, 2013/05/10
- [Qemu-devel] [PATCH 11/11] qapi: add native list coverage for QMP input visitor tests, Michael Roth, 2013/05/10
- Re: [Qemu-devel] [PATCH v3 00/11] qapi: add support for lists of native types, Laszlo Ersek, 2013/05/13
- Re: [Qemu-devel] [PATCH v3 00/11] qapi: add support for lists of native types, Amos Kong, 2013/05/13
- Re: [Qemu-devel] [PATCH v3 00/11] qapi: add support for lists of native types, Luiz Capitulino, 2013/05/15