| //@ 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 | 
 | } |