rust/tests/run-make/windows-ws2_32/rmake.rs

27 lines
671 B
Rust

//@ only-msvc
// Tests that WS2_32.dll is not unnecessarily linked, see issue #85441
use run_make_support::object::read::Object;
use run_make_support::object::{self};
use run_make_support::{rfs, rustc};
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 binary_data = rfs::read(exe);
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
}