qemu-devel.nongnu.org archive mirror
 help / color / mirror / Atom feed
* [Qemu-devel] [PATCH v4 0/3] Fix some qapi assert()
@ 2016-09-22 20:39 Marc-André Lureau
  2016-09-22 20:39 ` [Qemu-devel] [PATCH v4 1/3] qmp: fix object-add assert() without props Marc-André Lureau
                   ` (4 more replies)
  0 siblings, 5 replies; 29+ messages in thread
From: Marc-André Lureau @ 2016-09-22 20:39 UTC (permalink / raw)
  To: qemu-devel
  Cc: paolo.bonzini, berrange, qemu-stable, eblake, armbru,
	Marc-André Lureau

Hi,

The following series fixes 2 triggerable asserts in qmp code:
- object-add assert() without props
- input visitor may assert() on missing parameter

v4:
- add copyright blurb in test
- rename variable class->klass
- update tests/.gitignore to ignore the new executable
- add r-b tag

v3:
- fix docker build
- rename qemu-qmp-test -> test-qemu-qmp
- add r-b tags

Marc-André Lureau (3):
  qmp: fix object-add assert() without props
  qapi: fix crash when a parameter is missing
  tests: start generic qemu-qmp tests

 qapi/qmp-input-visitor.c | 11 ++++++++
 qmp.c                    |  8 ++++--
 tests/test-qemu-qmp.c    | 69 ++++++++++++++++++++++++++++++++++++++++++++++++
 tests/Makefile.include   |  2 ++
 tests/.gitignore         |  1 +
 5 files changed, 89 insertions(+), 2 deletions(-)
 create mode 100644 tests/test-qemu-qmp.c

-- 
2.10.0

^ permalink raw reply	[flat|nested] 29+ messages in thread
* [Qemu-devel] [PATCH 2.5/3] tests/test-qmp-input-strict: Cover missing struct members
@ 2016-10-04 15:22 Markus Armbruster
  2016-10-04 15:25 ` Markus Armbruster
  2016-10-04 16:01 ` no-reply
  0 siblings, 2 replies; 29+ messages in thread
From: Markus Armbruster @ 2016-10-04 15:22 UTC (permalink / raw)
  To: qemu-devel; +Cc: marcandre.lureau, mdroth

These tests would have caught the bug fixed by the previous commit.

Signed-off-by: Markus Armbruster <armbru@redhat.com>
---
 tests/test-qmp-input-strict.c | 46 +++++++++++++++++++++++++++++++++++++++++++
 1 file changed, 46 insertions(+)

diff --git a/tests/test-qmp-input-strict.c b/tests/test-qmp-input-strict.c
index 814550a..d87f8b8 100644
--- a/tests/test-qmp-input-strict.c
+++ b/tests/test-qmp-input-strict.c
@@ -193,6 +193,50 @@ static void test_validate_fail_struct_nested(TestInputVisitorData *data,
     g_assert(!udp);
 }
 
+static void test_validate_fail_struct_missing(TestInputVisitorData *data,
+                                              const void *unused)
+{
+    Error *err = NULL;
+    Visitor *v;
+    QObject *any;
+    GenericAlternate *alt;
+    bool present;
+    int en;
+    int64_t i64;
+    uint32_t u32;
+    int8_t i8;
+    char *str;
+    double dbl;
+
+    v = validate_test_init(data, "{}");
+    visit_start_struct(v, NULL, NULL, 0, &error_abort);
+    visit_start_struct(v, "struct", NULL, 0, &err);
+    error_free_or_abort(&err);
+    visit_start_list(v, "list", NULL, 0, &err);
+    error_free_or_abort(&err);
+    visit_start_alternate(v, "alternate", &alt, sizeof(*alt), false, &err);
+    error_free_or_abort(&err);
+    visit_optional(v, "optional", &present);
+    g_assert(!present);
+    visit_type_enum(v, "enum", &en, EnumOne_lookup, &err);
+    error_free_or_abort(&err);
+    visit_type_int(v, "i64", &i64, &err);
+    error_free_or_abort(&err);
+    visit_type_uint32(v, "u32", &u32, &err);
+    error_free_or_abort(&err);
+    visit_type_int8(v, "i8", &i8, &err);
+    error_free_or_abort(&err);
+    visit_type_str(v, "i8", &str, &err);
+    error_free_or_abort(&err);
+    visit_type_number(v, "dbl", &dbl, &err);
+    error_free_or_abort(&err);
+    visit_type_any(v, "any", &any, &err);
+    error_free_or_abort(&err);
+    visit_type_null(v, "null", &err);
+    error_free_or_abort(&err);
+    visit_end_struct(v, NULL);
+}
+
 static void test_validate_fail_list(TestInputVisitorData *data,
                                      const void *unused)
 {
@@ -316,6 +360,8 @@ int main(int argc, char **argv)
                       &testdata, test_validate_fail_struct);
     validate_test_add("/visitor/input-strict/fail/struct-nested",
                       &testdata, test_validate_fail_struct_nested);
+    validate_test_add("/visitor/input-strict/fail/struct-missing",
+                      &testdata, test_validate_fail_struct_missing);
     validate_test_add("/visitor/input-strict/fail/list",
                       &testdata, test_validate_fail_list);
     validate_test_add("/visitor/input-strict/fail/union-flat",
-- 
2.5.5

^ permalink raw reply related	[flat|nested] 29+ messages in thread

end of thread, other threads:[~2016-10-10 13:14 UTC | newest]

Thread overview: 29+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2016-09-22 20:39 [Qemu-devel] [PATCH v4 0/3] Fix some qapi assert() Marc-André Lureau
2016-09-22 20:39 ` [Qemu-devel] [PATCH v4 1/3] qmp: fix object-add assert() without props Marc-André Lureau
2016-09-23  6:52   ` Xiao Long Jiang
2016-09-29 15:23     ` Markus Armbruster
2016-10-05 10:27       ` Christian Borntraeger
2016-10-10  6:49       ` Xiao Long Jiang
2016-10-05  7:47   ` Markus Armbruster
2016-09-22 20:39 ` [Qemu-devel] [PATCH v4 2/3] qapi: fix crash when a parameter is missing Marc-André Lureau
2016-09-29 15:42   ` Markus Armbruster
2016-10-05  8:18     ` Markus Armbruster
2016-10-05  8:34       ` Marc-André Lureau
2016-09-22 20:39 ` [Qemu-devel] [PATCH v4 3/3] tests: start generic qemu-qmp tests Marc-André Lureau
2016-09-29 16:28   ` Markus Armbruster
2016-10-05  9:56   ` Markus Armbruster
2016-10-05 10:16     ` Marc-André Lureau
2016-10-05 12:35       ` Markus Armbruster
2016-10-05 13:02         ` Marc-André Lureau
2016-10-05 14:38           ` Markus Armbruster
2016-10-05 15:14             ` Marc-André Lureau
2016-10-06 13:26               ` Markus Armbruster
2016-10-07 18:15   ` Markus Armbruster
2016-10-10  8:24     ` Marc-André Lureau
2016-10-10 13:14       ` Markus Armbruster
2016-10-04 15:23 ` [Qemu-devel] [PATCH 2.5/3] tests/test-qmp-input-strict: Cover missing struct members Markus Armbruster
2016-10-04 16:34   ` no-reply
2016-10-06 13:26 ` [Qemu-devel] [PATCH v4 0/3] Fix some qapi assert() Markus Armbruster
  -- strict thread matches above, loose matches on Subject: below --
2016-10-04 15:22 [Qemu-devel] [PATCH 2.5/3] tests/test-qmp-input-strict: Cover missing struct members Markus Armbruster
2016-10-04 15:25 ` Markus Armbruster
2016-10-04 16:01 ` no-reply

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).