From: Markus Armbruster Date: Fri, 20 Mar 2020 09:18:04 +0000 (+0100) Subject: qapi: Reject section markup in definition documentation X-Git-Tag: v5.2.0-rc0~126^2~4 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=d98884b75df3676f94d93fbaf6372ca705dc2aee;p=thirdparty%2Fqemu.git qapi: Reject section markup in definition documentation Section markup in definition documentation makes no sense and can produce invalid Texinfo. Reject. Signed-off-by: Markus Armbruster Message-Id: <20200320091805.5585-2-armbru@redhat.com> Reviewed-by: Eric Blake --- diff --git a/docs/devel/qapi-code-gen.txt b/docs/devel/qapi-code-gen.txt index f3e7ced212e..9eede44350c 100644 --- a/docs/devel/qapi-code-gen.txt +++ b/docs/devel/qapi-code-gen.txt @@ -835,6 +835,8 @@ Double the '=' for a subsection title: # == Subsection title +Both are only permitted in free-form documentation. + '|' denotes examples: # | Text of the example, may span diff --git a/scripts/qapi/parser.py b/scripts/qapi/parser.py index abadacbb0e8..f12c67d7d20 100644 --- a/scripts/qapi/parser.py +++ b/scripts/qapi/parser.py @@ -282,6 +282,11 @@ class QAPISchemaParser: doc.end_comment() self.accept() return doc + if self.val.startswith('# ='): + if doc.symbol: + raise QAPIParseError( + self, + "unexpected '=' markup in definition documentation") doc.append(self.val) self.accept(False) diff --git a/tests/qapi-schema/doc-bad-section.err b/tests/qapi-schema/doc-bad-section.err index e69de29bb2d..785cacc08c4 100644 --- a/tests/qapi-schema/doc-bad-section.err +++ b/tests/qapi-schema/doc-bad-section.err @@ -0,0 +1 @@ +doc-bad-section.json:5:1: unexpected '=' markup in definition documentation diff --git a/tests/qapi-schema/doc-bad-section.json b/tests/qapi-schema/doc-bad-section.json index 560df4b0878..8175d95867e 100644 --- a/tests/qapi-schema/doc-bad-section.json +++ b/tests/qapi-schema/doc-bad-section.json @@ -1,9 +1,8 @@ # = section within an expression comment -# BUG: not rejected ## # @Enum: -# == Produces *invalid* texinfo +# == No good here # @one: The _one_ {and only} # # @two is undocumented diff --git a/tests/qapi-schema/doc-bad-section.out b/tests/qapi-schema/doc-bad-section.out index 367e2a1c3eb..e69de29bb2d 100644 --- a/tests/qapi-schema/doc-bad-section.out +++ b/tests/qapi-schema/doc-bad-section.out @@ -1,24 +0,0 @@ -module None -object q_empty -enum QType - prefix QTYPE - member none - member qnull - member qnum - member qstring - member qdict - member qlist - member qbool -module doc-bad-section.json -enum Enum - member one - member two -doc symbol=Enum - body= -== Produces *invalid* texinfo - arg=one -The _one_ {and only} - arg=two - - section=None -@two is undocumented