Please disregard this thread. I forgot to add the reviewed-by lines. Will resend later as v12.
Sorry, Lluis Lluís Vilanova writes: > 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 <vilan...@ac.upc.edu> > --- > Changes in v11: > * Rename "tests/include-after-err*" to "tests/include-before-err*" (Markus > Armbruster). > * Do not use too many line breaks in "test/Makefile" (Eric Blake). > Changes in v10: > * Various argument/variable name changes (Markus Armbruster). > * Fix path replacement command in error files when executing tests (Markus > Armbruster). > * Catch IOError and translate it to QAPIExprError (Markus Armbruster). > Changes in v9: > * Do not catch unknown exceptions in "tests/qapi-schema/test-qapi.py". > * Show primitive syntax in commit message. > * Do not pre-initialize 'input_file' in "scripts/qapi-commands.py". > * Use a one-liner for test error message checking. > Changes in v8: > * Do not show absolute paths in error messages. > Changes in v7: > * Add tests for relative path inclusion. > * Print inclusion path on all errors. > * Add test to ensure errors after an include have the correct context. > * Squash "qapi.py" changes and tests into a single patch. > * Add test for 'include' directive format. > * s/file path/file name/. > * s/included/include/. > * Move "-i" to the end of the command. > * Fix GNUism when using sed. > Changes in v6: > * Split changes for long-line breaking in makefiles. > * Put documentation on a separate section; reference recursiveness. > * Check (and test) for non-string include arguments (tanks to Benoît Canet). > 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 (4): > qapi: [trivial] Break long command lines > qapi: [trivial] Do not catch unknown exceptions in "test-qapi.py" > qapi: Use an explicit input file > qapi: Add a primitive to include other files from a QAPI schema file > Makefile | 24 +++++-- > docs/qapi-code-gen.txt | 15 ++++ > scripts/qapi-commands.py | 9 ++- > scripts/qapi-types.py | 9 ++- > scripts/qapi-visit.py | 9 ++- > scripts/qapi.py | 70 > ++++++++++++++++---- > tests/Makefile | 26 ++++++- > 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-before-err.err | 1 > tests/qapi-schema/include-before-err.exit | 1 > tests/qapi-schema/include-before-err.json | 2 + > tests/qapi-schema/include-before-err.out | 0 > tests/qapi-schema/include-cycle-b.json | 1 > tests/qapi-schema/include-cycle-c.json | 1 > tests/qapi-schema/include-cycle.err | 3 + > 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-format-err.err | 1 > tests/qapi-schema/include-format-err.exit | 1 > tests/qapi-schema/include-format-err.json | 2 + > tests/qapi-schema/include-format-err.out | 0 > tests/qapi-schema/include-nested-err.err | 2 + > 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-non-file.err | 1 > tests/qapi-schema/include-non-file.exit | 1 > tests/qapi-schema/include-non-file.json | 1 > tests/qapi-schema/include-non-file.out | 0 > tests/qapi-schema/include-relpath-sub.json | 2 + > tests/qapi-schema/include-relpath.err | 0 > tests/qapi-schema/include-relpath.exit | 1 > tests/qapi-schema/include-relpath.json | 1 > tests/qapi-schema/include-relpath.out | 3 + > 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/include/relpath.json | 1 > 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 | 6 +- > 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 - > 66 files changed, 187 insertions(+), 58 deletions(-) > create mode 100644 tests/qapi-schema/include-before-err.err > create mode 100644 tests/qapi-schema/include-before-err.exit > create mode 100644 tests/qapi-schema/include-before-err.json > create mode 100644 tests/qapi-schema/include-before-err.out > 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-format-err.err > create mode 100644 tests/qapi-schema/include-format-err.exit > create mode 100644 tests/qapi-schema/include-format-err.json > create mode 100644 tests/qapi-schema/include-format-err.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-non-file.err > create mode 100644 tests/qapi-schema/include-non-file.exit > create mode 100644 tests/qapi-schema/include-non-file.json > create mode 100644 tests/qapi-schema/include-non-file.out > create mode 100644 tests/qapi-schema/include-relpath-sub.json > create mode 100644 tests/qapi-schema/include-relpath.err > create mode 100644 tests/qapi-schema/include-relpath.exit > create mode 100644 tests/qapi-schema/include-relpath.json > create mode 100644 tests/qapi-schema/include-relpath.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 > create mode 100644 tests/qapi-schema/include/relpath.json > To: qemu-devel@nongnu.org > Cc: Luiz Capitulino <lcapitul...@redhat.com> > Cc: Markus Armbruster <arm...@redhat.com> > Cc: Eric Blake <ebl...@redhat.com> > Cc: Benoît Canet <benoit.ca...@irqsave.net> -- "And it's much the same thing with knowledge, for whenever you learn something new, the whole world becomes that much richer." -- The Princess of Pure Reason, as told by Norton Juster in The Phantom Tollbooth