If you think I'm exaggerating, check out the list of issues in PATCH 3/9. v2: * Straightforward rebase * A few more tests in 1/9, in part suggested by Eric
Markus Armbruster (9): tests: QAPI schema parser tests tests: Use qapi-schema-test.json as schema parser test qapi.py: Restructure lexer and parser qapi.py: Decent syntax error reporting qapi.py: Reject invalid characters in schema file qapi.py: Fix schema parser to check syntax systematically qapi.py: Fix diagnosing non-objects at a schema's top-level qapi.py: Rename expr_eval to expr in parse_schema() qapi.py: Permit comments starting anywhere on the line configure | 2 +- scripts/qapi.py | 227 +++++++++++++-------- tests/Makefile | 30 ++- tests/qapi-schema/comments.exit | 1 + tests/qapi-schema/comments.json | 4 + tests/qapi-schema/comments.out | 3 + tests/qapi-schema/empty.exit | 1 + tests/qapi-schema/empty.out | 3 + tests/qapi-schema/funny-char.err | 1 + tests/qapi-schema/funny-char.exit | 1 + tests/qapi-schema/funny-char.json | 2 + tests/qapi-schema/indented-expr.exit | 1 + tests/qapi-schema/indented-expr.json | 2 + tests/qapi-schema/indented-expr.out | 3 + tests/qapi-schema/missing-colon.err | 1 + tests/qapi-schema/missing-colon.exit | 1 + tests/qapi-schema/missing-colon.json | 2 + tests/qapi-schema/missing-comma-list.err | 1 + tests/qapi-schema/missing-comma-list.exit | 1 + tests/qapi-schema/missing-comma-list.json | 2 + tests/qapi-schema/missing-comma-object.err | 1 + tests/qapi-schema/missing-comma-object.exit | 1 + tests/qapi-schema/missing-comma-object.json | 2 + tests/qapi-schema/non-objects.err | 1 + tests/qapi-schema/non-objects.exit | 1 + tests/qapi-schema/non-objects.json | 2 + tests/qapi-schema/qapi-schema-test.exit | 1 + .../qapi-schema/qapi-schema-test.json | 0 tests/qapi-schema/qapi-schema-test.out | 19 ++ tests/qapi-schema/quoted-structural-chars.err | 1 + tests/qapi-schema/quoted-structural-chars.exit | 1 + tests/qapi-schema/quoted-structural-chars.json | 1 + tests/qapi-schema/test-qapi.py | 27 +++ tests/qapi-schema/trailing-comma-list.err | 1 + tests/qapi-schema/trailing-comma-list.exit | 1 + tests/qapi-schema/trailing-comma-list.json | 2 + tests/qapi-schema/trailing-comma-object.err | 1 + tests/qapi-schema/trailing-comma-object.exit | 1 + tests/qapi-schema/trailing-comma-object.json | 2 + tests/qapi-schema/unclosed-list.err | 1 + tests/qapi-schema/unclosed-list.exit | 1 + tests/qapi-schema/unclosed-list.json | 1 + tests/qapi-schema/unclosed-object.err | 1 + tests/qapi-schema/unclosed-object.exit | 1 + tests/qapi-schema/unclosed-object.json | 1 + tests/qapi-schema/unclosed-string.err | 1 + tests/qapi-schema/unclosed-string.exit | 1 + tests/qapi-schema/unclosed-string.json | 2 + 48 files changed, 271 insertions(+), 94 deletions(-) create mode 100644 tests/qapi-schema/comments.err create mode 100644 tests/qapi-schema/comments.exit create mode 100644 tests/qapi-schema/comments.json create mode 100644 tests/qapi-schema/comments.out create mode 100644 tests/qapi-schema/empty.err create mode 100644 tests/qapi-schema/empty.exit create mode 100644 tests/qapi-schema/empty.json create mode 100644 tests/qapi-schema/empty.out create mode 100644 tests/qapi-schema/funny-char.err create mode 100644 tests/qapi-schema/funny-char.exit create mode 100644 tests/qapi-schema/funny-char.json create mode 100644 tests/qapi-schema/funny-char.out create mode 100644 tests/qapi-schema/indented-expr.err create mode 100644 tests/qapi-schema/indented-expr.exit create mode 100644 tests/qapi-schema/indented-expr.json create mode 100644 tests/qapi-schema/indented-expr.out create mode 100644 tests/qapi-schema/missing-colon.err create mode 100644 tests/qapi-schema/missing-colon.exit create mode 100644 tests/qapi-schema/missing-colon.json create mode 100644 tests/qapi-schema/missing-colon.out create mode 100644 tests/qapi-schema/missing-comma-list.err create mode 100644 tests/qapi-schema/missing-comma-list.exit create mode 100644 tests/qapi-schema/missing-comma-list.json create mode 100644 tests/qapi-schema/missing-comma-list.out create mode 100644 tests/qapi-schema/missing-comma-object.err create mode 100644 tests/qapi-schema/missing-comma-object.exit create mode 100644 tests/qapi-schema/missing-comma-object.json create mode 100644 tests/qapi-schema/missing-comma-object.out create mode 100644 tests/qapi-schema/non-objects.err create mode 100644 tests/qapi-schema/non-objects.exit create mode 100644 tests/qapi-schema/non-objects.json create mode 100644 tests/qapi-schema/non-objects.out create mode 100644 tests/qapi-schema/qapi-schema-test.err create mode 100644 tests/qapi-schema/qapi-schema-test.exit rename qapi-schema-test.json => tests/qapi-schema/qapi-schema-test.json (100%) create mode 100644 tests/qapi-schema/qapi-schema-test.out create mode 100644 tests/qapi-schema/quoted-structural-chars.err create mode 100644 tests/qapi-schema/quoted-structural-chars.exit create mode 100644 tests/qapi-schema/quoted-structural-chars.json create mode 100644 tests/qapi-schema/quoted-structural-chars.out create mode 100644 tests/qapi-schema/test-qapi.py create mode 100644 tests/qapi-schema/trailing-comma-list.err create mode 100644 tests/qapi-schema/trailing-comma-list.exit create mode 100644 tests/qapi-schema/trailing-comma-list.json create mode 100644 tests/qapi-schema/trailing-comma-list.out create mode 100644 tests/qapi-schema/trailing-comma-object.err create mode 100644 tests/qapi-schema/trailing-comma-object.exit create mode 100644 tests/qapi-schema/trailing-comma-object.json create mode 100644 tests/qapi-schema/trailing-comma-object.out create mode 100644 tests/qapi-schema/unclosed-list.err create mode 100644 tests/qapi-schema/unclosed-list.exit create mode 100644 tests/qapi-schema/unclosed-list.json create mode 100644 tests/qapi-schema/unclosed-list.out create mode 100644 tests/qapi-schema/unclosed-object.err create mode 100644 tests/qapi-schema/unclosed-object.exit create mode 100644 tests/qapi-schema/unclosed-object.json create mode 100644 tests/qapi-schema/unclosed-object.out create mode 100644 tests/qapi-schema/unclosed-string.err create mode 100644 tests/qapi-schema/unclosed-string.exit create mode 100644 tests/qapi-schema/unclosed-string.json create mode 100644 tests/qapi-schema/unclosed-string.out -- 1.7.11.7