|  | // 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()); | 
|  | } |