From f08e00f3d56645c9bbd4d2ebfbabe257b56b837b Mon Sep 17 00:00:00 2001 From: Chris Denton Date: Wed, 29 May 2024 13:11:48 +0000 Subject: Rename run-make/issue-85441 and convert to rmake --- tests/run-make/issue-85441/Makefile | 9 --------- tests/run-make/issue-85441/empty.rs | 1 - tests/run-make/windows-ws2_32/empty.rs | 1 + tests/run-make/windows-ws2_32/rmake.rs | 27 +++++++++++++++++++++++++++ tests/run-make/windows-ws2_32/tcp.rs | 5 +++++ 5 files changed, 33 insertions(+), 10 deletions(-) delete mode 100644 tests/run-make/issue-85441/Makefile delete mode 100644 tests/run-make/issue-85441/empty.rs create mode 100644 tests/run-make/windows-ws2_32/empty.rs create mode 100644 tests/run-make/windows-ws2_32/rmake.rs create mode 100644 tests/run-make/windows-ws2_32/tcp.rs 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/issue-85441/empty.rs deleted file mode 100644 index f328e4d9d04..00000000000 --- a/tests/run-make/issue-85441/empty.rs +++ /dev/null @@ -1 +0,0 @@ -fn main() {} diff --git a/tests/run-make/windows-ws2_32/empty.rs b/tests/run-make/windows-ws2_32/empty.rs new file mode 100644 index 00000000000..f328e4d9d04 --- /dev/null +++ b/tests/run-make/windows-ws2_32/empty.rs @@ -0,0 +1 @@ +fn main() {} 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(); +} -- cgit 1.4.1-3-g733a5