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é <berra...@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 <stefa...@redhat.com>
signature.asc
Description: PGP signature