qemu-cr16/docs
Daniel P. Berrangé da949d495d tracetool: add test suite for tracetool with reference output
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>
Message-id: 20250916081638.764020-6-berrange@redhat.com
Signed-off-by: Stefan Hajnoczi <stefanha@redhat.com>
2025-09-16 13:31:40 -04:00
..
_templates
about vfio: Remove 'vfio-platform' 2025-09-08 16:46:31 +02:00
config vl: recognize audiodev groups in configuration files 2023-09-22 17:35:11 +02:00
devel tracetool: add test suite for tracetool with reference output 2025-09-16 13:31:40 -04:00
interop QAPI patches patches for 2025-07-14 2025-07-16 07:07:30 -04:00
specs docs: fix typo in xive doc 2025-09-03 10:57:50 +03:00
sphinx scripts/kerneldoc: Switch to the Python kernel-doc script 2025-08-30 16:37:23 +01:00
sphinx-static docs/qapi-domain: add CSS styling 2025-03-11 10:10:57 +01:00
spin treewide: fix paths for relocated files in comments 2025-07-02 18:26:27 +02:00
system hw/mips: Remove mipssim machine 2025-09-02 17:57:05 +02:00
tools qemu-img: rebase: refresh options/--help (short option change) 2025-07-15 20:49:01 +02:00
user linux-user: Drop deprecated -p option 2025-08-30 07:00:20 +10:00
block-replication.txt
bypass-iommu.txt
COLO-FT.txt chardev: finalize 'reconnect' deprecation 2024-10-28 14:37:25 +08:00
colo-proxy.txt colo: examples: remove mentions of script= and (wrong) downscript= 2024-01-30 21:20:20 +03:00
conf.py scripts/kerneldoc: Switch to the Python kernel-doc script 2025-08-30 16:37:23 +01:00
defs.rst.inc
glossary.rst docs: disambiguate cross-references 2025-03-11 10:26:52 +01:00
igd-assign.txt vfio/igd: Require host VGA decode for legacy mode 2025-07-28 17:52:34 +02:00
image-fuzzer.txt
index.rst docs: add a glossary 2025-01-17 10:45:54 +00:00
memory-hotplug.txt
meson.build 9p: remove 'proxy' filesystem backend driver 2024-10-03 19:33:25 +02:00
multi-thread-compression.txt docs tests: Fix use of migrate_set_parameter 2023-09-08 13:08:52 +03:00
multiseat.txt
nvdimm.txt
pci_expander_bridge.txt docs, tests: do not specify scsi=off 2024-06-05 11:00:56 +02:00
pcie.txt docs/pcie.txt: Replace ioh3420 with pcie-root-port 2023-01-28 06:21:30 -05:00
pcie_pci_bridge.txt
pcie_sriov.txt pcie_sriov: Ensure VF addr does not overflow 2025-02-20 18:23:19 -05:00
qcow2-cache.txt docs/interop: convert text files to restructuredText 2025-05-29 17:45:10 +01:00
qdev-device-use.txt util: remove support -chardev tty and -chardev parport 2023-01-06 00:51:02 +01:00
qemu-option-trace.rst.inc
qemupciserial.inf
rdma.txt docs tests: Fix use of migrate_set_parameter 2023-09-08 13:08:52 +03:00
requirements.txt docs: Bump sphinx to 6.2.1 2025-07-16 17:02:46 +02:00
spice-port-fqdn.txt
throttle.txt
xbzrle.txt
xen-save-devices-state.txt