From 9c8f390995ace83ebee758ba42fc7f77da2129e2 Mon Sep 17 00:00:00 2001 From: Arslaan Pathan Date: Sat, 3 Oct 2026 23:04:55 +1300 Subject: Selector test and tweak Introspection (yay it works!) --- meson.build | 1 + tests/Introspection.m | 5 ++++- tests/Selector.m | 25 +++++++++++++++++++++++++ 3 files changed, 30 insertions(+), 1 deletion(-) create mode 100644 tests/Selector.m diff --git a/meson.build b/meson.build index 6f6d4ce..606f777 100644 --- a/meson.build +++ b/meson.build @@ -29,6 +29,7 @@ test_deps += declare_dependency(link_with: paradox, include_directories: inc, de executable('Object', 'tests/Object.m', dependencies: test_deps, install: false) executable('Introspection', 'tests/Introspection.m', dependencies: test_deps, install: false) +executable('Selector', 'tests/Selector.m', dependencies: test_deps, install: false) executable('AutoreleasePool', 'tests/AutoreleasePool.m', objc_args: ['-fobjc-arc'], dependencies: test_deps, install: false) pkg = import('pkgconfig') diff --git a/tests/Introspection.m b/tests/Introspection.m index 2bdc6f9..dd6a061 100644 --- a/tests/Introspection.m +++ b/tests/Introspection.m @@ -8,7 +8,7 @@ @implementation MyClass - (void)sayHello { - printf("Hello!"); + printf("Hello!\n"); } @end @@ -23,4 +23,7 @@ int main(void) { printf("isMemberOfClass:PXObject = %s\n", [instance isMemberOfClass:[PXObject class]] ? "YES" : "NO"); printf("isKindOfClass:MyClass = %s\n", [instance isKindOfClass:[MyClass class]] ? "YES" : "NO"); printf("isKindOfClass:PXObject = %s\n", [instance isKindOfClass:[PXObject class]] ? "YES" : "NO"); + + [instance release]; + printf("test complete\n"); } diff --git a/tests/Selector.m b/tests/Selector.m new file mode 100644 index 0000000..0cc33e4 --- /dev/null +++ b/tests/Selector.m @@ -0,0 +1,25 @@ +#include +#include + +@interface MyClass : PXObject +- (void)sayHello; +@end + +@implementation MyClass + +- (void)sayHello { + printf("Hello!\n"); +} + +@end + +int main(void) { + printf("Selector test\n"); + MyClass *instance = [MyClass new]; + + printf("respondsToSelector:sayHello = %s\n", [instance respondsToSelector:@selector(sayHello)] ? "YES" : "NO"); + printf("respondsToSelector:sayGoodbye = %s\n", [instance respondsToSelector:@selector(sayGoodbye)] ? "YES" : "NO"); + printf("respondsToSelector:retain = %s\n", [instance respondsToSelector:@selector(retain)] ? "YES" : "NO"); + + [instance release]; +} -- cgit v1.2.3