def testCFAllocator(self): self.assertIsCFType(CoreFoundation.CFAllocatorRef) self.assertIsInstance(CoreFoundation.CFAllocatorGetTypeID(), int) self.assertIsInstance( CoreFoundation.kCFAllocatorDefault, (CoreFoundation.CFAllocatorRef, type(None)), ) self.assertIsInstance(CoreFoundation.kCFAllocatorSystemDefault, CoreFoundation.CFAllocatorRef) self.assertIsInstance(CoreFoundation.kCFAllocatorMalloc, CoreFoundation.CFAllocatorRef) self.assertIsInstance(CoreFoundation.kCFAllocatorMallocZone, CoreFoundation.CFAllocatorRef) self.assertIsInstance(CoreFoundation.kCFAllocatorNull, CoreFoundation.CFAllocatorRef) self.assertIsInstance(CoreFoundation.kCFAllocatorUseContext, CoreFoundation.CFAllocatorRef) r = CoreFoundation.CFAllocatorGetDefault() self.assertIsInstance(r, CoreFoundation.CFAllocatorRef) CoreFoundation.CFAllocatorSetDefault(CoreFoundation.kCFAllocatorMalloc) r2 = CoreFoundation.CFAllocatorGetDefault() self.assertIsInstance(r2, CoreFoundation.CFAllocatorRef) self.assertIs(r2, CoreFoundation.kCFAllocatorMalloc) # Restore default allocator CoreFoundation.CFAllocatorSetDefault(r) self.assertNotHasAttr(CoreFoundation, "CFAllocatorCreate") self.assertNotHasAttr(CoreFoundation, "CFAllocatorAllocate") self.assertNotHasAttr(CoreFoundation, "CFAllocatorReallocate") self.assertNotHasAttr(CoreFoundation, "CFAllocatorDeallocate") self.assertNotHasAttr(CoreFoundation, "CFAllocatorGetContext") r = CoreFoundation.CFAllocatorGetPreferredSizeForSize( CoreFoundation.kCFAllocatorDefault, 15, 0) self.assertIsInstance(r, int) self.assertGreaterEqual(r, 15)