Skip to content

Commit 2c215cd

Browse files
authored
#1682: fix build tests (#1736)
* Fix build tests * revert implementation
1 parent b63a40b commit 2c215cd

File tree

3 files changed

+39
-22
lines changed

3 files changed

+39
-22
lines changed

Cargo.lock

+1
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

cmd/crates/soroban-test/Cargo.toml

+1
Original file line numberDiff line numberDiff line change
@@ -32,6 +32,7 @@ assert_fs = "1.0.7"
3232
predicates = { workspace = true }
3333
fs_extra = "1.3.0"
3434
toml = { workspace = true }
35+
home = "0.5.9"
3536

3637

3738
[dev-dependencies]

cmd/crates/soroban-test/tests/it/build.rs

+37-22
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,7 @@ use predicates::prelude::predicate;
22
use soroban_cli::xdr::{Limited, Limits, ReadXdr, ScMetaEntry, ScMetaV0};
33
use soroban_spec_tools::contract::Spec;
44
use soroban_test::TestEnv;
5+
use std::env;
56
use std::io::Cursor;
67

78
#[test]
@@ -16,11 +17,9 @@ fn build_all() {
1617
.arg("--print-commands-only")
1718
.assert()
1819
.success()
19-
.stdout(predicate::eq("\
20-
cargo rustc --manifest-path=contracts/add/Cargo.toml --crate-type=cdylib --target=wasm32-unknown-unknown --release
20+
.stdout(predicate::eq(with_flags("cargo rustc --manifest-path=contracts/add/Cargo.toml --crate-type=cdylib --target=wasm32-unknown-unknown --release
2121
cargo rustc --manifest-path=contracts/call/Cargo.toml --crate-type=cdylib --target=wasm32-unknown-unknown --release
22-
cargo rustc --manifest-path=contracts/add/add2/Cargo.toml --crate-type=cdylib --target=wasm32-unknown-unknown --release
23-
"));
22+
cargo rustc --manifest-path=contracts/add/add2/Cargo.toml --crate-type=cdylib --target=wasm32-unknown-unknown --release")));
2423
}
2524

2625
#[test]
@@ -36,9 +35,7 @@ fn build_package_by_name() {
3635
.arg("--package=add")
3736
.assert()
3837
.success()
39-
.stdout(predicate::eq("\
40-
cargo rustc --manifest-path=contracts/add/Cargo.toml --crate-type=cdylib --target=wasm32-unknown-unknown --release
41-
"));
38+
.stdout(predicate::eq(with_flags("cargo rustc --manifest-path=contracts/add/Cargo.toml --crate-type=cdylib --target=wasm32-unknown-unknown --release")));
4239
}
4340

4441
#[test]
@@ -54,9 +51,7 @@ fn build_package_by_current_dir() {
5451
.assert()
5552
.success()
5653
.stdout(predicate::eq(
57-
"\
58-
cargo rustc --manifest-path=Cargo.toml --crate-type=cdylib --target=wasm32-unknown-unknown --release
59-
",
54+
with_flags("cargo rustc --manifest-path=Cargo.toml --crate-type=cdylib --target=wasm32-unknown-unknown --release"),
6055
));
6156
}
6257

@@ -85,20 +80,17 @@ fn build_all_when_in_non_package_directory() {
8580
let sandbox = TestEnv::default();
8681
let cargo_dir = std::path::PathBuf::from(env!("CARGO_MANIFEST_DIR"));
8782
let fixture_path = cargo_dir.join("tests/fixtures/workspace/contracts/add/src/");
83+
8884
sandbox
8985
.new_assert_cmd("contract")
9086
.current_dir(fixture_path)
9187
.arg("build")
9288
.arg("--print-commands-only")
9389
.assert()
9490
.success()
95-
.stdout(predicate::eq(
96-
"\
97-
cargo rustc --manifest-path=../Cargo.toml --crate-type=cdylib --target=wasm32-unknown-unknown --release
98-
cargo rustc --manifest-path=../../call/Cargo.toml --crate-type=cdylib --target=wasm32-unknown-unknown --release
99-
cargo rustc --manifest-path=../add2/Cargo.toml --crate-type=cdylib --target=wasm32-unknown-unknown --release
100-
",
101-
));
91+
.stdout(predicate::eq(with_flags(
92+
"cargo rustc --manifest-path=../Cargo.toml --crate-type=cdylib --target=wasm32-unknown-unknown --release"
93+
)));
10294
}
10395

10496
#[test]
@@ -113,11 +105,7 @@ fn build_default_members() {
113105
.arg("--print-commands-only")
114106
.assert()
115107
.success()
116-
.stdout(predicate::eq(
117-
"\
118-
cargo rustc --manifest-path=contracts/add/Cargo.toml --crate-type=cdylib --target=wasm32-unknown-unknown --release
119-
",
120-
));
108+
.stdout(predicate::eq(with_flags("cargo rustc --manifest-path=contracts/add/Cargo.toml --crate-type=cdylib --target=wasm32-unknown-unknown --release")));
121109
}
122110

123111
#[test]
@@ -185,3 +173,30 @@ fn build_with_metadata() {
185173

186174
assert_eq!(entries, expected_entries);
187175
}
176+
177+
fn with_flags(expected: &str) -> String {
178+
let cargo_home = home::cargo_home().unwrap();
179+
let cargo_home = format!("{}", cargo_home.display());
180+
let registry_prefix = format!("{cargo_home}/registry/src/");
181+
182+
let vec: Vec<_> = if env::var("RUSTFLAGS").is_ok() {
183+
expected.split("\n").map(|x| x.to_string()).collect()
184+
} else {
185+
expected
186+
.split("\n")
187+
.map(|x| {
188+
format!(
189+
"CARGO_BUILD_RUSTFLAGS=--remap-path-prefix={}= {}",
190+
registry_prefix, x
191+
)
192+
})
193+
.collect()
194+
};
195+
196+
return format!(
197+
"\
198+
{}
199+
",
200+
vec.join("\n")
201+
);
202+
}

0 commit comments

Comments
 (0)