Skip to content

Commit a558538

Browse files
committed
test cases: add test for cargo workspaces
Extracted from a patch by Xavier Claessens <xclaessens@netflix.com>, adjusted to make it compile with cargo.
1 parent f2e9788 commit a558538

File tree

12 files changed

+88
-0
lines changed

12 files changed

+88
-0
lines changed
Lines changed: 13 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,13 @@
1+
project('cargo workspace', 'c', 'rust')
2+
3+
foo_rs = dependency('foo-1-rs')
4+
e = executable('test-foo-1-rs', 'test_foo_1.rs',
5+
dependencies: [foo_rs],
6+
)
7+
test('test-foo-1-rs', e)
8+
9+
foo_cdylib = dependency('foo-1-cdylib')
10+
e = executable('test-foo-1-cdylib', 'test_foo_1.c',
11+
dependencies: [foo_cdylib],
12+
)
13+
test('test-foo-1-rs', e)
Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,5 @@
1+
[wrap-file]
2+
method=cargo
3+
4+
[provide]
5+
dependency_names=foo-1-rs
Lines changed: 15 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,15 @@
1+
[workspace]
2+
resolver = "2"
3+
members = [
4+
"src/foo",
5+
"src/member1"
6+
]
7+
default-members = ["src/foo"]
8+
9+
[workspace.package]
10+
edition = "2021"
11+
version = "1.0.0"
12+
13+
[workspace.dependencies]
14+
member1 = { path="./src/member1" }
15+
member2 = { path="src/member2", features = ["f1"] }
Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,10 @@
1+
[package]
2+
name = "foo"
3+
edition.workspace = true
4+
version.workspace = true
5+
6+
[lib]
7+
crate-type = ["lib", "cdylib"]
8+
9+
[dependencies]
10+
m1 = { path="../member1", package="member1" }
Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,6 @@
1+
extern crate m1;
2+
3+
#[no_mangle]
4+
pub extern "C" fn foo() -> i32 {
5+
m1::member1() + 1
6+
}
Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,3 @@
1+
pub fn foo() -> i32 {
2+
member1::member1() + 1
3+
}
Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,7 @@
1+
[package]
2+
name = "member1"
3+
edition.workspace = true
4+
version.workspace = true
5+
6+
[dependencies]
7+
member2 = { workspace = true, features=["f2"] }
Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,5 @@
1+
extern crate member2;
2+
3+
pub fn member1() -> i32 {
4+
member2::member2() + 1
5+
}
Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,9 @@
1+
[package]
2+
name = "member2"
3+
edition.workspace = true
4+
version.workspace = true
5+
6+
[features]
7+
default = []
8+
f1 = []
9+
f2 = []
Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,5 @@
1+
#[cfg(feature = "f1")]
2+
#[cfg(feature = "f2")]
3+
pub fn member2() -> i32 {
4+
1
5+
}

0 commit comments

Comments
 (0)