mirror of
https://github.com/Motorhead1991/qemu.git
synced 2025-07-27 04:13:53 -06:00
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:
parent
53de966c3e
commit
f620cadc0c
4 changed files with 16 additions and 9 deletions
|
@ -76,7 +76,8 @@
|
||||||
fi
|
fi
|
||||||
- section_end buildenv
|
- section_end buildenv
|
||||||
- section_start test "Running tests"
|
- section_start test "Running tests"
|
||||||
- $MAKE NINJA=":" $MAKE_CHECK_ARGS
|
# doctests need all the compilation artifacts
|
||||||
|
- $MAKE NINJA=":" MTESTARGS="--no-suite doc" $MAKE_CHECK_ARGS
|
||||||
- section_end test
|
- section_end test
|
||||||
|
|
||||||
.native_test_job_template:
|
.native_test_job_template:
|
||||||
|
|
|
@ -41,7 +41,7 @@ build-system-ubuntu:
|
||||||
IMAGE: ubuntu2204
|
IMAGE: ubuntu2204
|
||||||
CONFIGURE_ARGS: --enable-docs --enable-rust
|
CONFIGURE_ARGS: --enable-docs --enable-rust
|
||||||
TARGETS: alpha-softmmu microblazeel-softmmu mips64el-softmmu
|
TARGETS: alpha-softmmu microblazeel-softmmu mips64el-softmmu
|
||||||
MAKE_CHECK_ARGS: check-build
|
MAKE_CHECK_ARGS: check-build check-doc
|
||||||
|
|
||||||
check-system-ubuntu:
|
check-system-ubuntu:
|
||||||
extends: .native_test_job_template
|
extends: .native_test_job_template
|
||||||
|
@ -115,7 +115,7 @@ build-system-fedora:
|
||||||
CONFIGURE_ARGS: --disable-gcrypt --enable-nettle --enable-docs --enable-crypto-afalg --enable-rust
|
CONFIGURE_ARGS: --disable-gcrypt --enable-nettle --enable-docs --enable-crypto-afalg --enable-rust
|
||||||
TARGETS: microblaze-softmmu mips-softmmu
|
TARGETS: microblaze-softmmu mips-softmmu
|
||||||
xtensa-softmmu m68k-softmmu riscv32-softmmu ppc-softmmu sparc64-softmmu
|
xtensa-softmmu m68k-softmmu riscv32-softmmu ppc-softmmu sparc64-softmmu
|
||||||
MAKE_CHECK_ARGS: check-build
|
MAKE_CHECK_ARGS: check-build check-doc
|
||||||
|
|
||||||
build-system-fedora-rust-nightly:
|
build-system-fedora-rust-nightly:
|
||||||
extends:
|
extends:
|
||||||
|
@ -127,12 +127,7 @@ build-system-fedora-rust-nightly:
|
||||||
IMAGE: fedora-rust-nightly
|
IMAGE: fedora-rust-nightly
|
||||||
CONFIGURE_ARGS: --disable-docs --enable-rust --enable-strict-rust-lints
|
CONFIGURE_ARGS: --disable-docs --enable-rust --enable-strict-rust-lints
|
||||||
TARGETS: aarch64-softmmu
|
TARGETS: aarch64-softmmu
|
||||||
MAKE_CHECK_ARGS: check-build
|
MAKE_CHECK_ARGS: check-build check-doc
|
||||||
after_script:
|
|
||||||
- source scripts/ci/gitlab-ci-section
|
|
||||||
- section_start test "Running Rust doctests"
|
|
||||||
- cd build
|
|
||||||
- pyvenv/bin/meson devenv -w ../rust ${CARGO-cargo} test --doc -p qemu_api
|
|
||||||
|
|
||||||
allow_failure: true
|
allow_failure: true
|
||||||
|
|
||||||
|
|
|
@ -66,6 +66,8 @@ be run via ``meson test`` or ``make``::
|
||||||
|
|
||||||
make check-rust
|
make check-rust
|
||||||
|
|
||||||
|
Note that doctests require all ``.o`` files from the build to be available.
|
||||||
|
|
||||||
Supported tools
|
Supported tools
|
||||||
'''''''''''''''
|
'''''''''''''''
|
||||||
|
|
||||||
|
|
|
@ -45,6 +45,15 @@ rust.test('rust-qemu-api-tests', _qemu_api_rs,
|
||||||
qemu_api = declare_dependency(link_with: [_qemu_api_rs],
|
qemu_api = declare_dependency(link_with: [_qemu_api_rs],
|
||||||
dependencies: [qemu_api_macros, qom, hwcore, chardev, migration])
|
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',
|
test('rust-qemu-api-integration',
|
||||||
executable(
|
executable(
|
||||||
'rust-qemu-api-integration',
|
'rust-qemu-api-integration',
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue