Skip to content

Commit

Permalink
rewrite env-dep-info to rmake
Browse files Browse the repository at this point in the history
  • Loading branch information
Oneirical committed Jul 12, 2024
1 parent 87c7a42 commit fe76650
Show file tree
Hide file tree
Showing 9 changed files with 47 additions and 27 deletions.
9 changes: 6 additions & 3 deletions src/tools/run-make-support/src/rustc.rs
Original file line number Diff line number Diff line change
Expand Up @@ -4,13 +4,15 @@ use std::path::Path;

use crate::{command, cwd, env_var, set_host_rpath};

/// Construct a new `rustc` invocation.
/// Construct a new `rustc` invocation. This will automatically set the library
/// search path as `-L cwd()`. Use [`bare_rustc`] to avoid this.
#[track_caller]
pub fn rustc() -> Rustc {
Rustc::new()
}

/// Construct a plain `rustc` invocation with no flags set.
/// Construct a plain `rustc` invocation with no flags set. Note that [`set_host_rpath`]
/// still presets the environment variable `HOST_RPATH_DIR` by default.
#[track_caller]
pub fn bare_rustc() -> Rustc {
Rustc::bare()
Expand Down Expand Up @@ -42,7 +44,8 @@ fn setup_common() -> Command {
impl Rustc {
// `rustc` invocation constructor methods

/// Construct a new `rustc` invocation.
/// Construct a new `rustc` invocation. This will automatically set the library
/// search path as `-L cwd()`. Use [`bare_rustc`] to avoid this.
#[track_caller]
pub fn new() -> Self {
let mut cmd = setup_common();
Expand Down
2 changes: 0 additions & 2 deletions src/tools/tidy/src/allowed_run_make_makefiles.txt
Original file line number Diff line number Diff line change
Expand Up @@ -23,7 +23,6 @@ run-make/dep-info/Makefile
run-make/dump-ice-to-disk/Makefile
run-make/dump-mono-stats/Makefile
run-make/emit-to-stdout/Makefile
run-make/env-dep-info/Makefile
run-make/export-executable-symbols/Makefile
run-make/extern-diff-internal-name/Makefile
run-make/extern-flag-disambiguates/Makefile
Expand Down Expand Up @@ -58,7 +57,6 @@ run-make/issue-35164/Makefile
run-make/issue-36710/Makefile
run-make/issue-47551/Makefile
run-make/issue-69368/Makefile
run-make/issue-83045/Makefile
run-make/issue-84395-lto-embed-bitcode/Makefile
run-make/issue-85019-moved-src-dir/Makefile
run-make/issue-85401-static-mir/Makefile
Expand Down
19 changes: 0 additions & 19 deletions tests/run-make/env-dep-info/Makefile

This file was deleted.

6 changes: 6 additions & 0 deletions tests/run-make/env-dep-info/correct_macro.d
Original file line number Diff line number Diff line change
@@ -0,0 +1,6 @@
macro_use.d: macro_use.rs

macro_use.rs:

# env-dep:EXISTING_PROC_MACRO_ENV=1
# env-dep:NONEXISTENT_PROC_MACEO_ENV
8 changes: 8 additions & 0 deletions tests/run-make/env-dep-info/correct_main.d
Original file line number Diff line number Diff line change
@@ -0,0 +1,8 @@
main.d: main.rs

main.rs:

# env-dep:ESCAPE\nESCAPE\\
# env-dep:EXISTING_ENV=1
# env-dep:EXISTING_OPT_ENV=1
# env-dep:NONEXISTENT_OPT_ENV
21 changes: 21 additions & 0 deletions tests/run-make/env-dep-info/rmake.rs
Original file line number Diff line number Diff line change
@@ -0,0 +1,21 @@
// Inside dep-info emit files, #71858 made it so all accessed environment
// variables are usefully printed. This test checks that this feature works
// as intended by checking if the environment variables used in compilation
// appear in the output dep-info files.
// See https://github.com/rust-lang/rust/issues/40364

use run_make_support::{diff, rustc};

fn main() {
rustc()
.env("EXISTING_ENV", "1")
.env("EXISTING_OPT_ENV", "1")
.emit("dep-info")
.input("main.rs")
.run();
diff().expected_file("correct_main.d").actual_file("main.d").run();
// Procedural macro
rustc().input("macro_def.rs").run();
rustc().env("EXISTING_PROC_MACRO_ENV", "1").emit("dep-info").input("macro_use.rs").run();
diff().expected_file("correct_macro.d").actual_file("macro_use.d").run();
}
1 change: 0 additions & 1 deletion tests/run-make/ice-dep-cannot-find-dep/rmake.rs
Original file line number Diff line number Diff line change
Expand Up @@ -27,7 +27,6 @@ fn main() {
.input("b.rs")
.arg("--verbose")
.run();
fs_wrapper::create_dir("wrong_directory");
bare_rustc()
.extern_("b", rust_lib_name("b"))
.crate_type("rlib")
Expand Down
3 changes: 3 additions & 0 deletions tests/run-make/rustc-macro-dep-files/correct.d
Original file line number Diff line number Diff line change
@@ -0,0 +1,3 @@
bar.d: bar.rs

bar.rs:
5 changes: 3 additions & 2 deletions tests/run-make/rustc-macro-dep-files/rmake.rs
Original file line number Diff line number Diff line change
Expand Up @@ -4,10 +4,11 @@
// that macro code is not falsely seen as coming from a different file in dep-info.
// See https://github.com/rust-lang/rust/issues/36625

use run_make_support::{fs_wrapper, rustc, target};
use run_make_support::{diff, rustc, target};

fn main() {
rustc().input("foo.rs").run();
rustc().input("bar.rs").target(target()).emit("dep-info").run();
assert!(!fs_wrapper::read_to_string("bar.d").contains("proc-macro source"));
// The emitted file should not contain "proc-macro source".
diff().expected_file("correct.d").actual_file("bar.d").run();
}

0 comments on commit fe76650

Please sign in to comment.