Skip to content
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.

Commit 5fdefde

Browse files
committedAug 15, 2024
Auto merge of #128787 - Oneirical:infohazardous-deprogram, r=<try>
Coalesce `dep-info`, `dep-info-spaces` and `dep-info-doesnt-run-much` `run-make` tests into `dep-info` rmake.rs Part of #121876 and the associated [Google Summer of Code project](https://blog.rust-lang.org/2024/05/01/gsoc-2024-selected-projects.html). This is one of the most ancient tests in the `run-make` directory and its Makefile does some unexpected things, like creating and deleting a `done` directory over and over, sleeping at certain times (this is the [commit](0d9fd8e) that added the `sleep`). I tried to preserve the intent of the test, which is smoke-testing that `dep-info` works. try-job: x86_64-msvc try-job: i686-mingw try-job: aarch64-gnu try-job: aarch64-apple try-job: test-various try-job: armhf-gnu try-job: dist-various-1
2 parents 13a5289 + 7b18186 commit 5fdefde

File tree

11 files changed

+36
-66
lines changed

11 files changed

+36
-66
lines changed
 

‎src/tools/tidy/src/allowed_run_make_makefiles.txt

-3
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

-4
This file was deleted.

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

-19
This file was deleted.

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

-7
This file was deleted.

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

-1
This file was deleted.

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

-25
This file was deleted.

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

-7
This file was deleted.
File renamed without changes.
File renamed without changes.

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

+36
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,36 @@
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+
use run_make_support::{rfs, rustc};
13+
14+
fn main() {
15+
// We're only emitting dep info, so we shouldn't be running static analysis to
16+
// figure out that this program is erroneous.
17+
rustc().input("erroneous.rs").emit("dep-info").run();
18+
19+
rustc().input("lib.rs").emit("dep-info,link").crate_type("lib").run();
20+
rfs::remove_file("foo.rs");
21+
rfs::create_file("foo.rs");
22+
// Compilation should succeed even if `foo.rs` is empty.
23+
rustc().input("lib.rs").emit("dep-info,link").crate_type("lib").run();
24+
25+
// Again, with a space in the filename this time around.
26+
rustc().input("lib_foofoo.rs").emit("dep-info,link").crate_type("lib").run();
27+
rfs::remove_file("foo foo.rs");
28+
rfs::create_file("foo foo.rs");
29+
// Compilation should succeed even if `foo foo.rs` is empty.
30+
rustc().input("lib_foofoo.rs").emit("dep-info,link").crate_type("lib").run();
31+
32+
// When a source file is deleted, compilation should still succeed if the library
33+
// also loses this source file dependency.
34+
rfs::remove_file("bar.rs");
35+
rustc().input("lib2.rs").emit("dep-info,link").crate_type("lib").run();
36+
}

0 commit comments

Comments
 (0)
Failed to load comments.