use super::*; #[test] fn dlsym_existing() { const TEST_STRING: &'static CStr = c"Ferris!"; // Try to find a symbol that definitely exists. dlsym! { fn strlen(cs: *const c_char) -> usize; } dlsym! { #[link_name = "strlen"] fn custom_name(cs: *const c_char) -> usize; } let strlen = strlen.get().unwrap(); assert_eq!(unsafe { strlen(TEST_STRING.as_ptr()) }, TEST_STRING.count_bytes()); let custom_name = custom_name.get().unwrap(); assert_eq!(unsafe { custom_name(TEST_STRING.as_ptr()) }, TEST_STRING.count_bytes()); } #[test] fn dlsym_missing() { // Try to find a symbol that definitely does not exist. dlsym! { fn test_symbol_that_does_not_exist() -> i32; } assert!(test_symbol_that_does_not_exist.get().is_none()); }