diff options
| author | Paolo Bonzini <pbonzini@redhat.com> | 2025-10-22 16:52:08 +0200 |
|---|---|---|
| committer | Paolo Bonzini <pbonzini@redhat.com> | 2025-12-22 11:58:30 +0100 |
| commit | 9752def1c96eb32dc37c32398a0fe8802392fbc9 (patch) | |
| tree | c43f2d983c6b9273df80d0edf9560d3ab726927d /test cases | |
| parent | bfb5ea6fdbd85568c4ce20e28d4d727b78994938 (diff) | |
| download | meson-9752def1c96eb32dc37c32398a0fe8802392fbc9.tar.gz | |
modules: rust: implement more package accessors
Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
Diffstat (limited to 'test cases')
12 files changed, 58 insertions, 10 deletions
diff --git a/test cases/rust/31 rust.workspace package/Cargo.toml b/test cases/rust/31 rust.workspace package/Cargo.toml index 53bc49528..00bb0878e 100644 --- a/test cases/rust/31 rust.workspace package/Cargo.toml +++ b/test cases/rust/31 rust.workspace package/Cargo.toml @@ -4,8 +4,10 @@ version = "0.1.0" edition = "2021" [features] -default = ["dep:answer"] +default = ["feature1", "hello?/goodbye"] +feature1 = ["answer/large", "dep:hello"] +feature2 = [] [dependencies] -hello = { version = "1.0", path = "subprojects/hello-1.0" } +hello = { version = "1.0", path = "subprojects/hello-1.0", optional = true } answer = { version = "2.1", path = "subprojects/answer-2.1", optional = true } diff --git a/test cases/rust/31 rust.workspace package/meson.build b/test cases/rust/31 rust.workspace package/meson.build index 5885a4524..d6e9aa42d 100644 --- a/test cases/rust/31 rust.workspace package/meson.build +++ b/test cases/rust/31 rust.workspace package/meson.build @@ -7,7 +7,18 @@ cargo_ws = rust.workspace() assert(cargo_ws.packages() == ['answer', 'hello', 'package_test']) hello_rs = cargo_ws.subproject('hello') +assert(hello_rs.name() == 'hello') +assert(hello_rs.version() == '1.0.0') +assert(hello_rs.api() == '1') +assert(hello_rs.all_features() == ['default', 'goodbye']) +assert(hello_rs.features() == ['default', 'goodbye']) + answer_rs = cargo_ws.subproject('answer', '2') +assert(answer_rs.name() == 'answer') +assert(answer_rs.version() == '2.1.0') +assert(answer_rs.api() == '2') +assert(answer_rs.all_features() == ['default', 'large']) +assert(answer_rs.features() == ['default', 'large']) e = executable('package-test', 'src/main.rs', dependencies: [hello_rs.dependency(), answer_rs.dependency()], diff --git a/test cases/rust/31 rust.workspace package/src/main.rs b/test cases/rust/31 rust.workspace package/src/main.rs index 39b324801..13c02dd64 100644 --- a/test cases/rust/31 rust.workspace package/src/main.rs +++ b/test cases/rust/31 rust.workspace package/src/main.rs @@ -1,6 +1,8 @@ -use hello::greet; +use hello::{farewell, greet}; fn main() { println!("{}", greet()); + println!("{}", farewell()); println!("{}", answer::answer()); + println!("{}", answer::large_answer()); } diff --git a/test cases/rust/31 rust.workspace package/subprojects/answer-2.1/meson.build b/test cases/rust/31 rust.workspace package/subprojects/answer-2.1/meson.build index 7b4e10b23..e8d10117f 100644 --- a/test cases/rust/31 rust.workspace package/subprojects/answer-2.1/meson.build +++ b/test cases/rust/31 rust.workspace package/subprojects/answer-2.1/meson.build @@ -4,6 +4,6 @@ rust = import('rust') cargo_ws = rust.workspace() assert(cargo_ws.packages() == ['answer']) -l = static_library('answer', 'src/lib.rs') +l = static_library('answer', 'src/lib.rs', rust_args: ['--cfg', 'feature="large"']) dep = declare_dependency(link_with: l) meson.override_dependency('answer-2-rs', dep) diff --git a/test cases/rust/31 rust.workspace package/subprojects/hello-1.0/Cargo.toml b/test cases/rust/31 rust.workspace package/subprojects/hello-1.0/Cargo.toml index ad0ae458c..f6ab8eb91 100644 --- a/test cases/rust/31 rust.workspace package/subprojects/hello-1.0/Cargo.toml +++ b/test cases/rust/31 rust.workspace package/subprojects/hello-1.0/Cargo.toml @@ -4,4 +4,7 @@ version = "1.0.0" edition = "2021" [lib] -crate-type = ["lib"]
\ No newline at end of file +crate-type = ["lib"] + +[features] +goodbye = [] diff --git a/test cases/rust/31 rust.workspace package/subprojects/hello-1.0/src/lib.rs b/test cases/rust/31 rust.workspace package/subprojects/hello-1.0/src/lib.rs index 0631292f3..47346350b 100644 --- a/test cases/rust/31 rust.workspace package/subprojects/hello-1.0/src/lib.rs +++ b/test cases/rust/31 rust.workspace package/subprojects/hello-1.0/src/lib.rs @@ -2,3 +2,9 @@ pub fn greet() -> &'static str { "hello world" } + +#[cfg(feature = "goodbye")] +pub fn farewell() -> &'static str +{ + "goodbye" +} diff --git a/test cases/rust/32 rust.workspace workspace/Cargo.toml b/test cases/rust/32 rust.workspace workspace/Cargo.toml index ac3a340bd..44e4a18ef 100644 --- a/test cases/rust/32 rust.workspace workspace/Cargo.toml +++ b/test cases/rust/32 rust.workspace workspace/Cargo.toml @@ -7,8 +7,10 @@ version = "0.1.0" edition = "2021" [features] -default = ["dep:answer"] +default = ["feature1", "hello?/goodbye"] +feature1 = ["answer/large", "dep:hello"] +feature2 = [] [dependencies] -hello = { version = "1.0", path = "subprojects/hello-1.0" } +hello = { version = "1.0", path = "subprojects/hello-1.0", optional = true } answer = { version = "2.1", path = "subprojects/answer-2.1", optional = true } diff --git a/test cases/rust/32 rust.workspace workspace/meson.build b/test cases/rust/32 rust.workspace workspace/meson.build index 77d0458a9..2626d3d50 100644 --- a/test cases/rust/32 rust.workspace workspace/meson.build +++ b/test cases/rust/32 rust.workspace workspace/meson.build @@ -7,7 +7,18 @@ cargo_ws = rust.workspace() assert(cargo_ws.packages() == ['answer', 'hello', 'workspace_test']) hello_rs = cargo_ws.subproject('hello') +assert(hello_rs.name() == 'hello') +assert(hello_rs.version() == '1.0.0') +assert(hello_rs.api() == '1') +assert(hello_rs.all_features() == ['default', 'goodbye']) +assert(hello_rs.features() == ['default', 'goodbye']) + answer_rs = cargo_ws.subproject('answer', '2') +assert(answer_rs.name() == 'answer') +assert(answer_rs.version() == '2.1.0') +assert(answer_rs.api() == '2') +assert(answer_rs.all_features() == ['default', 'large']) +assert(answer_rs.features() == ['default', 'large']) e = executable('workspace-test', 'src/main.rs', dependencies: [hello_rs.dependency(), answer_rs.dependency()], diff --git a/test cases/rust/32 rust.workspace workspace/src/main.rs b/test cases/rust/32 rust.workspace workspace/src/main.rs index 39b324801..13c02dd64 100644 --- a/test cases/rust/32 rust.workspace workspace/src/main.rs +++ b/test cases/rust/32 rust.workspace workspace/src/main.rs @@ -1,6 +1,8 @@ -use hello::greet; +use hello::{farewell, greet}; fn main() { println!("{}", greet()); + println!("{}", farewell()); println!("{}", answer::answer()); + println!("{}", answer::large_answer()); } diff --git a/test cases/rust/32 rust.workspace workspace/subprojects/answer-2.1/meson.build b/test cases/rust/32 rust.workspace workspace/subprojects/answer-2.1/meson.build index 7b4e10b23..e8d10117f 100644 --- a/test cases/rust/32 rust.workspace workspace/subprojects/answer-2.1/meson.build +++ b/test cases/rust/32 rust.workspace workspace/subprojects/answer-2.1/meson.build @@ -4,6 +4,6 @@ rust = import('rust') cargo_ws = rust.workspace() assert(cargo_ws.packages() == ['answer']) -l = static_library('answer', 'src/lib.rs') +l = static_library('answer', 'src/lib.rs', rust_args: ['--cfg', 'feature="large"']) dep = declare_dependency(link_with: l) meson.override_dependency('answer-2-rs', dep) diff --git a/test cases/rust/32 rust.workspace workspace/subprojects/hello-1.0/Cargo.toml b/test cases/rust/32 rust.workspace workspace/subprojects/hello-1.0/Cargo.toml index ad0ae458c..f6ab8eb91 100644 --- a/test cases/rust/32 rust.workspace workspace/subprojects/hello-1.0/Cargo.toml +++ b/test cases/rust/32 rust.workspace workspace/subprojects/hello-1.0/Cargo.toml @@ -4,4 +4,7 @@ version = "1.0.0" edition = "2021" [lib] -crate-type = ["lib"]
\ No newline at end of file +crate-type = ["lib"] + +[features] +goodbye = [] diff --git a/test cases/rust/32 rust.workspace workspace/subprojects/hello-1.0/src/lib.rs b/test cases/rust/32 rust.workspace workspace/subprojects/hello-1.0/src/lib.rs index 0631292f3..47346350b 100644 --- a/test cases/rust/32 rust.workspace workspace/subprojects/hello-1.0/src/lib.rs +++ b/test cases/rust/32 rust.workspace workspace/subprojects/hello-1.0/src/lib.rs @@ -2,3 +2,9 @@ pub fn greet() -> &'static str { "hello world" } + +#[cfg(feature = "goodbye")] +pub fn farewell() -> &'static str +{ + "goodbye" +} |
