59 lines
2 KiB
Rust
59 lines
2 KiB
Rust
use objc2::foundation::NSString;
|
|
use objc2::runtime::{Class, Object};
|
|
use objc2::{class, msg_send, sel};
|
|
|
|
#[cfg(feature = "gnustep-1-7")]
|
|
#[test]
|
|
fn ensure_linkage() {
|
|
unsafe { objc2::__gnustep_hack::get_class_to_force_linkage() };
|
|
}
|
|
|
|
#[test]
|
|
fn use_class_and_msg_send() {
|
|
unsafe {
|
|
let cls = class!(NSObject);
|
|
let obj: *mut Object = msg_send![cls, new];
|
|
let _hash: usize = msg_send![obj, hash];
|
|
let _: () = msg_send![obj, release];
|
|
}
|
|
}
|
|
|
|
#[test]
|
|
fn use_sel() {
|
|
let _sel = sel!(description);
|
|
let _sel = sel!(setObject:forKey:);
|
|
}
|
|
|
|
#[allow(unused)]
|
|
fn test_msg_send_comma_handling(obj: &NSString, superclass: &Class) {
|
|
unsafe {
|
|
let _: () = msg_send![obj, a];
|
|
let _: () = msg_send![obj, a,];
|
|
let _: () = msg_send![obj, a: 32i32];
|
|
let _: () = msg_send![obj, a: 32i32,];
|
|
let _: () = msg_send![obj, a: 32i32 b: 32i32];
|
|
let _: () = msg_send![obj, a: 32i32 b: 32i32,];
|
|
let _: () = msg_send![obj, a: 32i32, b: 32i32];
|
|
let _: () = msg_send![obj, a: 32i32, b: 32i32,];
|
|
}
|
|
|
|
unsafe {
|
|
let _: () = msg_send![super(obj, superclass), a];
|
|
let _: () = msg_send![super(obj, superclass), a,];
|
|
let _: () = msg_send![super(obj, superclass), a: 32i32];
|
|
let _: () = msg_send![super(obj, superclass), a: 32i32,];
|
|
let _: () = msg_send![super(obj, superclass), a: 32i32 b: 32i32];
|
|
let _: () = msg_send![super(obj, superclass), a: 32i32 b: 32i32,];
|
|
let _: () = msg_send![super(obj, superclass), a: 32i32, b: 32i32];
|
|
let _: () = msg_send![super(obj, superclass), a: 32i32, b: 32i32,];
|
|
}
|
|
|
|
unsafe {
|
|
let _: () = msg_send![super(obj), a];
|
|
let _: () = msg_send![super(obj), a,];
|
|
let _: () = msg_send![super(obj), a: 32i32];
|
|
let _: () = msg_send![super(obj), a: 32i32,];
|
|
let _: () = msg_send![super(obj), a: 32i32, b: 32i32];
|
|
let _: () = msg_send![super(obj), a: 32i32, b: 32i32,];
|
|
}
|
|
}
|