about summary refs log tree commit diff
diff options
context:
space:
mode:
authorbors <bors@rust-lang.org>2024-06-20 04:40:44 +0000
committerbors <bors@rust-lang.org>2024-06-20 04:40:44 +0000
commit54fcd5bb9221da009e2400ae59b525a8a04c5928 (patch)
tree5c575306c87a726c4d60f8320e94dfa587505c32
parent3d5d7a24f76006b391d8a53d903ae64c1b4a52d2 (diff)
parentf44494cb3ad0a1c599620e9c020cf7e6a54bb774 (diff)
downloadrust-54fcd5bb9221da009e2400ae59b525a8a04c5928.tar.gz
rust-54fcd5bb9221da009e2400ae59b525a8a04c5928.zip
Auto merge of #126534 - Rejyr:comment-section-migration, r=jieyouxu
Migrate `run-make/comment-section` to `rmake.rs`

Part of #121876.

r? `@jieyouxu`

try-job: x86_64-msvc
try-job: aarch64-gnu
try-job: aarch64-apple
-rw-r--r--src/tools/tidy/src/allowed_run_make_makefiles.txt1
-rw-r--r--tests/run-make/comment-section/Makefile18
-rw-r--r--tests/run-make/comment-section/rmake.rs47
3 files changed, 47 insertions, 19 deletions
diff --git a/src/tools/tidy/src/allowed_run_make_makefiles.txt b/src/tools/tidy/src/allowed_run_make_makefiles.txt
index 2b273b92ec2..c4c1ad03341 100644
--- a/src/tools/tidy/src/allowed_run_make_makefiles.txt
+++ b/src/tools/tidy/src/allowed_run_make_makefiles.txt
@@ -10,7 +10,6 @@ run-make/c-unwind-abi-catch-panic/Makefile
 run-make/cat-and-grep-sanity-check/Makefile
 run-make/cdylib-dylib-linkage/Makefile
 run-make/cdylib-fewer-symbols/Makefile
-run-make/comment-section/Makefile
 run-make/compiler-lookup-paths-2/Makefile
 run-make/compiler-lookup-paths/Makefile
 run-make/compiler-rt-works-on-mingw/Makefile
diff --git a/tests/run-make/comment-section/Makefile b/tests/run-make/comment-section/Makefile
deleted file mode 100644
index d0b98176ffe..00000000000
--- a/tests/run-make/comment-section/Makefile
+++ /dev/null
@@ -1,18 +0,0 @@
-# Both GCC and Clang write by default a `.comment` section with compiler information. Rustc received a similar .comment section, so this tests checks that this section properly appears.
-# See https://github.com/rust-lang/rust/commit/74b8d324eb77a8f337b35dc68ac91b0c2c06debc
-
-include ../tools.mk
-
-# only-linux
-
-all:
-	echo 'fn main(){}' | $(RUSTC) - --emit=link,obj -Csave-temps --target=$(TARGET)
-
-	# Check linked output has a `.comment` section with the expected content.
-	readelf -p '.comment' $(TMPDIR)/rust_out | $(CGREP) -F 'rustc version 1.'
-
-	# Check all object files (including temporary outputs) have a `.comment`
-	# section with the expected content.
-	set -e; for f in $(TMPDIR)/*.o; do \
-		readelf -p '.comment' $$f | $(CGREP) -F 'rustc version 1.'; \
-	done
diff --git a/tests/run-make/comment-section/rmake.rs b/tests/run-make/comment-section/rmake.rs
new file mode 100644
index 00000000000..41df04da7a5
--- /dev/null
+++ b/tests/run-make/comment-section/rmake.rs
@@ -0,0 +1,47 @@
+// Both GCC and Clang write by default a `.comment` section with compiler information.
+// Rustc received a similar .comment section, so this tests checks that this section
+// properly appears.
+// See https://github.com/rust-lang/rust/commit/74b8d324eb77a8f337b35dc68ac91b0c2c06debc
+
+//@ only-linux
+// FIXME(jieyouxu): check cross-compile setup
+//@ ignore-cross-compile
+
+use std::path::PathBuf;
+
+use run_make_support::llvm_readobj;
+use run_make_support::rustc;
+use run_make_support::{cwd, env_var, read_dir, run_in_tmpdir};
+
+fn main() {
+    let target = env_var("TARGET");
+
+    rustc()
+        .arg("-")
+        .stdin("fn main() {}")
+        .emit("link,obj")
+        .arg("-Csave-temps")
+        .target(&target)
+        .run();
+
+    // Check linked output has a `.comment` section with the expected content.
+    llvm_readobj()
+        .section(".comment")
+        .input("rust_out")
+        .run()
+        .assert_stdout_contains("rustc version 1.");
+
+    // Check all object files (including temporary outputs) have a `.comment`
+    // section with the expected content.
+    read_dir(cwd(), |f| {
+        if !f.extension().is_some_and(|ext| ext == "o") {
+            return;
+        }
+
+        llvm_readobj()
+            .section(".comment")
+            .input(&f)
+            .run()
+            .assert_stdout_contains("rustc version 1.");
+    });
+}