| // Test that `objc::class!` returns the same thing as `objc_lookUpClass`. | |
| //@ edition: 2024 | |
| //@ only-apple | |
| //@ run-pass | |
| #![feature(darwin_objc)] | |
| use std::ffi::c_char; | |
| use std::os::darwin::objc; | |
| #[link(name = "Foundation", kind = "framework")] | |
| unsafe extern "C" {} | |
| #[link(name = "objc")] | |
| unsafe extern "C" { | |
| fn objc_lookUpClass(methname: *const c_char) -> objc::Class; | |
| } | |
| fn get_object_class() -> objc::Class { | |
| objc::class!("NSObject") | |
| } | |
| fn lookup_object_class() -> objc::Class { | |
| unsafe { objc_lookUpClass(c"NSObject".as_ptr()) } | |
| } | |
| fn get_string_class() -> objc::Class { | |
| objc::class!("NSString") | |
| } | |
| fn lookup_string_class() -> objc::Class { | |
| unsafe { objc_lookUpClass(c"NSString".as_ptr()) } | |
| } | |
| fn main() { | |
| assert_eq!(get_object_class(), lookup_object_class()); | |
| assert_eq!(get_string_class(), lookup_string_class()); | |
| } |