| // This file is included by both implementations of `weak!`. |
| use super::weak; |
| use crate::ffi::{CStr, c_char}; |
| |
| #[test] |
| fn weak_existing() { |
| const TEST_STRING: &'static CStr = c"Ferris!"; |
| |
| // Try to find a symbol that definitely exists. |
| weak! { |
| fn strlen(cs: *const c_char) -> usize; |
| } |
| |
| let strlen = strlen.get().unwrap(); |
| assert_eq!(unsafe { strlen(TEST_STRING.as_ptr()) }, TEST_STRING.count_bytes()); |
| } |
| |
| #[test] |
| fn weak_missing() { |
| // Try to find a symbol that definitely does not exist. |
| weak! { |
| fn test_symbol_that_does_not_exist() -> i32; |
| } |
| |
| assert!(test_symbol_that_does_not_exist.get().is_none()); |
| } |