rust: add qemu-api doctests to "meson test"

Doctests are weird.  They are essentially integration tests, but they're
"ran" by executing rustdoc --test, which takes a compiler-ish
command line.  This is supported by Meson 1.8.0.

Because they run the linker and need all the .o files, run them in the
build jobs rather than the test jobs.

Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
This commit is contained in:
Paolo Bonzini 2025-04-05 10:33:09 +02:00
parent 53de966c3e
commit f620cadc0c
4 changed files with 16 additions and 9 deletions

View file

@ -45,6 +45,15 @@ rust.test('rust-qemu-api-tests', _qemu_api_rs,
qemu_api = declare_dependency(link_with: [_qemu_api_rs],
dependencies: [qemu_api_macros, qom, hwcore, chardev, migration])
# Doctests are essentially integration tests, so they need the same dependencies.
# Note that running them requires the object files for C code, so place them
# in a separate suite that is run by the "build" CI jobs rather than "check".
rust.doctest('rust-qemu-api-doctests',
_qemu_api_rs,
protocol: 'rust',
dependencies: qemu_api,
suite: ['doc', 'rust'])
test('rust-qemu-api-integration',
executable(
'rust-qemu-api-integration',