about summary refs log tree commit diff
diff options
context:
space:
mode:
authorOneirical <manchot@videotron.ca>2024-06-19 10:45:45 -0400
committerOneirical <manchot@videotron.ca>2024-06-28 16:28:24 -0400
commit55b581689d5e75349c1b2a4e44d0b3177a4f945b (patch)
tree14aeb3ef40ffa89b096779db095232b77be5760b
parentc4c0897a262d42f26f89aaca16ed52457f6a4f05 (diff)
rewrite unknown-mod-stdin to rmake
-rw-r--r--src/tools/tidy/src/allowed_run_make_makefiles.txt1
-rw-r--r--tests/run-make/unknown-mod-stdin/Makefile8
-rw-r--r--tests/run-make/unknown-mod-stdin/rmake.rs25
3 files changed, 25 insertions, 9 deletions
diff --git a/src/tools/tidy/src/allowed_run_make_makefiles.txt b/src/tools/tidy/src/allowed_run_make_makefiles.txt
index a29d57d1603..21e20d1026e 100644
--- a/src/tools/tidy/src/allowed_run_make_makefiles.txt
+++ b/src/tools/tidy/src/allowed_run_make_makefiles.txt
@@ -187,7 +187,6 @@ run-make/track-path-dep-info/Makefile
 run-make/track-pgo-dep-info/Makefile
 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/used-cdylib-macos/Makefile
 run-make/volatile-intrinsics/Makefile
diff --git a/tests/run-make/unknown-mod-stdin/Makefile b/tests/run-make/unknown-mod-stdin/Makefile
deleted file mode 100644
index 313b0ba837e..00000000000
--- a/tests/run-make/unknown-mod-stdin/Makefile
+++ /dev/null
@@ -1,8 +0,0 @@
-# ignore-windows
-
-include ../tools.mk
-
-all:
-	echo 'mod unknown;' | $(RUSTC) --crate-type rlib - >$(TMPDIR)/unknown-mod.stdout 2>$(TMPDIR)/unknown-mod.stderr || echo "failed successfully"
-	$(RUSTC_TEST_OP) "$(TMPDIR)"/unknown-mod.stdout unknown-mod.stdout
-	$(RUSTC_TEST_OP) "$(TMPDIR)"/unknown-mod.stderr unknown-mod.stderr
diff --git a/tests/run-make/unknown-mod-stdin/rmake.rs b/tests/run-make/unknown-mod-stdin/rmake.rs
new file mode 100644
index 00000000000..0fe5c78ed0f
--- /dev/null
+++ b/tests/run-make/unknown-mod-stdin/rmake.rs
@@ -0,0 +1,25 @@
+// Rustc displays a compilation error when it finds a `mod` (module)
+// statement referencing a file that does not exist. However, a bug from 2019
+// caused invalid `mod` statements to silently insert empty inline modules
+// instead of showing an error if the invalid `mod` statement had been passed
+// through standard input. This test checks that this bug does not make a resurgence.
+// See https://github.com/rust-lang/rust/issues/65601
+
+// NOTE: This is not a UI test, because the bug which this test
+// is checking for is specifically tied to passing
+// `mod unknown;` through standard input.
+
+use run_make_support::{diff, rustc};
+
+fn main() {
+    let out = rustc().crate_type("rlib").stdin(b"mod unknown;").arg("-").run_fail();
+    diff()
+        .actual_text("actual-stdout", out.stdout_utf8())
+        .expected_file("unknown-mod.stdout")
+        .run();
+    diff()
+        .actual_text("actual-stderr", out.stderr_utf8())
+        .expected_file("unknown-mod.stderr")
+        .normalize(r#"\\"#, "/")
+        .run();
+}