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