| // Test that `objc::selector!` returns the same thing as `sel_registerName`. | |
| //@ edition: 2024 | |
| //@ only-apple | |
| //@ run-pass | |
| #![feature(darwin_objc)] | |
| use std::ffi::c_char; | |
| use std::os::darwin::objc; | |
| #[link(name = "objc")] | |
| unsafe extern "C" { | |
| fn sel_registerName(methname: *const c_char) -> objc::SEL; | |
| } | |
| fn get_alloc_selector() -> objc::SEL { | |
| objc::selector!("alloc") | |
| } | |
| fn register_alloc_selector() -> objc::SEL { | |
| unsafe { sel_registerName(c"alloc".as_ptr()) } | |
| } | |
| fn get_init_selector() -> objc::SEL { | |
| objc::selector!("initWithCString:encoding:") | |
| } | |
| fn register_init_selector() -> objc::SEL { | |
| unsafe { sel_registerName(c"initWithCString:encoding:".as_ptr()) } | |
| } | |
| fn main() { | |
| assert_eq!(get_alloc_selector(), register_alloc_selector()); | |
| assert_eq!(get_init_selector(), register_init_selector()); | |
| } |