X-Git-Url: https://git.saurik.com/apple/objc4.git/blobdiff_plain/7c0e6487d7b67b6bf6c632300ee4b74e8950b051..7af964d1562d70f51a8e9aca24215ac3d83d0624:/test/sel.m diff --git a/test/sel.m b/test/sel.m new file mode 100644 index 0000000..f272f63 --- /dev/null +++ b/test/sel.m @@ -0,0 +1,32 @@ +#include "test.h" +#include +#include +#include + +int main() +{ + // Make sure @selector values are correctly fixed up + testassert(@selector(foo) == sel_registerName("foo")); + + // sel_getName recognizes the zero SEL + testassert(0 == strcmp("", sel_getName(0))); + + // sel_getName recognizes GC-ignored SELs + if (objc_collecting_enabled()) { + testassert(0 == strcmp("", + sel_getName(@selector(retain)))); + } else { + testassert(0 == strcmp("retain", + sel_getName(@selector(retain)))); + } + + // _objc_search_builtins() shouldn't crash on GC-ignored SELs + union { + SEL sel; + const char *ptr; + } u; + u.sel = @selector(retain); + testassert(@selector(retain) == sel_registerName(u.ptr)); + + succeed(__FILE__); +}