about summary refs log tree commit diff
path: root/tests
diff options
context:
space:
mode:
authorOneirical <manchot@videotron.ca>2024-06-14 15:28:15 -0400
committerOneirical <manchot@videotron.ca>2024-06-17 13:01:15 -0400
commitcdfcc9442e08f863a96e9099c7dfb79cd5dfb52b (patch)
tree276e5303f132df03f0314f732dc186f232ce5e14 /tests
parentab715107042fc547501713e0601268fd1f953ce1 (diff)
downloadrust-cdfcc9442e08f863a96e9099c7dfb79cd5dfb52b.tar.gz
rust-cdfcc9442e08f863a96e9099c7dfb79cd5dfb52b.zip
rewrite incremental-session-fail to rmake
Diffstat (limited to 'tests')
-rw-r--r--tests/run-make/extern-flag-fun/rmake.rs6
-rw-r--r--tests/run-make/incremental-debugger-visualizer/rmake.rs35
-rw-r--r--tests/run-make/incremental-session-fail/Makefile14
-rw-r--r--tests/run-make/incremental-session-fail/rmake.rs15
4 files changed, 34 insertions, 36 deletions
diff --git a/tests/run-make/extern-flag-fun/rmake.rs b/tests/run-make/extern-flag-fun/rmake.rs
index 10fec6e30b4..c1825f6bbb8 100644
--- a/tests/run-make/extern-flag-fun/rmake.rs
+++ b/tests/run-make/extern-flag-fun/rmake.rs
@@ -5,21 +5,23 @@
 // as non-private. This test checks that these rules are enforced.
 // See https://github.com/rust-lang/rust/pull/15319
 
-//@ ignore-cross-compile
-
 use run_make_support::{rust_lib_name, rustc};
 
 fn main() {
     rustc().input("bar.rs").crate_type("rlib").run();
+    // Exactly the same rlib as the first line, only the filename changes.
     rustc().input("bar.rs").crate_type("rlib").extra_filename("-a").run();
     rustc().input("bar-alt.rs").crate_type("rlib").run();
+    // The crate must be valid.
     rustc().input("foo.rs").extern_("bar", "no-exist").run_fail();
     rustc().input("foo.rs").extern_("bar", "foo.rs").run_fail();
+    // Compilation fails with two different rlibs.
     rustc()
         .input("foo.rs")
         .extern_("bar", rust_lib_name("bar"))
         .extern_("bar", rust_lib_name("bar-alt"))
         .run_fail();
+    // Even though this one has seemingly two rlibs, they are one and the same.
     rustc()
         .input("foo.rs")
         .extern_("bar", rust_lib_name("bar"))
diff --git a/tests/run-make/incremental-debugger-visualizer/rmake.rs b/tests/run-make/incremental-debugger-visualizer/rmake.rs
index 74de4e9909b..1ef3af87353 100644
--- a/tests/run-make/incremental-debugger-visualizer/rmake.rs
+++ b/tests/run-make/incremental-debugger-visualizer/rmake.rs
@@ -1,20 +1,15 @@
-// This test makes sure that changes to files referenced via //[debugger_visualizer]
-// are picked up when compiling incrementally.
+// This test ensures that changes to files referenced via #[debugger_visualizer]
+// (in this case, foo.py and foo.natvis) are picked up when compiling incrementally.
+// See https://github.com/rust-lang/rust/pull/111641
 
-// We have to copy the source to $(TMPDIR) because Github CI mounts the source
-// directory as readonly. We need to apply modifications to some of the source
-// file.
-
-use run_make_support::{
-    fs_wrapper, invalid_utf8_contains_str, invalid_utf8_not_contains_str, rustc,
-};
+use run_make_support::{fs_wrapper, invalid_utf8_contains, invalid_utf8_not_contains, rustc};
 use std::io::Read;
 
 fn main() {
     fs_wrapper::create_file("foo.py");
     fs_wrapper::write("foo.py", "GDB script v1");
     fs_wrapper::create_file("foo.natvis");
-    fs_wrapper::write("foo.py", "Natvis v1");
+    fs_wrapper::write("foo.natvis", "Natvis v1");
     rustc()
         .input("foo.rs")
         .crate_type("rlib")
@@ -23,8 +18,8 @@ fn main() {
         .arg("-Zincremental-verify-ich")
         .run();
 
-    invalid_utf8_contains_str("libfoo.rmeta", "GDB script v1");
-    invalid_utf8_contains_str("libfoo.rmeta", "Natvis v1");
+    invalid_utf8_contains("libfoo.rmeta", "GDB script v1");
+    invalid_utf8_contains("libfoo.rmeta", "Natvis v1");
 
     // Change only the GDB script and check that the change has been picked up
     fs_wrapper::remove_file("foo.py");
@@ -38,14 +33,14 @@ fn main() {
         .arg("-Zincremental-verify-ich")
         .run();
 
-    invalid_utf8_contains_str("libfoo.rmeta", "GDB script v2");
-    invalid_utf8_not_contains_str("libfoo.rmeta", "GDB script v1");
-    invalid_utf8_contains_str("libfoo.rmeta", "Natvis v1");
+    invalid_utf8_contains("libfoo.rmeta", "GDB script v2");
+    invalid_utf8_not_contains("libfoo.rmeta", "GDB script v1");
+    invalid_utf8_contains("libfoo.rmeta", "Natvis v1");
 
     // Now change the Natvis version and check that the change has been picked up
     fs_wrapper::remove_file("foo.natvis");
     fs_wrapper::create_file("foo.natvis");
-    fs_wrapper::write("foo.py", "Natvis v2");
+    fs_wrapper::write("foo.natvis", "Natvis v2");
     rustc()
         .input("foo.rs")
         .crate_type("rlib")
@@ -54,8 +49,8 @@ fn main() {
         .arg("-Zincremental-verify-ich")
         .run();
 
-    invalid_utf8_contains_str("libfoo.rmeta", "GDB script v2");
-    invalid_utf8_not_contains_str("libfoo.rmeta", "GDB script v1");
-    invalid_utf8_not_contains_str("libfoo.rmeta", "Natvis v1");
-    invalid_utf8_contains_str("libfoo.rmeta", "Natvis v2");
+    invalid_utf8_contains("libfoo.rmeta", "GDB script v2");
+    invalid_utf8_not_contains("libfoo.rmeta", "GDB script v1");
+    invalid_utf8_not_contains("libfoo.rmeta", "Natvis v1");
+    invalid_utf8_contains("libfoo.rmeta", "Natvis v2");
 }
diff --git a/tests/run-make/incremental-session-fail/Makefile b/tests/run-make/incremental-session-fail/Makefile
deleted file mode 100644
index f43eece2eb7..00000000000
--- a/tests/run-make/incremental-session-fail/Makefile
+++ /dev/null
@@ -1,14 +0,0 @@
-include ../tools.mk
-
-SESSION_DIR := $(TMPDIR)/session
-OUTPUT_FILE := $(TMPDIR)/build-output
-
-all:
-	echo $(TMPDIR)
-	# Make it so that rustc will fail to create a session directory.
-	touch $(SESSION_DIR)
-	# Check exit code is 1 for an error, and not 101 for ICE.
-	$(RUSTC) foo.rs --crate-type=rlib -C incremental=$(SESSION_DIR) > $(OUTPUT_FILE) 2>&1; [ $$? -eq 1 ]
-	$(CGREP) "could not create incremental compilation crate directory" < $(OUTPUT_FILE)
-	# -v tests are fragile, hopefully this text won't change
-	$(CGREP) -v "internal compiler error" < $(OUTPUT_FILE)
diff --git a/tests/run-make/incremental-session-fail/rmake.rs b/tests/run-make/incremental-session-fail/rmake.rs
new file mode 100644
index 00000000000..0283709f2cf
--- /dev/null
+++ b/tests/run-make/incremental-session-fail/rmake.rs
@@ -0,0 +1,15 @@
+// Failing to create the directory where output incremental
+// files would be stored used to cause an ICE (Internal Compiler
+// Error). This was patched in #85698, and this test checks that
+// the ensuing compilation failure is not an ICE.
+// See https://github.com/rust-lang/rust/pull/85698
+
+use run_make_support::{fs_wrapper, rustc};
+
+fn main() {
+    fs_wrapper::create_file("session");
+    // rustc should fail to create the session directory here.
+    let out = rustc().input("foo.rs").crate_type("rlib").incremental("session").run_fail();
+    out.assert_stderr_contains("could not create incremental compilation crate directory");
+    out.assert_stderr_not_contains("internal compiler error");
+}