Skip to content

Commit b54ae7e

Browse files
committed
coalesce dep-info-spaces and dep-info-doesnt-run-much into dep-info
1 parent 9bad7ba commit b54ae7e

File tree

11 files changed

+41
-66
lines changed

11 files changed

+41
-66
lines changed

src/tools/tidy/src/allowed_run_make_makefiles.txt

Lines changed: 0 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,5 @@
11
run-make/branch-protection-check-IBT/Makefile
22
run-make/cat-and-grep-sanity-check/Makefile
3-
run-make/dep-info-doesnt-run-much/Makefile
4-
run-make/dep-info-spaces/Makefile
5-
run-make/dep-info/Makefile
63
run-make/emit-to-stdout/Makefile
74
run-make/extern-fn-reachable/Makefile
85
run-make/incr-add-rust-src-component/Makefile

tests/run-make/dep-info-doesnt-run-much/Makefile

Lines changed: 0 additions & 4 deletions
This file was deleted.

tests/run-make/dep-info-spaces/Makefile

Lines changed: 0 additions & 19 deletions
This file was deleted.

tests/run-make/dep-info-spaces/Makefile.foo

Lines changed: 0 additions & 7 deletions
This file was deleted.

tests/run-make/dep-info-spaces/bar.rs

Lines changed: 0 additions & 1 deletion
This file was deleted.

tests/run-make/dep-info/Makefile

Lines changed: 0 additions & 25 deletions
This file was deleted.

tests/run-make/dep-info/Makefile.foo

Lines changed: 0 additions & 7 deletions
This file was deleted.

tests/run-make/dep-info/rmake.rs

Lines changed: 41 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,41 @@
1+
// This is a simple smoke test for rustc's `--emit dep-info` feature. It prints out
2+
// information about dependencies in a Makefile-compatible format, as a `.d` file.
3+
4+
// This test first checks that emitting dep-info disables static analysis, preventing
5+
// compilation of `erroneous.rs` from causing a compilation failure.
6+
// Then, it checks that compilation using the flag is successful in general, even with
7+
// empty source files or source files that contain a whitespace character.
8+
9+
// Finally, it removes one dependency and checks that compilation is still successful.
10+
// See https://github.com/rust-lang/rust/pull/10698
11+
12+
// FIXME try it on windows and freebsd
13+
// on windows `rustc --dep-info` produces Makefile dependency with
14+
// windows native paths (e.g. `c:\path\to\libfoo.a`)
15+
// but msys make seems to fail to recognize such paths, so test fails.
16+
17+
use run_make_support::{rfs, rustc};
18+
19+
fn main() {
20+
// We're only emitting dep info, so we shouldn't be running static analysis to
21+
// figure out that this program is erroneous.
22+
rustc().input("erroneous.rs").emit("dep-info").run();
23+
24+
rustc().input("lib.rs").emit("dep-info,link").crate_type("lib").run();
25+
rfs::remove_file("foo.rs");
26+
rfs::create_file("foo.rs");
27+
// Compilation should succeed even if `foo.rs` is empty.
28+
rustc().input("lib.rs").emit("dep-info,link").crate_type("lib").run();
29+
30+
// Again, with a space in the filename this time around.
31+
rustc().input("lib_foofoo.rs").emit("dep-info,link").crate_type("lib").run();
32+
rfs::remove_file("foo foo.rs");
33+
rfs::create_file("foo foo.rs");
34+
// Compilation should succeed even if `foo foo.rs` is empty.
35+
rustc().input("lib_foofoo.rs").emit("dep-info,link").crate_type("lib").run();
36+
37+
// When a source file is deleted, compilation should still succeed if the library
38+
// also loses this source file dependency.
39+
rfs::remove_file("bar.rs");
40+
rustc().input("lib2.rs").emit("dep-info,link").crate_type("lib").run();
41+
}

0 commit comments

Comments
 (0)