Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Migrate use-suggestions-rust-2018, overwrite-input, lto-dylib-dep and many-crates-but-no-match run-make tests to rmake #127000

Merged
merged 4 commits into from
Jun 28, 2024
Merged
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
4 changes: 0 additions & 4 deletions src/tools/tidy/src/allowed_run_make_makefiles.txt
Original file line number Diff line number Diff line change
@@ -94,14 +94,12 @@ run-make/llvm-ident/Makefile
run-make/long-linker-command-lines-cmd-exe/Makefile
run-make/long-linker-command-lines/Makefile
run-make/longjmp-across-rust/Makefile
run-make/lto-dylib-dep/Makefile
run-make/lto-linkage-used-attr/Makefile
run-make/lto-no-link-whole-rlib/Makefile
run-make/lto-smoke-c/Makefile
run-make/macos-deployment-target/Makefile
run-make/macos-fat-archive/Makefile
run-make/manual-link/Makefile
run-make/many-crates-but-no-match/Makefile
run-make/metadata-dep-info/Makefile
run-make/min-global-align/Makefile
run-make/mingw-export-call-convention/Makefile
@@ -119,7 +117,6 @@ run-make/optimization-remarks-dir-pgo/Makefile
run-make/optimization-remarks-dir/Makefile
run-make/output-type-permutations/Makefile
run-make/override-aliased-flags/Makefile
run-make/overwrite-input/Makefile
run-make/panic-abort-eh_frame/Makefile
run-make/pass-linker-flags-flavor/Makefile
run-make/pass-linker-flags-from-dep/Makefile
@@ -193,7 +190,6 @@ run-make/translation/Makefile
run-make/type-mismatch-same-crate-name/Makefile
run-make/unknown-mod-stdin/Makefile
run-make/unstable-flag-required/Makefile
run-make/use-suggestions-rust-2018/Makefile
run-make/used-cdylib-macos/Makefile
run-make/volatile-intrinsics/Makefile
run-make/wasm-exceptions-nostd/Makefile
11 changes: 0 additions & 11 deletions tests/run-make/lto-dylib-dep/Makefile

This file was deleted.

15 changes: 15 additions & 0 deletions tests/run-make/lto-dylib-dep/rmake.rs
Original file line number Diff line number Diff line change
@@ -0,0 +1,15 @@
// Compiling with link-time-optimizations (LTO) would previously run into an internal
// compiler error (ICE) if a dylib was passed as a required library. This was due to a
// misplaced assert! call in the compiler, which is now removed. This test checks that
// this bug does not make a resurgence and that dylib+lto compilation succeeds.
// See https://github.com/rust-lang/rust/issues/59137

//@ ignore-cross-compile

use run_make_support::{run, rustc};

fn main() {
rustc().input("a_dylib.rs").crate_type("dylib").arg("-Cprefer-dynamic").run();
rustc().input("main.rs").arg("-Clto").run();
run("main");
}
35 changes: 0 additions & 35 deletions tests/run-make/many-crates-but-no-match/Makefile

This file was deleted.

31 changes: 31 additions & 0 deletions tests/run-make/many-crates-but-no-match/rmake.rs
Original file line number Diff line number Diff line change
@@ -0,0 +1,31 @@
// An extended version of the ui/changing-crates.rs test, this test puts
// multiple mismatching crates into the search path of crateC (A2 and A3)
// and checks that the standard error contains helpful messages to indicate
// what should be done to fix the issue.
// See https://github.com/rust-lang/rust/issues/13266

use run_make_support::{fs_wrapper, rustc};

fn main() {
fs_wrapper::create_dir("a1");
fs_wrapper::create_dir("a2");
fs_wrapper::create_dir("a3");
rustc().crate_type("rlib").out_dir("a1").input("crateA1.rs").run();
rustc().crate_type("rlib").library_search_path("a1").input("crateB.rs").run();
rustc().crate_type("rlib").out_dir("a2").input("crateA2.rs").run();
rustc().crate_type("rlib").out_dir("a3").input("crateA3.rs").run();
// Ensure crateC fails to compile since A1 is "missing" and A2/A3 hashes do not match
rustc()
.crate_type("rlib")
.library_search_path("a2")
.library_search_path("a3")
.input("crateC.rs")
.run_fail()
.assert_stderr_contains(
"found possibly newer version of crate `crateA` which `crateB` depends on",
)
.assert_stderr_contains("note: perhaps that crate needs to be recompiled?")
.assert_stderr_contains("crate `crateA`:")
.assert_stderr_contains("crate `crateB`:");
// the 'crate `crateA`' will match two entries.
}
7 changes: 0 additions & 7 deletions tests/run-make/overwrite-input/Makefile

This file was deleted.

4 changes: 1 addition & 3 deletions tests/run-make/overwrite-input/file.stderr
Original file line number Diff line number Diff line change
@@ -1,6 +1,4 @@
warning: ignoring --out-dir flag due to -o flag

error: the input file "main.rs" would be overwritten by the generated executable

error: aborting due to 1 previous error; 1 warning emitted
error: aborting due to 1 previous error

4 changes: 1 addition & 3 deletions tests/run-make/overwrite-input/folder.stderr
Original file line number Diff line number Diff line change
@@ -1,6 +1,4 @@
warning: ignoring --out-dir flag due to -o flag

error: the generated executable for the input file "main.rs" conflicts with the existing directory "."

error: aborting due to 1 previous error; 1 warning emitted
error: aborting due to 1 previous error

6 changes: 0 additions & 6 deletions tests/run-make/overwrite-input/main.stderr

This file was deleted.

13 changes: 13 additions & 0 deletions tests/run-make/overwrite-input/rmake.rs
Original file line number Diff line number Diff line change
@@ -0,0 +1,13 @@
// An attempt to set the output `-o` into a directory or a file we cannot write into should indeed
// be an error; but not an ICE (Internal Compiler Error). This test attempts both and checks
// that the standard error matches what is expected.
// See https://github.com/rust-lang/rust/issues/66530

use run_make_support::{diff, rustc};

fn main() {
let file_out = rustc().input("main.rs").output("main.rs").run_fail().stderr_utf8();
let folder_out = rustc().input("main.rs").output(".").run_fail().stderr_utf8();
diff().expected_file("file.stderr").actual_text("actual-file-stderr", file_out).run();
diff().expected_file("folder.stderr").actual_text("actual-folder-stderr", folder_out).run();
}
7 changes: 0 additions & 7 deletions tests/run-make/use-suggestions-rust-2018/Makefile

This file was deleted.

18 changes: 18 additions & 0 deletions tests/run-make/use-suggestions-rust-2018/rmake.rs
Original file line number Diff line number Diff line change
@@ -0,0 +1,18 @@
// The compilation error caused by calling on an unimported crate
// should have a suggestion to write, say, crate::bar::Foo instead
// of just bar::Foo. However, this suggestion used to only appear for
// extern crate statements, not crate struct. After this was fixed in #51456,
// this test checks that the correct suggestion is printed no matter what.
// See https://github.com/rust-lang/rust/issues/51212

use run_make_support::{rust_lib_name, rustc};

fn main() {
rustc().input("ep-nested-lib.rs").run();
rustc()
.input("use-suggestions.rs")
.edition("2018")
.extern_("ep_nested_lib", rust_lib_name("ep_nested_lib"))
.run_fail()
.assert_stderr_contains("use ep_nested_lib::foo::bar::Baz");
}
Loading