From: Stefan Hajnoczi <stefanha@redhat.com>
To: "Daniel P. Berrangé" <berrange@redhat.com>
Cc: qemu-devel@nongnu.org, "Michael Roth" <michael.roth@amd.com>,
"Paolo Bonzini" <pbonzini@redhat.com>,
"Thomas Huth" <thuth@redhat.com>,
"Philippe Mathieu-Daudé" <philmd@linaro.org>,
"Markus Armbruster" <armbru@redhat.com>,
"Mads Ynddal" <mads@ynddal.dk>,
"Alex Bennée" <alex.bennee@linaro.org>
Subject: Re: [PATCH v4 5/7] tracetool: add test suite for tracetool with reference output
Date: Thu, 21 Aug 2025 10:28:24 -0400 [thread overview]
Message-ID: <20250821142824.GC7010@fedora> (raw)
In-Reply-To: <20250819161053.464641-6-berrange@redhat.com>
[-- Attachment #1: Type: text/plain, Size: 5016 bytes --]
On Tue, Aug 19, 2025 at 05:10:51PM +0100, Daniel P. Berrangé wrote:
> When reviewing tracetool patches it is often very unclear what the
> expected output will be for the generated backends. Compounding
> this is that a default build will only enable the 'log' trace
> backend, so developers won't see generated code for other backends
> without making a special effort. Some backends are also platform
> specific, so can't be enabled in QEMU builds, even though tracetool
> could generate the code.
>
> To address this, introduce a test suite for tracetool which is
> conceptually similar to the qapi-schema test. It is a simple
> python program that runs tracetool and compares the actual output
> to historical reference output kept in git. The test directly
> emits TAP format logs for ease of integration with meson.
>
> This can be run with
>
> make check-tracetool
>
> to make it easier for developers changing generated output, the
> sample expected content can be auto-recreated
>
> QEMU_TEST_REGENERATE=1 make check-tracetool
>
> and the changes reviewed and added to the commit. This will also
> assist reviewers interpreting the change.
>
> Developers are reminded of this in the test output on failure:
>
> $ make check-tracetool
> 1/6 qemu:tracetool / dtrace OK 0.14s
> 2/6 qemu:tracetool / ftrace FAIL 0.06s exit status 1
> ――――――――――――――――――――――――――――――――――――――――――――――――――――――――――
> 1..2
> ok 1 - ftrace.c
> #
> not ok 1 - ftrace.h (set QEMU_TEST_REGENERATE=1 to recreate reference output if tracetool generator was intentionally changed)
> ――――――――――――――――――――――――――――――――――――――――――――――――――――――――――
>
> 3/6 qemu:tracetool / log OK 0.06s
> 4/6 qemu:tracetool / simple OK 0.06s
> 5/6 qemu:tracetool / syslog OK 0.06s
> 6/6 qemu:tracetool / ust OK 0.11s
>
> Summary of Failures:
>
> 2/6 qemu:tracetool / ftrace FAIL 0.06s exit status 1
>
> Signed-off-by: Daniel P. Berrangé <berrange@redhat.com>
> ---
> MAINTAINERS | 1 +
> docs/devel/testing/main.rst | 28 +++++++
> tests/Makefile.include | 1 +
> tests/meson.build | 1 +
> tests/tracetool/dtrace.c | 32 ++++++++
> tests/tracetool/dtrace.d | 10 +++
> tests/tracetool/dtrace.h | 59 +++++++++++++
> tests/tracetool/dtrace.log-stap | 15 ++++
> tests/tracetool/dtrace.simpletrace-stap | 16 ++++
> tests/tracetool/dtrace.stap | 14 ++++
> tests/tracetool/ftrace.c | 32 ++++++++
> tests/tracetool/ftrace.h | 73 ++++++++++++++++
> tests/tracetool/log.c | 32 ++++++++
> tests/tracetool/log.h | 57 +++++++++++++
> tests/tracetool/meson.build | 25 ++++++
> tests/tracetool/simple.c | 61 ++++++++++++++
> tests/tracetool/simple.h | 54 ++++++++++++
> tests/tracetool/syslog.c | 32 ++++++++
> tests/tracetool/syslog.h | 57 +++++++++++++
> tests/tracetool/trace-events | 5 ++
> tests/tracetool/tracetool-test.py | 105 ++++++++++++++++++++++++
> tests/tracetool/ust.c | 32 ++++++++
> tests/tracetool/ust.h | 55 +++++++++++++
> tests/tracetool/ust.ust-events-c | 14 ++++
> tests/tracetool/ust.ust-events-h | 56 +++++++++++++
> 25 files changed, 867 insertions(+)
> create mode 100644 tests/tracetool/dtrace.c
> create mode 100644 tests/tracetool/dtrace.d
> create mode 100644 tests/tracetool/dtrace.h
> create mode 100644 tests/tracetool/dtrace.log-stap
> create mode 100644 tests/tracetool/dtrace.simpletrace-stap
> create mode 100644 tests/tracetool/dtrace.stap
> create mode 100644 tests/tracetool/ftrace.c
> create mode 100644 tests/tracetool/ftrace.h
> create mode 100644 tests/tracetool/log.c
> create mode 100644 tests/tracetool/log.h
> create mode 100644 tests/tracetool/meson.build
> create mode 100644 tests/tracetool/simple.c
> create mode 100644 tests/tracetool/simple.h
> create mode 100644 tests/tracetool/syslog.c
> create mode 100644 tests/tracetool/syslog.h
> create mode 100644 tests/tracetool/trace-events
> create mode 100755 tests/tracetool/tracetool-test.py
> create mode 100644 tests/tracetool/ust.c
> create mode 100644 tests/tracetool/ust.h
> create mode 100644 tests/tracetool/ust.ust-events-c
> create mode 100644 tests/tracetool/ust.ust-events-h
Reviewed-by: Stefan Hajnoczi <stefanha@redhat.com>
[-- Attachment #2: signature.asc --]
[-- Type: application/pgp-signature, Size: 488 bytes --]
next prev parent reply other threads:[~2025-08-21 14:28 UTC|newest]
Thread overview: 11+ messages / expand[flat|nested] mbox.gz Atom feed top
2025-08-19 16:10 [PATCH v4 0/7] tracetool: add test suite to improve reviewability Daniel P. Berrangé
2025-08-19 16:10 ` [PATCH v4 1/7] checkpatch: cull trailing '*/' in SPDX check Daniel P. Berrangé
2025-08-19 16:10 ` [PATCH v4 2/7] tracetool: eliminate trailing whitespace in C format Daniel P. Berrangé
2025-08-19 16:10 ` [PATCH v4 3/7] tracetool: avoid space after "*" in arg types Daniel P. Berrangé
2025-08-19 16:10 ` [PATCH v4 4/7] tracetool: include SPDX-License-Identifier in generated files Daniel P. Berrangé
2025-08-19 16:10 ` [PATCH v4 5/7] tracetool: add test suite for tracetool with reference output Daniel P. Berrangé
2025-08-21 14:28 ` Stefan Hajnoczi [this message]
2025-08-19 16:10 ` [PATCH v4 6/7] tracetool: drop the probe "__nocheck__" wrapping Daniel P. Berrangé
2025-08-19 16:10 ` [PATCH v4 7/7] qapi: switch to use QEMU_TEST_REGENERATE env var Daniel P. Berrangé
2025-08-30 8:20 ` Markus Armbruster
2025-08-21 14:29 ` [PATCH v4 0/7] tracetool: add test suite to improve reviewability Stefan Hajnoczi
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=20250821142824.GC7010@fedora \
--to=stefanha@redhat.com \
--cc=alex.bennee@linaro.org \
--cc=armbru@redhat.com \
--cc=berrange@redhat.com \
--cc=mads@ynddal.dk \
--cc=michael.roth@amd.com \
--cc=pbonzini@redhat.com \
--cc=philmd@linaro.org \
--cc=qemu-devel@nongnu.org \
--cc=thuth@redhat.com \
/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.