Beispiel #1
0
    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)