[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Qemu-devel] [PATCHv50/3] qapi: Allow modularization of QAPI schema file
From: |
Lluís Vilanova |
Subject: |
[Qemu-devel] [PATCHv50/3] qapi: Allow modularization of QAPI schema files |
Date: |
Sun, 30 Mar 2014 22:35:09 +0200 |
User-agent: |
StGit/0.17.1-dirty |
Adds an include primitive to the syntax of QAPI schema files, allowing these to
be modularized into multiple per-topic files in the future.
Signed-off-by: Lluís Vilanova <address@hidden>
---
Changes in v5:
* Rebase on b3706fa.
* Remove 'error_base' argument in 'parse_schema'; fix test checks instead.
* Implement include directive using JSON syntax.
Changes in v4:
* Rebase on 3e890c7.
* Minor cosmetic changes.
* Fix recording of included files in case of a cycle error.
* Add a more complex include cycle test.
Changes in v3:
* Fix documentation examples regarding how the input file is passed to the
scripts.
* Add documentation for the 'include' directive.
* Detect inclusion loops.
* Fix "tests/qapi-schema/test-qapi.py" and "tests/Makefile" to use an explicit
input file when running tests.
* Fix QAPI tests to cope with an explicit input file.
* Add tests for the "include" directive.
Changes in v2:
* Change the scripts to use an explicit input file instead of standard input.
* Fix "tests/Makefile" to use the new argument.
* Get the input directory for the "include" directive from the input file
dirname.
Lluís Vilanova (3):
qapi: Use an explicit input file
qapi: Add a primitive to include other files from a QAPI schema file
qapi: Add tests for the "include" directive
Makefile | 24 +++++++++---
docs/qapi-code-gen.txt | 11 +++++-
scripts/qapi-commands.py | 10 ++++-
scripts/qapi-types.py | 9 +++--
scripts/qapi-visit.py | 9 +++--
scripts/qapi.py | 40 +++++++++++++++++---
tests/Makefile | 19 +++++++---
tests/qapi-schema/duplicate-key.err | 2 +
.../qapi-schema/flat-union-invalid-branch-key.err | 2 +
.../flat-union-invalid-discriminator.err | 2 +
tests/qapi-schema/flat-union-no-base.err | 2 +
.../flat-union-string-discriminator.err | 2 +
tests/qapi-schema/funny-char.err | 2 +
tests/qapi-schema/include-cycle-b.json | 1 +
tests/qapi-schema/include-cycle-c.json | 1 +
tests/qapi-schema/include-cycle.err | 1 +
tests/qapi-schema/include-cycle.exit | 1 +
tests/qapi-schema/include-cycle.json | 1 +
tests/qapi-schema/include-cycle.out | 0
tests/qapi-schema/include-nested-err.err | 1 +
tests/qapi-schema/include-nested-err.exit | 1 +
tests/qapi-schema/include-nested-err.json | 1 +
tests/qapi-schema/include-nested-err.out | 0
tests/qapi-schema/include-no-file.err | 1 +
tests/qapi-schema/include-no-file.exit | 1 +
tests/qapi-schema/include-no-file.json | 1 +
tests/qapi-schema/include-no-file.out | 0
tests/qapi-schema/include-self-cycle.err | 1 +
tests/qapi-schema/include-self-cycle.exit | 1 +
tests/qapi-schema/include-self-cycle.json | 1 +
tests/qapi-schema/include-self-cycle.out | 0
tests/qapi-schema/include-simple-sub.json | 2 +
tests/qapi-schema/include-simple.err | 0
tests/qapi-schema/include-simple.exit | 1 +
tests/qapi-schema/include-simple.json | 1 +
tests/qapi-schema/include-simple.out | 3 ++
tests/qapi-schema/missing-colon.err | 2 +
tests/qapi-schema/missing-comma-list.err | 2 +
tests/qapi-schema/missing-comma-object.err | 2 +
tests/qapi-schema/non-objects.err | 2 +
tests/qapi-schema/quoted-structural-chars.err | 2 +
tests/qapi-schema/test-qapi.py | 3 +-
tests/qapi-schema/trailing-comma-list.err | 2 +
tests/qapi-schema/trailing-comma-object.err | 2 +
tests/qapi-schema/unclosed-list.err | 2 +
tests/qapi-schema/unclosed-object.err | 2 +
tests/qapi-schema/unclosed-string.err | 2 +
tests/qapi-schema/union-invalid-base.err | 2 +
48 files changed, 133 insertions(+), 47 deletions(-)
create mode 100644 tests/qapi-schema/include-cycle-b.json
create mode 100644 tests/qapi-schema/include-cycle-c.json
create mode 100644 tests/qapi-schema/include-cycle.err
create mode 100644 tests/qapi-schema/include-cycle.exit
create mode 100644 tests/qapi-schema/include-cycle.json
create mode 100644 tests/qapi-schema/include-cycle.out
create mode 100644 tests/qapi-schema/include-nested-err.err
create mode 100644 tests/qapi-schema/include-nested-err.exit
create mode 100644 tests/qapi-schema/include-nested-err.json
create mode 100644 tests/qapi-schema/include-nested-err.out
create mode 100644 tests/qapi-schema/include-no-file.err
create mode 100644 tests/qapi-schema/include-no-file.exit
create mode 100644 tests/qapi-schema/include-no-file.json
create mode 100644 tests/qapi-schema/include-no-file.out
create mode 100644 tests/qapi-schema/include-self-cycle.err
create mode 100644 tests/qapi-schema/include-self-cycle.exit
create mode 100644 tests/qapi-schema/include-self-cycle.json
create mode 100644 tests/qapi-schema/include-self-cycle.out
create mode 100644 tests/qapi-schema/include-simple-sub.json
create mode 100644 tests/qapi-schema/include-simple.err
create mode 100644 tests/qapi-schema/include-simple.exit
create mode 100644 tests/qapi-schema/include-simple.json
create mode 100644 tests/qapi-schema/include-simple.out
To: address@hidden
Cc: Luiz Capitulino <address@hidden>
Cc: Markus Armbruster <address@hidden>
Cc: Eric Blake <address@hidden>
Cc: Benoît Canet <address@hidden>
- [Qemu-devel] [PATCHv50/3] qapi: Allow modularization of QAPI schema files,
Lluís Vilanova <=