about summary refs log tree commit diff
diff options
context:
space:
mode:
authorChris Denton <chris@chrisdenton.dev>2024-05-29 13:11:48 +0000
committerChris Denton <chris@chrisdenton.dev>2024-05-29 13:11:48 +0000
commitf08e00f3d56645c9bbd4d2ebfbabe257b56b837b (patch)
tree0d9316e6d9527ba4a741259c8cfd291d4ac1bd32
parent1e6544a20ec8ba822c8af93a953ec7ea70dddbd9 (diff)
downloadrust-f08e00f3d56645c9bbd4d2ebfbabe257b56b837b.tar.gz
rust-f08e00f3d56645c9bbd4d2ebfbabe257b56b837b.zip
Rename run-make/issue-85441 and convert to rmake
-rw-r--r--tests/run-make/issue-85441/Makefile9
-rw-r--r--tests/run-make/windows-ws2_32/empty.rs (renamed from tests/run-make/issue-85441/empty.rs)0
-rw-r--r--tests/run-make/windows-ws2_32/rmake.rs27
-rw-r--r--tests/run-make/windows-ws2_32/tcp.rs5
4 files changed, 32 insertions, 9 deletions
diff --git a/tests/run-make/issue-85441/Makefile b/tests/run-make/issue-85441/Makefile
deleted file mode 100644
index 987d7f7d4a7..00000000000
--- a/tests/run-make/issue-85441/Makefile
+++ /dev/null
@@ -1,9 +0,0 @@
-# only-windows-msvc
-
-include ../tools.mk
-
-# Tests that WS2_32.dll is not unnecessarily linked, see issue #85441
-
-all:
-	$(RUSTC) empty.rs
-	objdump -p $(TMPDIR)/empty.exe | $(CGREP) -v -i "WS2_32.dll"
diff --git a/tests/run-make/issue-85441/empty.rs b/tests/run-make/windows-ws2_32/empty.rs
index f328e4d9d04..f328e4d9d04 100644
--- a/tests/run-make/issue-85441/empty.rs
+++ b/tests/run-make/windows-ws2_32/empty.rs
diff --git a/tests/run-make/windows-ws2_32/rmake.rs b/tests/run-make/windows-ws2_32/rmake.rs
new file mode 100644
index 00000000000..543f8594478
--- /dev/null
+++ b/tests/run-make/windows-ws2_32/rmake.rs
@@ -0,0 +1,27 @@
+//@ only-msvc
+
+// Tests that WS2_32.dll is not unnecessarily linked, see issue #85441
+
+use run_make_support::object::{self, read::Object};
+use run_make_support::{rustc, tmp_dir};
+use std::fs;
+
+fn main() {
+    rustc().input("empty.rs").run();
+    rustc().input("tcp.rs").run();
+
+    assert!(!links_ws2_32("empty.exe"));
+    assert!(links_ws2_32("tcp.exe"));
+}
+
+fn links_ws2_32(exe: &str) -> bool {
+    let path = tmp_dir().join(exe);
+    let binary_data = fs::read(path).unwrap();
+    let file = object::File::parse(&*binary_data).unwrap();
+    for import in file.imports().unwrap() {
+        if import.library().eq_ignore_ascii_case(b"WS2_32.dll") {
+            return true;
+        }
+    }
+    false
+}
diff --git a/tests/run-make/windows-ws2_32/tcp.rs b/tests/run-make/windows-ws2_32/tcp.rs
new file mode 100644
index 00000000000..3d0248c76d7
--- /dev/null
+++ b/tests/run-make/windows-ws2_32/tcp.rs
@@ -0,0 +1,5 @@
+use std::net::TcpListener;
+
+fn main() {
+    TcpListener::bind("127.0.0.1:80").unwrap();
+}