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