Skip to content

Commit cdd8896

Browse files
committed
Add test scaffolding for the remote-test-client
1 parent 3d461af commit cdd8896

File tree

9 files changed

+131
-0
lines changed

9 files changed

+131
-0
lines changed

Cargo.lock

Lines changed: 66 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -229,6 +229,21 @@ dependencies = [
229229
"winnow 0.7.13",
230230
]
231231

232+
[[package]]
233+
name = "assert_cmd"
234+
version = "2.1.1"
235+
source = "registry+https://github.com/rust-lang/crates.io-index"
236+
checksum = "bcbb6924530aa9e0432442af08bbcafdad182db80d2e560da42a6d442535bf85"
237+
dependencies = [
238+
"anstyle",
239+
"bstr",
240+
"libc",
241+
"predicates",
242+
"predicates-core",
243+
"predicates-tree",
244+
"wait-timeout",
245+
]
246+
232247
[[package]]
233248
name = "autocfg"
234249
version = "1.5.0"
@@ -1151,6 +1166,12 @@ version = "0.1.13"
11511166
source = "registry+https://github.com/rust-lang/crates.io-index"
11521167
checksum = "56254986775e3233ffa9c4d7d3faaf6d36a2c09d30b20687e9f88bc8bafc16c8"
11531168

1169+
[[package]]
1170+
name = "difflib"
1171+
version = "0.4.0"
1172+
source = "registry+https://github.com/rust-lang/crates.io-index"
1173+
checksum = "6184e33543162437515c2e2b48714794e37845ec9851711914eec9d308f6ebe8"
1174+
11541175
[[package]]
11551176
name = "digest"
11561177
version = "0.10.7"
@@ -2982,6 +3003,33 @@ version = "0.1.1"
29823003
source = "registry+https://github.com/rust-lang/crates.io-index"
29833004
checksum = "925383efa346730478fb4838dbe9137d2a47675ad789c546d150a6e1dd4ab31c"
29843005

3006+
[[package]]
3007+
name = "predicates"
3008+
version = "3.1.3"
3009+
source = "registry+https://github.com/rust-lang/crates.io-index"
3010+
checksum = "a5d19ee57562043d37e82899fade9a22ebab7be9cef5026b07fda9cdd4293573"
3011+
dependencies = [
3012+
"anstyle",
3013+
"difflib",
3014+
"predicates-core",
3015+
]
3016+
3017+
[[package]]
3018+
name = "predicates-core"
3019+
version = "1.0.9"
3020+
source = "registry+https://github.com/rust-lang/crates.io-index"
3021+
checksum = "727e462b119fe9c93fd0eb1429a5f7647394014cf3c04ab2c0350eeb09095ffa"
3022+
3023+
[[package]]
3024+
name = "predicates-tree"
3025+
version = "1.0.12"
3026+
source = "registry+https://github.com/rust-lang/crates.io-index"
3027+
checksum = "72dd2d6d381dfb73a193c7fca536518d7caee39fc8503f74e7dc0be0531b425c"
3028+
dependencies = [
3029+
"predicates-core",
3030+
"termtree",
3031+
]
3032+
29853033
[[package]]
29863034
name = "prettydiff"
29873035
version = "0.7.0"
@@ -3262,6 +3310,9 @@ checksum = "2b15c43186be67a4fd63bee50d0303afffcef381492ebe2c5d87f324e1b8815c"
32623310
[[package]]
32633311
name = "remote-test-client"
32643312
version = "0.1.0"
3313+
dependencies = [
3314+
"assert_cmd",
3315+
]
32653316

32663317
[[package]]
32673318
name = "remote-test-server"
@@ -5458,6 +5509,12 @@ dependencies = [
54585509
"windows-sys 0.60.2",
54595510
]
54605511

5512+
[[package]]
5513+
name = "termtree"
5514+
version = "0.5.1"
5515+
source = "registry+https://github.com/rust-lang/crates.io-index"
5516+
checksum = "8f50febec83f5ee1df3015341d8bd429f2d1cc62bcba7ea2076759d315084683"
5517+
54615518
[[package]]
54625519
name = "test-float-parse"
54635520
version = "0.1.0"
@@ -6076,6 +6133,15 @@ version = "0.9.5"
60766133
source = "registry+https://github.com/rust-lang/crates.io-index"
60776134
checksum = "0b928f33d975fc6ad9f86c8f283853ad26bdd5b10b7f1542aa2fa15e2289105a"
60786135

6136+
[[package]]
6137+
name = "wait-timeout"
6138+
version = "0.2.1"
6139+
source = "registry+https://github.com/rust-lang/crates.io-index"
6140+
checksum = "09ac3b126d3914f9849036f826e054cbabdc8519970b8998ddaf3b5bd3c65f11"
6141+
dependencies = [
6142+
"libc",
6143+
]
6144+
60796145
[[package]]
60806146
name = "walkdir"
60816147
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
@@ -4003,3 +4003,40 @@ impl Step for CollectLicenseMetadata {
40034003
dest
40044004
}
40054005
}
4006+
4007+
#[derive(Debug, Clone, PartialEq, Eq, Hash)]
4008+
pub struct RemoteTestClientTests {
4009+
host: TargetSelection,
4010+
}
4011+
4012+
impl Step for RemoteTestClientTests {
4013+
type Output = ();
4014+
const IS_HOST: bool = true;
4015+
const DEFAULT: bool = true;
4016+
4017+
fn should_run(run: ShouldRun<'_>) -> ShouldRun<'_> {
4018+
run.path("src/tools/remote-test-client")
4019+
}
4020+
4021+
fn make_run(run: RunConfig<'_>) {
4022+
run.builder.ensure(Self { host: run.target });
4023+
}
4024+
4025+
fn run(self, builder: &Builder<'_>) {
4026+
let bootstrap_host = builder.config.host_target;
4027+
let compiler = builder.compiler(0, bootstrap_host);
4028+
4029+
let cargo = tool::prepare_tool_cargo(
4030+
builder,
4031+
compiler,
4032+
Mode::ToolBootstrap,
4033+
bootstrap_host,
4034+
Kind::Test,
4035+
"src/tools/remote-test-client",
4036+
SourceType::InTree,
4037+
&[],
4038+
);
4039+
4040+
run_cargo_test(cargo, &[], &[], "remote-test-client", bootstrap_host, builder);
4041+
}
4042+
}

src/bootstrap/src/core/builder/cli_paths/snapshots/x_test.snap

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,6 @@
11
---
22
source: src/bootstrap/src/core/builder/cli_paths/tests.rs
3+
assertion_line: 68
34
expression: test
45
---
56
[Test] test::Tidy
@@ -158,6 +159,9 @@ expression: test
158159
- Set({test::src/tools/jsondoclint})
159160
- Set({test::src/tools/replace-version-placeholder})
160161
- Set({test::tidyselftest})
162+
[Test] test::RemoteTestClientTests
163+
targets: [x86_64-unknown-linux-gnu]
164+
- Set({test::src/tools/remote-test-client})
161165
[Test] test::Linkcheck
162166
targets: [x86_64-unknown-linux-gnu]
163167
- Set({test::src/tools/linkchecker})

src/bootstrap/src/core/builder/cli_paths/snapshots/x_test_skip_coverage.snap

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,6 @@
11
---
22
source: src/bootstrap/src/core/builder/cli_paths/tests.rs
3+
assertion_line: 68
34
expression: test --skip=coverage
45
---
56
[Test] test::Tidy
@@ -157,6 +158,9 @@ expression: test --skip=coverage
157158
- Set({test::src/tools/jsondoclint})
158159
- Set({test::src/tools/replace-version-placeholder})
159160
- Set({test::tidyselftest})
161+
[Test] test::RemoteTestClientTests
162+
targets: [x86_64-unknown-linux-gnu]
163+
- Set({test::src/tools/remote-test-client})
160164
[Test] test::Linkcheck
161165
targets: [x86_64-unknown-linux-gnu]
162166
- Set({test::src/tools/linkchecker})

src/bootstrap/src/core/builder/cli_paths/snapshots/x_test_skip_tests.snap

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,6 @@
11
---
22
source: src/bootstrap/src/core/builder/cli_paths/tests.rs
3+
assertion_line: 68
34
expression: test --skip=tests
45
---
56
[Test] test::Tidy
@@ -121,6 +122,9 @@ expression: test --skip=tests
121122
- Set({test::src/tools/jsondoclint})
122123
- Set({test::src/tools/replace-version-placeholder})
123124
- Set({test::tidyselftest})
125+
[Test] test::RemoteTestClientTests
126+
targets: [x86_64-unknown-linux-gnu]
127+
- Set({test::src/tools/remote-test-client})
124128
[Test] test::Linkcheck
125129
targets: [x86_64-unknown-linux-gnu]
126130
- Set({test::src/tools/linkchecker})

src/bootstrap/src/core/builder/cli_paths/snapshots/x_test_skip_tests_etc.snap

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,6 @@
11
---
22
source: src/bootstrap/src/core/builder/cli_paths/tests.rs
3+
assertion_line: 68
34
expression: test --skip=tests --skip=coverage-map --skip=coverage-run --skip=library --skip=tidyselftest
45
---
56
[Test] test::Tidy
@@ -100,6 +101,9 @@ expression: test --skip=tests --skip=coverage-map --skip=coverage-run --skip=lib
100101
- Set({test::src/tools/coverage-dump})
101102
- Set({test::src/tools/jsondoclint})
102103
- Set({test::src/tools/replace-version-placeholder})
104+
[Test] test::RemoteTestClientTests
105+
targets: [x86_64-unknown-linux-gnu]
106+
- Set({test::src/tools/remote-test-client})
103107
[Test] test::Linkcheck
104108
targets: [x86_64-unknown-linux-gnu]
105109
- Set({test::src/tools/linkchecker})

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

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -904,6 +904,7 @@ impl<'a> Builder<'a> {
904904
test::CrateRustdoc,
905905
test::CrateRustdocJsonTypes,
906906
test::CrateBootstrap,
907+
test::RemoteTestClientTests,
907908
test::Linkcheck,
908909
test::TierCheck,
909910
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: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,10 @@
1+
#[test]
2+
fn test_help() {
3+
let mut cmd = assert_cmd::cargo::cargo_bin_cmd!();
4+
cmd.arg("help");
5+
6+
let output = cmd.unwrap();
7+
8+
let stdout = String::from_utf8(output.stdout.clone()).unwrap();
9+
assert!(stdout.trim().starts_with("Usage:"));
10+
}

0 commit comments

Comments
 (0)