-
Notifications
You must be signed in to change notification settings - Fork 13.4k
Migrate extern-flag-pathless
, silly-file-names
, metadata-dep-info
, cdylib-fewer-symbols
and symbols-include-type-name
run-make
tests to rmake
#127006
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
Merged
Merged
Changes from all commits
Commits
Show all changes
5 commits
Select commit
Hold shift + click to select a range
16df91b
rewrite extern-flag-pathless to rmake
Oneirical 11ac258
rewrite silly-file-names to rmake
Oneirical db21af1
rewrite metadata-dep-info to rmake
Oneirical 7c29298
rewrite cdylib-fewer-symbols to rmake
Oneirical d447321
rewrite symbols-include-type-name to rmake
Oneirical File filter
Filter by extension
Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
There are no files selected for viewing
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file was deleted.
Oops, something went wrong.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,21 @@ | ||
// Symbols related to the allocator should be hidden and not exported from a cdylib, | ||
// for they are internal to Rust | ||
// and not part of the public ABI (application binary interface). This test checks that | ||
// four such symbols are successfully hidden. | ||
// See https://github.com/rust-lang/rust/pull/45710 | ||
|
||
//@ ignore-cross-compile | ||
// Reason: The __rust_ symbol appears during cross-compilation. | ||
|
||
use run_make_support::{dynamic_lib_name, llvm_readobj, rustc}; | ||
|
||
fn main() { | ||
// Compile a cdylib | ||
rustc().input("foo.rs").run(); | ||
let out = | ||
llvm_readobj().arg("--dyn-symbols").input(dynamic_lib_name("foo")).run().stdout_utf8(); | ||
assert!(!&out.contains("__rdl_"), "{out}"); | ||
assert!(!&out.contains("__rde_"), "{out}"); | ||
assert!(!&out.contains("__rg_"), "{out}"); | ||
assert!(!&out.contains("__rust_"), "{out}"); | ||
} |
This file was deleted.
Oops, something went wrong.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,43 @@ | ||
// It is possible, since #64882, to use the --extern flag without an explicit | ||
// path. In the event of two --extern flags, the explicit one with a path will take | ||
// priority, but otherwise, it is a more concise way of fetching specific libraries. | ||
// This test checks that the default priority of explicit extern flags and rlibs is | ||
// respected. | ||
// See https://github.com/rust-lang/rust/pull/64882 | ||
|
||
//@ ignore-cross-compile | ||
// Reason: the compiled binary is executed | ||
|
||
use run_make_support::{dynamic_lib_name, fs_wrapper, run, run_fail, rust_lib_name, rustc}; | ||
|
||
fn main() { | ||
rustc().input("bar.rs").crate_type("rlib").crate_type("dylib").arg("-Cprefer-dynamic").run(); | ||
|
||
// By default, the rlib has priority over the dylib. | ||
rustc().input("foo.rs").arg("--extern").arg("bar").run(); | ||
fs_wrapper::rename(dynamic_lib_name("bar"), "bar.tmp"); | ||
run("foo"); | ||
fs_wrapper::rename("bar.tmp", dynamic_lib_name("bar")); | ||
|
||
rustc().input("foo.rs").extern_("bar", rust_lib_name("bar")).arg("--extern").arg("bar").run(); | ||
fs_wrapper::rename(dynamic_lib_name("bar"), "bar.tmp"); | ||
run("foo"); | ||
fs_wrapper::rename("bar.tmp", dynamic_lib_name("bar")); | ||
|
||
// The first explicit usage of extern overrides the second pathless --extern bar. | ||
rustc() | ||
.input("foo.rs") | ||
.extern_("bar", dynamic_lib_name("bar")) | ||
.arg("--extern") | ||
.arg("bar") | ||
.run(); | ||
fs_wrapper::rename(dynamic_lib_name("bar"), "bar.tmp"); | ||
run_fail("foo"); | ||
fs_wrapper::rename("bar.tmp", dynamic_lib_name("bar")); | ||
|
||
// With prefer-dynamic, execution fails as it refuses to use the rlib. | ||
rustc().input("foo.rs").arg("--extern").arg("bar").arg("-Cprefer-dynamic").run(); | ||
fs_wrapper::rename(dynamic_lib_name("bar"), "bar.tmp"); | ||
run_fail("foo"); | ||
fs_wrapper::rename("bar.tmp", dynamic_lib_name("bar")); | ||
} |
This file was deleted.
Oops, something went wrong.
File renamed without changes.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,20 @@ | ||
// Emitting dep-info alongside metadata would present subtle discrepancies | ||
// in the output file, such as the filename transforming underscores_ into hyphens-. | ||
// After the fix in #114750, this test checks that the emitted files are identical | ||
// to the expected output. | ||
// See https://github.com/rust-lang/rust/issues/68839 | ||
|
||
use run_make_support::{diff, rustc}; | ||
|
||
fn main() { | ||
rustc() | ||
.emit("metadata,dep-info") | ||
.crate_type("lib") | ||
.input("dash-separated.rs") | ||
.extra_filename("_something-extra") | ||
.run(); | ||
diff() | ||
.expected_file("dash-separated_something-extra.expected.d") | ||
.actual_file("dash-separated_something-extra.d") | ||
.run(); | ||
} |
This file was deleted.
Oops, something went wrong.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,24 @@ | ||
// There used to be assert! checks in the compiler to error on encountering | ||
// files starting or ending with < or > respectively, as a preventive measure | ||
// against "fake" files like <anon>. However, this was not truly required, | ||
// as rustc has other checks to verify the veracity of a file. This test includes | ||
// some files with < and > in their names and prints out their output to stdout, | ||
// expecting no errors. | ||
// See https://github.com/rust-lang/rust/issues/73419 | ||
|
||
//@ ignore-cross-compile | ||
// Reason: the compiled binary is executed | ||
//@ ignore-windows | ||
// Reason: Windows refuses files with < and > in their names | ||
|
||
use run_make_support::{diff, fs_wrapper, run, rustc}; | ||
|
||
fn main() { | ||
fs_wrapper::create_file("<leading-lt"); | ||
fs_wrapper::write("<leading-lt", r#""comes from a file with a name that begins with <""#); | ||
fs_wrapper::create_file("trailing-gt>"); | ||
fs_wrapper::write("trailing-gt>", r#""comes from a file with a name that ends with >""#); | ||
rustc().input("silly-file-names.rs").output("silly-file-names").run(); | ||
let out = run("silly-file-names").stdout_utf8(); | ||
diff().expected_file("silly-file-names.run.stdout").actual_text("actual-stdout", out).run(); | ||
} |
This file was deleted.
Oops, something went wrong.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,12 @@ | ||
// Method names used to be obfuscated when exported into symbols, | ||
// leaving only an obscure `<impl>`. After the fix in #30328, | ||
// this test checks that method names are successfully saved in the symbol list. | ||
// See https://github.com/rust-lang/rust/issues/30260 | ||
|
||
use run_make_support::{invalid_utf8_contains, rustc}; | ||
|
||
fn main() { | ||
rustc().crate_type("staticlib").emit("asm").input("lib.rs").run(); | ||
// Check that symbol names for methods include type names, instead of <impl>. | ||
invalid_utf8_contains("lib.s", "Def"); | ||
} |
Oops, something went wrong.
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Uh oh!
There was an error while loading. Please reload this page.