blob: 851149d872683e91ceaeb5d194ffda9e62bfc003 [file] [log] [blame]
// 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());
}