Skip to content

Commit a13909c

Browse files
committed
Add integration tests
1 parent 7a6c157 commit a13909c

File tree

5 files changed

+119
-0
lines changed

5 files changed

+119
-0
lines changed

Cargo.lock

Lines changed: 66 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -219,6 +219,21 @@ dependencies = [
219219
"winnow 0.7.13",
220220
]
221221

222+
[[package]]
223+
name = "assert_cmd"
224+
version = "2.1.1"
225+
source = "registry+https://github.com/rust-lang/crates.io-index"
226+
checksum = "bcbb6924530aa9e0432442af08bbcafdad182db80d2e560da42a6d442535bf85"
227+
dependencies = [
228+
"anstyle",
229+
"bstr",
230+
"libc",
231+
"predicates",
232+
"predicates-core",
233+
"predicates-tree",
234+
"wait-timeout",
235+
]
236+
222237
[[package]]
223238
name = "autocfg"
224239
version = "1.5.0"
@@ -1118,6 +1133,12 @@ version = "0.1.13"
11181133
source = "registry+https://github.com/rust-lang/crates.io-index"
11191134
checksum = "56254986775e3233ffa9c4d7d3faaf6d36a2c09d30b20687e9f88bc8bafc16c8"
11201135

1136+
[[package]]
1137+
name = "difflib"
1138+
version = "0.4.0"
1139+
source = "registry+https://github.com/rust-lang/crates.io-index"
1140+
checksum = "6184e33543162437515c2e2b48714794e37845ec9851711914eec9d308f6ebe8"
1141+
11211142
[[package]]
11221143
name = "digest"
11231144
version = "0.10.7"
@@ -2939,6 +2960,33 @@ version = "0.1.1"
29392960
source = "registry+https://github.com/rust-lang/crates.io-index"
29402961
checksum = "925383efa346730478fb4838dbe9137d2a47675ad789c546d150a6e1dd4ab31c"
29412962

2963+
[[package]]
2964+
name = "predicates"
2965+
version = "3.1.3"
2966+
source = "registry+https://github.com/rust-lang/crates.io-index"
2967+
checksum = "a5d19ee57562043d37e82899fade9a22ebab7be9cef5026b07fda9cdd4293573"
2968+
dependencies = [
2969+
"anstyle",
2970+
"difflib",
2971+
"predicates-core",
2972+
]
2973+
2974+
[[package]]
2975+
name = "predicates-core"
2976+
version = "1.0.9"
2977+
source = "registry+https://github.com/rust-lang/crates.io-index"
2978+
checksum = "727e462b119fe9c93fd0eb1429a5f7647394014cf3c04ab2c0350eeb09095ffa"
2979+
2980+
[[package]]
2981+
name = "predicates-tree"
2982+
version = "1.0.12"
2983+
source = "registry+https://github.com/rust-lang/crates.io-index"
2984+
checksum = "72dd2d6d381dfb73a193c7fca536518d7caee39fc8503f74e7dc0be0531b425c"
2985+
dependencies = [
2986+
"predicates-core",
2987+
"termtree",
2988+
]
2989+
29422990
[[package]]
29432991
name = "prettydiff"
29442992
version = "0.7.0"
@@ -3219,6 +3267,9 @@ checksum = "2b15c43186be67a4fd63bee50d0303afffcef381492ebe2c5d87f324e1b8815c"
32193267
[[package]]
32203268
name = "remote-test-client"
32213269
version = "0.1.0"
3270+
dependencies = [
3271+
"assert_cmd",
3272+
]
32223273

32233274
[[package]]
32243275
name = "remote-test-server"
@@ -5415,6 +5466,12 @@ dependencies = [
54155466
"windows-sys 0.60.2",
54165467
]
54175468

5469+
[[package]]
5470+
name = "termtree"
5471+
version = "0.5.1"
5472+
source = "registry+https://github.com/rust-lang/crates.io-index"
5473+
checksum = "8f50febec83f5ee1df3015341d8bd429f2d1cc62bcba7ea2076759d315084683"
5474+
54185475
[[package]]
54195476
name = "test-float-parse"
54205477
version = "0.1.0"
@@ -6033,6 +6090,15 @@ version = "0.9.5"
60336090
source = "registry+https://github.com/rust-lang/crates.io-index"
60346091
checksum = "0b928f33d975fc6ad9f86c8f283853ad26bdd5b10b7f1542aa2fa15e2289105a"
60356092

6093+
[[package]]
6094+
name = "wait-timeout"
6095+
version = "0.2.1"
6096+
source = "registry+https://github.com/rust-lang/crates.io-index"
6097+
checksum = "09ac3b126d3914f9849036f826e054cbabdc8519970b8998ddaf3b5bd3c65f11"
6098+
dependencies = [
6099+
"libc",
6100+
]
6101+
60366102
[[package]]
60376103
name = "walkdir"
60386104
version = "2.5.0"

src/bootstrap/src/core/build_steps/test.rs

Lines changed: 37 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -3969,3 +3969,40 @@ impl Step for CollectLicenseMetadata {
39693969
dest
39703970
}
39713971
}
3972+
3973+
#[derive(Debug, Clone, PartialEq, Eq, Hash)]
3974+
pub struct RemoteTestClientTests {
3975+
host: TargetSelection,
3976+
}
3977+
3978+
impl Step for RemoteTestClientTests {
3979+
type Output = ();
3980+
const IS_HOST: bool = true;
3981+
const DEFAULT: bool = true;
3982+
3983+
fn should_run(run: ShouldRun<'_>) -> ShouldRun<'_> {
3984+
run.path("src/tools/remote-test-client")
3985+
}
3986+
3987+
fn make_run(run: RunConfig<'_>) {
3988+
run.builder.ensure(Self { host: run.target });
3989+
}
3990+
3991+
fn run(self, builder: &Builder<'_>) {
3992+
let bootstrap_host = builder.config.host_target;
3993+
let compiler = builder.compiler(0, bootstrap_host);
3994+
3995+
let cargo = tool::prepare_tool_cargo(
3996+
builder,
3997+
compiler,
3998+
Mode::ToolBootstrap,
3999+
bootstrap_host,
4000+
Kind::Test,
4001+
"src/tools/remote-test-client",
4002+
SourceType::InTree,
4003+
&[],
4004+
);
4005+
4006+
run_cargo_test(cargo, &[], &[], "remote-test-client", bootstrap_host, builder);
4007+
}
4008+
}

src/bootstrap/src/core/builder/mod.rs

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1109,6 +1109,7 @@ impl<'a> Builder<'a> {
11091109
test::CrateRustdoc,
11101110
test::CrateRustdocJsonTypes,
11111111
test::CrateBootstrap,
1112+
test::RemoteTestClientTests,
11121113
test::Linkcheck,
11131114
test::TierCheck,
11141115
test::Cargotest,

src/tools/remote-test-client/Cargo.toml

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -4,3 +4,4 @@ version = "0.1.0"
44
edition = "2021"
55

66
[dependencies]
7+
assert_cmd = "2"
Lines changed: 14 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,14 @@
1+
#[test]
2+
fn test_timeout() {
3+
let mut cmd = assert_cmd::cargo::cargo_bin_cmd!();
4+
cmd.env("TEST_DEVICE_CONNECT_TIMEOUT_SECONDS", "1");
5+
cmd.env("TEST_DEVICE_ADDR", "0.0.0.0:6969");
6+
cmd.args(["spawn-emulator", "riscv64-unknown-linux-gnu", "./"]);
7+
cmd.arg(std::env::temp_dir());
8+
9+
let assert = cmd.assert().failure();
10+
let output = assert.get_output();
11+
12+
let stderr = String::from_utf8(output.stderr.clone()).unwrap();
13+
assert!(stderr.contains("Gave up trying to connect to test device"));
14+
}

0 commit comments

Comments
 (0)