From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from eggs.gnu.org ([2001:4830:134:3::10]:41493) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1WJeXS-0004fk-RV for qemu-devel@nongnu.org; Sat, 01 Mar 2014 02:40:55 -0500 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1WJeXO-0000tK-AL for qemu-devel@nongnu.org; Sat, 01 Mar 2014 02:40:50 -0500 Received: from mx1.redhat.com ([209.132.183.28]:18978) by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1WJeXO-0000sy-0s for qemu-devel@nongnu.org; Sat, 01 Mar 2014 02:40:46 -0500 From: Markus Armbruster Date: Sat, 1 Mar 2014 08:40:26 +0100 Message-Id: <1393659639-12959-1-git-send-email-armbru@redhat.com> Subject: [Qemu-devel] [PATCH v3 00/13] qapi: Test coverage & clean up generated code List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , To: qemu-devel@nongnu.org Cc: kwolf@redhat.com, mdroth@linux.vnet.ibm.com, lcapitulino@redhat.com, aliguori@amazon.com, pbonzini@redhat.com Coverity is unhappy with the generated code. Nothing serious, just heaps of valid DEADCODE defects topped off with a few bogus FORWARD_NULL defects. I had a look at the generator, and decided I don't want to mess with it without decent test coverage. Unfortunately, a few features have been added without tests. My first seven patches make the tests catch up. tests/qapi-schema/qapi-schema-test.json now covers all mcgen() in scripts/qapi*.py, except for a few in qapi-commands.py that are conditional on -m. The next four patches clean up the generated code. I also reviewed null checks in visitor implementations. The final two patches address the issues I found there. v3: * Trivially rebased v2: * Previously separate patch "qapi: Fix licensing of scripts" revised and included as "[PATCH v2 08/13] qapi: Fix licensing of scripts" * Style cleanups * New PATCH 12/13 and 13/13 Markus Armbruster (13): tests/qapi-schema: Actually check successful QMP command response tests/qapi-schema: Cover optional command arguments tests/qapi-schema: Cover simple argument types tests/qapi-schema: Cover anonymous union types tests/qapi-schema: Cover complex types with base tests/qapi-schema: Cover union types with base tests/qapi-schema: Cover flat union types qapi: Fix licensing of scripts qapi: Drop nonsensical header guard in generated qapi-visit.c qapi: Drop unused code in qapi-commands.py qapi: Clean up null checking in generated visitors qapi: Clean up superfluous null check in qapi_dealloc_type_str() qapi: Add missing null check to opts_start_struct() qapi/opts-visitor.c | 4 +- qapi/qapi-dealloc-visitor.c | 4 +- scripts/qapi-commands.py | 24 +--------- scripts/qapi-types.py | 4 +- scripts/qapi-visit.py | 20 ++++----- scripts/qapi.py | 4 +- tests/qapi-schema/qapi-schema-test.json | 24 +++++++++- tests/qapi-schema/qapi-schema-test.out | 19 +++++--- tests/test-qmp-commands.c | 78 +++++++++++++++++++++++++++------ tests/test-qmp-input-strict.c | 69 ++++++++++++++++++++++++++++- tests/test-qmp-input-visitor.c | 45 +++++++++++++++++-- tests/test-qmp-output-visitor.c | 67 ++++++++++++++++++++++++++-- tests/test-visitor-serialization.c | 14 +++--- 13 files changed, 299 insertions(+), 77 deletions(-) -- 1.8.1.4