mirror of
https://github.com/qemu/qemu.git
synced 2025-08-15 23:31:41 +00:00
rust: build integration test for the qemu_api crate
Adjust the integration test to compile with a subset of QEMU object files, and make it actually create an object of the class it defines. Follow the Rust filesystem conventions, where tests go in tests/ if they use the library in the same way any other code would. Reviewed-by: Junjie Mao <junjie.mao@hotmail.com> Reviewed-by: Kevin Wolf <kwolf@redhat.com> Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
This commit is contained in:
@ -14,11 +14,31 @@ _qemu_api_rs = static_library(
|
||||
'--cfg', 'MESON',
|
||||
# '--cfg', 'feature="allocator"',
|
||||
],
|
||||
dependencies: [
|
||||
qemu_api_macros,
|
||||
],
|
||||
)
|
||||
|
||||
qemu_api = declare_dependency(
|
||||
link_with: _qemu_api_rs,
|
||||
dependencies: qemu_api_macros,
|
||||
)
|
||||
|
||||
# Rust executables do not support objects, so add an intermediate step.
|
||||
rust_qemu_api_objs = static_library(
|
||||
'rust_qemu_api_objs',
|
||||
objects: [libqom.extract_all_objects(recursive: false),
|
||||
libhwcore.extract_all_objects(recursive: false)])
|
||||
|
||||
test('rust-qemu-api-integration',
|
||||
executable(
|
||||
'rust-qemu-api-integration',
|
||||
'tests/tests.rs',
|
||||
override_options: ['rust_std=2021', 'build.rust_std=2021'],
|
||||
rust_args: ['--test'],
|
||||
install: false,
|
||||
dependencies: [qemu_api, qemu_api_macros],
|
||||
link_whole: [rust_qemu_api_objs, libqemuutil]),
|
||||
args: [
|
||||
'--test',
|
||||
'--format', 'pretty',
|
||||
],
|
||||
protocol: 'rust',
|
||||
suite: ['unit', 'rust'])
|
||||
|
Reference in New Issue
Block a user