From: Markus Armbruster <armbru@redhat.com>
To: John Snow <jsnow@redhat.com>
Cc: qemu-devel@nongnu.org, "Michael Roth" <michael.roth@amd.com>,
"Eric Blake" <eblake@redhat.com>,
"Marc-André Lureau" <marcandre.lureau@redhat.com>,
"Richard Henderson" <richard.henderson@linaro.org>,
"Paolo Bonzini" <pbonzini@redhat.com>,
"Mauro Carvalho Chehab" <mchehab+huawei@kernel.org>,
"Michael S. Tsirkin" <mst@redhat.com>,
"Peter Maydell" <peter.maydell@linaro.org>,
"Pierrick Bouvier" <pierrick.bouvier@oss.qualcomm.com>,
"Igor Mammedov" <imammedo@redhat.com>,
"Gerd Hoffmann" <kraxel@redhat.com>,
"Ani Sinha" <anisinha@redhat.com>,
"Philippe Mathieu-Daudé" <philmd@linaro.org>
Subject: Re: [PATCH v2 01/13] tests/qapi: generate output in source order
Date: Mon, 04 May 2026 11:50:28 +0200 [thread overview]
Message-ID: <87lddzbj17.fsf@pond.sub.org> (raw)
In-Reply-To: <20260429192611.1581223-2-jsnow@redhat.com> (John Snow's message of "Wed, 29 Apr 2026 15:25:59 -0400")
John Snow <jsnow@redhat.com> writes:
> Rewrite the test doc generator to produce output in source order instead
> of arbitrarily by section name.
Yes, please! Looks like leftovers from commit 8d789c8cdb8 (docs/sphinx:
remove legacy QAPI manual generator).
>
> This patch removes our last use of the "body" field, which has an effect
> on how the first plaintext section of each test documented is printed:
What do you mean by "test documented"? The sentence makes sense to me
if I drop "documented".
> we now print "section=Plain" followed by the section text instead of
> "body=[...]".
>
> This patch is motivated by a desire to move the QAPIDoc API away from
> named fields for specific sections in a bid to force all users to simply
> iterate through all_sections in order, instead - and to remove the named
> subsections.
>
> Signed-off-by: John Snow <jsnow@redhat.com>
> ---
> tests/qapi-schema/doc-good.out | 26 +++++++++++++-------------
> tests/qapi-schema/test-qapi.py | 15 ++++++++-------
> 2 files changed, 21 insertions(+), 20 deletions(-)
>
> diff --git a/tests/qapi-schema/doc-good.out b/tests/qapi-schema/doc-good.out
> index 04a55072646..e2be6f96bbf 100644
> --- a/tests/qapi-schema/doc-good.out
> +++ b/tests/qapi-schema/doc-good.out
> @@ -54,15 +54,15 @@ event EVT_BOXED Object
> boxed=True
> feature feat3
> doc freeform
> - body=
> + section=Plain
> *******
> Section
> *******
> doc freeform
> - body=
> + section=Plain
> Just text, no heading.
> doc freeform
> - body=
> + section=Plain
> Subsection
> ==========
>
> @@ -106,7 +106,7 @@ Examples:
> - *verbatim*
> - {braces}
> doc symbol=Enum
> - body=
> + section=Plain
>
> arg=one
> The _one_ {and only}, description on the same line
> @@ -119,13 +119,13 @@ a member feature
> section=Plain
> @two is undocumented
> doc symbol=Base
> - body=
> + section=Plain
>
> arg=base1
> description starts on a new line,
> minimally indented
> doc symbol=Variant1
> - body=
> + section=Plain
> A paragraph
>
> Another paragraph
> @@ -138,15 +138,15 @@ a feature
> feature=member-feat
> a member feature
> doc symbol=Variant2
> - body=
> + section=Plain
>
> doc symbol=Object
> - body=
> + section=Plain
>
> feature=union-feat1
> a feature
> doc symbol=Alternate
> - body=
> + section=Plain
>
> arg=i
> description starts on the same line
> @@ -157,11 +157,11 @@ description starts on the same line
> feature=alt-feat
> a feature
> doc freeform
> - body=
> + section=Plain
> Another subsection
> ==================
> doc symbol=cmd
> - body=
> + section=Plain
>
> arg=arg1
> description starts on a new line,
> @@ -210,7 +210,7 @@ Note::
> section=Since
> 2.10
> doc symbol=cmd-boxed
> - body=
> + section=Plain
> If you're bored enough to read this, go see a video of boxed cats
> feature=cmd-feat1
> a feature
> @@ -223,7 +223,7 @@ another feature
>
> <- ... has no title ...
> doc symbol=EVT_BOXED
> - body=
> + section=Plain
>
> feature=feat3
> a feature
> diff --git a/tests/qapi-schema/test-qapi.py b/tests/qapi-schema/test-qapi.py
> index cf7fb8a6df5..27885147b4d 100755
> --- a/tests/qapi-schema/test-qapi.py
> +++ b/tests/qapi-schema/test-qapi.py
> @@ -19,6 +19,7 @@
> from io import StringIO
>
> from qapi.error import QAPIError
> +from qapi.parser import QAPIDoc
> from qapi.schema import QAPISchema, QAPISchemaVisitor
>
>
> @@ -116,13 +117,13 @@ def test_frontend(fname):
> print('doc symbol=%s' % doc.symbol)
> else:
> print('doc freeform')
> - print(' body=\n%s' % doc.body.text)
> - for arg, section in doc.args.items():
> - print(' arg=%s\n%s' % (arg, section.text))
> - for feat, section in doc.features.items():
> - print(' feature=%s\n%s' % (feat, section.text))
> - for section in doc.sections:
> - print(' section=%s\n%s' % (section.kind, section.text))
> + for section in doc.all_sections:
> + if section.kind == QAPIDoc.Kind.MEMBER:
> + print(' arg=%s\n%s' % (section.name, section.text))
> + elif section.kind == QAPIDoc.Kind.FEATURE:
> + print(' feature=%s\n%s' % (section.name, section.text))
> + else:
> + print(' section=%s\n%s' % (section.kind, section.text))
>
>
> def open_test_result(dir_name, file_name, update):
The loop body could be dumbed down further:
if isinstance(section, QAPIDoc.ArgSection):
print(' %s=%s' % (section.kind, section.name))
else:
print(' %s' % section.kind)
print(section.text)
Expected output changes a bit more then. I don't mind.
next prev parent reply other threads:[~2026-05-04 9:50 UTC|newest]
Thread overview: 29+ messages / expand[flat|nested] mbox.gz Atom feed top
2026-04-29 19:25 [PATCH v2 00/13] qapi: add formal "intro" section John Snow
2026-04-29 19:25 ` [PATCH v2 01/13] tests/qapi: generate output in source order John Snow
2026-05-04 9:50 ` Markus Armbruster [this message]
2026-05-04 17:55 ` John Snow
2026-04-29 19:26 ` [PATCH v2 02/13] qapi/docs: remove unused QAPIDoc subsection members John Snow
2026-05-04 9:51 ` Markus Armbruster
2026-04-29 19:26 ` [PATCH v2 03/13] qapi/docs: make remaining subsection members "private" John Snow
2026-05-04 9:54 ` Markus Armbruster
2026-05-04 18:07 ` John Snow
2026-04-29 19:26 ` [PATCH v2 04/13] qapi/docs: add "Intro" section John Snow
2026-04-29 19:26 ` [PATCH v2 05/13] qapi/docs: adjust stub member insertion algorithm John Snow
2026-05-04 11:20 ` Markus Armbruster
2026-05-04 18:30 ` John Snow
2026-05-05 13:54 ` Markus Armbruster
2026-05-04 18:33 ` John Snow
2026-04-29 19:26 ` [PATCH v2 06/13] qapi/docs: remove implicit Plain section John Snow
2026-04-29 19:26 ` [PATCH v2 07/13] qapi/docs: add "Intro" section parsing John Snow
2026-05-04 11:57 ` Markus Armbruster
2026-05-04 18:44 ` John Snow
2026-05-05 13:30 ` Markus Armbruster
2026-04-29 19:26 ` [PATCH v2 08/13] qapi/docs: Add rendering for INTRO sections John Snow
2026-05-04 12:05 ` Markus Armbruster
2026-05-12 21:13 ` John Snow
2026-05-13 6:25 ` Markus Armbruster
2026-04-29 19:26 ` [PATCH v2 09/13] qapi: convert intro sections for accelerator.json John Snow
2026-04-29 19:26 ` [PATCH v2 10/13] qapi: convert intro sections for acpi-hest.json John Snow
2026-04-29 19:26 ` [PATCH v2 11/13] qapi: convert intro sections for acpi.json John Snow
2026-04-29 19:26 ` [PATCH v2 12/13] qapi: convert intro sections for audio.json John Snow
2026-04-29 19:26 ` [PATCH v2 13/13] rfc: intro starts on next line John Snow
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=87lddzbj17.fsf@pond.sub.org \
--to=armbru@redhat.com \
--cc=anisinha@redhat.com \
--cc=eblake@redhat.com \
--cc=imammedo@redhat.com \
--cc=jsnow@redhat.com \
--cc=kraxel@redhat.com \
--cc=marcandre.lureau@redhat.com \
--cc=mchehab+huawei@kernel.org \
--cc=michael.roth@amd.com \
--cc=mst@redhat.com \
--cc=pbonzini@redhat.com \
--cc=peter.maydell@linaro.org \
--cc=philmd@linaro.org \
--cc=pierrick.bouvier@oss.qualcomm.com \
--cc=qemu-devel@nongnu.org \
--cc=richard.henderson@linaro.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.