diff options
| author | bors <bors@rust-lang.org> | 2024-07-25 12:09:24 +0000 |
|---|---|---|
| committer | bors <bors@rust-lang.org> | 2024-07-25 12:09:24 +0000 |
| commit | 54be9ad5eb47207d155904f6c912a9526133f75f (patch) | |
| tree | 5967505673ebc99ffa43cf139ca817280d983306 /tests | |
| parent | 28e684b47000d4ed4cdb5d982331e5ff8141c1ce (diff) | |
| parent | 421619da488f2575b8889a5f173a9e81e0fc5826 (diff) | |
| download | rust-54be9ad5eb47207d155904f6c912a9526133f75f.tar.gz rust-54be9ad5eb47207d155904f6c912a9526133f75f.zip | |
Auto merge of #128102 - Oneirical:real-testate, r=Kobzol
Migrate `extern-diff-internal-name`, `extern-multiple-copies` and `extern-multiple-copies2` `run-make` tests to rmake Part of #121876 and the associated [Google Summer of Code project](https://blog.rust-lang.org/2024/05/01/gsoc-2024-selected-projects.html). Please try: try-job: test-various
Diffstat (limited to 'tests')
| -rw-r--r-- | tests/run-make/extern-diff-internal-name/Makefile | 6 | ||||
| -rw-r--r-- | tests/run-make/extern-diff-internal-name/rmake.rs | 15 | ||||
| -rw-r--r-- | tests/run-make/extern-multiple-copies/Makefile | 9 | ||||
| -rw-r--r-- | tests/run-make/extern-multiple-copies/rmake.rs | 15 | ||||
| -rw-r--r-- | tests/run-make/extern-multiple-copies2/Makefile | 11 | ||||
| -rw-r--r-- | tests/run-make/extern-multiple-copies2/rmake.rs | 22 |
6 files changed, 52 insertions, 26 deletions
diff --git a/tests/run-make/extern-diff-internal-name/Makefile b/tests/run-make/extern-diff-internal-name/Makefile deleted file mode 100644 index 250f82dfac0..00000000000 --- a/tests/run-make/extern-diff-internal-name/Makefile +++ /dev/null @@ -1,6 +0,0 @@ -# ignore-cross-compile -include ../tools.mk - -all: - $(RUSTC) lib.rs - $(RUSTC) test.rs --extern foo=$(TMPDIR)/libbar.rlib diff --git a/tests/run-make/extern-diff-internal-name/rmake.rs b/tests/run-make/extern-diff-internal-name/rmake.rs new file mode 100644 index 00000000000..1a7f34d65bc --- /dev/null +++ b/tests/run-make/extern-diff-internal-name/rmake.rs @@ -0,0 +1,15 @@ +// In the following scenario: +// 1. The crate foo, is referenced multiple times +// 2. --extern foo=./path/to/libbar.rlib is specified to rustc +// 3. The internal crate name of libbar.rlib is not foo +// Compilation fails with the "multiple crate versions" error message. +// As this was fixed in #17189, this regression test ensures this bug does not +// make a resurgence. +// See https://github.com/rust-lang/rust/pull/17189 + +use run_make_support::{rust_lib_name, rustc}; + +fn main() { + rustc().input("lib.rs").run(); + rustc().input("test.rs").extern_("foo", rust_lib_name("bar")).run(); +} diff --git a/tests/run-make/extern-multiple-copies/Makefile b/tests/run-make/extern-multiple-copies/Makefile deleted file mode 100644 index b0b84278eda..00000000000 --- a/tests/run-make/extern-multiple-copies/Makefile +++ /dev/null @@ -1,9 +0,0 @@ -# ignore-cross-compile -include ../tools.mk - -all: - $(RUSTC) foo1.rs - $(RUSTC) foo2.rs - mkdir $(TMPDIR)/foo - cp $(TMPDIR)/libfoo1.rlib $(TMPDIR)/foo/libfoo1.rlib - $(RUSTC) bar.rs --extern foo1=$(TMPDIR)/libfoo1.rlib -L $(TMPDIR)/foo diff --git a/tests/run-make/extern-multiple-copies/rmake.rs b/tests/run-make/extern-multiple-copies/rmake.rs new file mode 100644 index 00000000000..8b67e6d9fac --- /dev/null +++ b/tests/run-make/extern-multiple-copies/rmake.rs @@ -0,0 +1,15 @@ +// In this test, the rust library foo1 exists in two different locations, but only one +// is required by the --extern flag. This test checks that the copy is ignored (as --extern +// demands fetching only the original instance of foo1) and that no error is emitted, resulting +// in successful compilation. +// https://github.com/rust-lang/rust/pull/29961 + +use run_make_support::{path, rfs, rust_lib_name, rustc}; + +fn main() { + rustc().input("foo1.rs").run(); + rustc().input("foo2.rs").run(); + rfs::create_dir("foo"); + rfs::copy(rust_lib_name("foo1"), path("foo").join(rust_lib_name("foo1"))); + rustc().input("bar.rs").extern_("foo1", rust_lib_name("foo1")).library_search_path("foo").run(); +} diff --git a/tests/run-make/extern-multiple-copies2/Makefile b/tests/run-make/extern-multiple-copies2/Makefile deleted file mode 100644 index 708b1c1b540..00000000000 --- a/tests/run-make/extern-multiple-copies2/Makefile +++ /dev/null @@ -1,11 +0,0 @@ -# ignore-cross-compile -include ../tools.mk - -all: - $(RUSTC) foo1.rs - $(RUSTC) foo2.rs - mkdir $(TMPDIR)/foo - cp $(TMPDIR)/libfoo1.rlib $(TMPDIR)/foo/libfoo1.rlib - $(RUSTC) bar.rs \ - --extern foo1=$(TMPDIR)/foo/libfoo1.rlib \ - --extern foo2=$(TMPDIR)/libfoo2.rlib diff --git a/tests/run-make/extern-multiple-copies2/rmake.rs b/tests/run-make/extern-multiple-copies2/rmake.rs new file mode 100644 index 00000000000..59913bfa42b --- /dev/null +++ b/tests/run-make/extern-multiple-copies2/rmake.rs @@ -0,0 +1,22 @@ +// Almost identical to `extern-multiple-copies`, but with a variation in the --extern calls +// and the addition of #[macro_use] in the rust code files, which used to break --extern +// until #33625. +// In this test, the rust library foo1 exists in two different locations, but only one +// is required by the --extern flag. This test checks that the copy is ignored (as --extern +// demands fetching only the original instance of foo1) and that no error is emitted, resulting +// in successful compilation. +// https://github.com/rust-lang/rust/issues/33762 + +use run_make_support::{path, rfs, rust_lib_name, rustc}; + +fn main() { + rustc().input("foo1.rs").run(); + rustc().input("foo2.rs").run(); + rfs::create_dir("foo"); + rfs::copy(rust_lib_name("foo1"), path("foo").join(rust_lib_name("foo1"))); + rustc() + .input("bar.rs") + .extern_("foo1", path("foo").join(rust_lib_name("foo1"))) + .extern_("foo2", rust_lib_name("foo2")) + .run(); +} |
