37 lines
828 B
Rust
37 lines
828 B
Rust
// 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());
|
|
}
|