diff options
| author | Paolo Bonzini <pbonzini@redhat.com> | 2024-10-18 16:30:56 +0200 |
|---|---|---|
| committer | Paolo Bonzini <pbonzini@redhat.com> | 2024-11-05 14:18:15 +0100 |
| commit | cde3c425d16f6d0c8e6f47940ef5152b9021f3f2 (patch) | |
| tree | 7c501a0aab7f6c4f25b437b5f7ed1c2f5d1b7025 /rust/qemu-api/meson.build | |
| parent | 4f7521916d12e07d25d5175f2da9614624344a7b (diff) | |
| download | focaccia-qemu-cde3c425d16f6d0c8e6f47940ef5152b9021f3f2.tar.gz focaccia-qemu-cde3c425d16f6d0c8e6f47940ef5152b9021f3f2.zip | |
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>
Diffstat (limited to 'rust/qemu-api/meson.build')
| -rw-r--r-- | rust/qemu-api/meson.build | 26 |
1 files changed, 23 insertions, 3 deletions
diff --git a/rust/qemu-api/meson.build b/rust/qemu-api/meson.build index 42ea815fa5..1fc3607802 100644 --- a/rust/qemu-api/meson.build +++ b/rust/qemu-api/meson.build @@ -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']) |