[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Qemu-devel] [PULL 06/12] qapi: add QMP input test for large integers
From: |
Luiz Capitulino |
Subject: |
[Qemu-devel] [PULL 06/12] qapi: add QMP input test for large integers |
Date: |
Thu, 23 May 2013 14:20:26 -0400 |
From: Michael Roth <address@hidden>
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>
Reviewed-by: Laszlo Ersek <address@hidden>
Reviewed-by: Amos Kong <address@hidden>
Signed-off-by: Luiz Capitulino <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.8.1.4
- [Qemu-devel] [PULL 00/12] QMP queue, Luiz Capitulino, 2013/05/23
- [Qemu-devel] [PULL 01/12] qapi: qapi-types.py, native list support, Luiz Capitulino, 2013/05/23
- [Qemu-devel] [PULL 02/12] qapi: qapi-visit.py, fix list handling for union types, Luiz Capitulino, 2013/05/23
- [Qemu-devel] [PULL 03/12] qapi: qapi-visit.py, native list support, Luiz Capitulino, 2013/05/23
- [Qemu-devel] [PULL 05/12] json-parser: fix handling of large whole number values, Luiz Capitulino, 2013/05/23
- [Qemu-devel] [PULL 06/12] qapi: add QMP input test for large integers,
Luiz Capitulino <=
- [Qemu-devel] [PULL 04/12] qapi: enable generation of native list code, Luiz Capitulino, 2013/05/23
- [Qemu-devel] [PULL 07/12] qapi: fix visitor serialization tests for numbers/doubles, Luiz Capitulino, 2013/05/23
- [Qemu-devel] [PULL 12/12] monitor: allow to disable the default monitor, Luiz Capitulino, 2013/05/23
- [Qemu-devel] [PULL 08/12] qapi: add native list coverage for visitor serialization tests, Luiz Capitulino, 2013/05/23
- [Qemu-devel] [PULL 11/12] ui/input.c: replace magic numbers with macros, Luiz Capitulino, 2013/05/23
- [Qemu-devel] [PULL 10/12] qapi: add native list coverage for QMP input visitor tests, Luiz Capitulino, 2013/05/23
- [Qemu-devel] [PULL 09/12] qapi: add native list coverage for QMP output visitor tests, Luiz Capitulino, 2013/05/23