import CoreServices
from PyObjCTools.TestSupport import TestCase


class TestMultiProcessing(TestCase):
    def assert_not_wrapped(self, name):
        self.assertTrue(
            not hasattr(CoreServices, name), f"{name!r} exposed in bindings"
        )

    def test_not_wrapped(self):
        self.assert_not_wrapped("MPLibraryName")
        self.assert_not_wrapped("MPLibraryCName")
        self.assert_not_wrapped("MPLibraryPName")
        self.assert_not_wrapped("MP_API_Version")
        self.assert_not_wrapped("MPLibrary_MajorVersion")
        self.assert_not_wrapped("MPLibrary_MinorVersion")
        self.assert_not_wrapped("MPLibrary_Release")
        self.assert_not_wrapped("MPLibrary_DevelopmentRevision")
        self.assert_not_wrapped("MPProcessID")
        self.assert_not_wrapped("MPTaskID")
        self.assert_not_wrapped("MPQueueID")
        self.assert_not_wrapped("MPSemaphoreID")
        self.assert_not_wrapped("MPCriticalRegionID")
        self.assert_not_wrapped("MPTimerID")
        self.assert_not_wrapped("MPEventID")
        self.assert_not_wrapped("MPAddressSpaceID")
        self.assert_not_wrapped("MPNotificationID")
        self.assert_not_wrapped("MPCoherenceID")
        self.assert_not_wrapped("MPCpuID")
        self.assert_not_wrapped("MPAreaID")
        self.assert_not_wrapped("MPConsoleID")
        self.assert_not_wrapped("MPOpaqueID")
        self.assert_not_wrapped("kOpaqueAnyID")
        self.assert_not_wrapped("kOpaqueProcessID")
        self.assert_not_wrapped("kOpaqueTaskID")
        self.assert_not_wrapped("kOpaqueTimerID")
        self.assert_not_wrapped("kOpaqueQueueID")
        self.assert_not_wrapped("kOpaqueSemaphoreID")
        self.assert_not_wrapped("kOpaqueCriticalRegionID")
        self.assert_not_wrapped("kOpaqueCpuID")
        self.assert_not_wrapped("kOpaqueAddressSpaceID")
        self.assert_not_wrapped("kOpaqueEventID")
        self.assert_not_wrapped("kOpaqueCoherenceID")
        self.assert_not_wrapped("kOpaqueAreaID")
        self.assert_not_wrapped("kOpaqueNotificationID")
        self.assert_not_wrapped("kOpaqueConsoleID")
        self.assert_not_wrapped("kMPNoID")
        self.assert_not_wrapped("kDurationImmediate")
        self.assert_not_wrapped("kDurationForever")
        self.assert_not_wrapped("kDurationMillisecond")
        self.assert_not_wrapped("kDurationMicrosecond")
        self.assert_not_wrapped("MPProcessors")
        self.assert_not_wrapped("MPProcessorsScheduled")
        self.assert_not_wrapped("kMPCreateTaskSuspendedMask")
        self.assert_not_wrapped("kMPCreateTaskTakesAllExceptionsMask")
        self.assert_not_wrapped("kMPCreateTaskNotDebuggableMask")
        self.assert_not_wrapped("kMPCreateTaskValidOptionsMask")
        self.assert_not_wrapped("MPCreateTask")
        self.assert_not_wrapped("MPTerminateTask")
        self.assert_not_wrapped("MPSetTaskWeight")
        self.assert_not_wrapped("MPTaskIsPreemptive")
        self.assert_not_wrapped("MPExit")
        self.assert_not_wrapped("MPYield")
        self.assert_not_wrapped("MPCurrentTaskID")
        self.assert_not_wrapped("MPSetTaskType")
        self.assert_not_wrapped("MPAllocateTaskStorageIndex")
        self.assert_not_wrapped("MPDeallocateTaskStorageIndex")
        self.assert_not_wrapped("MPSetTaskStorageValue")
        self.assert_not_wrapped("MPGetTaskStorageValue")
        self.assert_not_wrapped("MPCreateQueue")
        self.assert_not_wrapped("MPDeleteQueue")
        self.assert_not_wrapped("MPNotifyQueue")
        self.assert_not_wrapped("MPWaitOnQueue")
        self.assert_not_wrapped("MPSetQueueReserve")
        self.assert_not_wrapped("MPCreateSemaphore")
        self.assert_not_wrapped("MPDeleteSemaphore")
        self.assert_not_wrapped("MPSignalSemaphore")
        self.assert_not_wrapped("MPWaitOnSemaphore")
        self.assert_not_wrapped("MPCreateCriticalRegion")
        self.assert_not_wrapped("MPDeleteCriticalRegion")
        self.assert_not_wrapped("MPEnterCriticalRegion")
        self.assert_not_wrapped("MPExitCriticalRegion")
        self.assert_not_wrapped("MPCreateEvent")
        self.assert_not_wrapped("MPDeleteEvent")
        self.assert_not_wrapped("MPSetEvent")
        self.assert_not_wrapped("MPWaitForEvent")
        self.assert_not_wrapped("MPCreateNotification")
        self.assert_not_wrapped("MPDeleteNotification")
        self.assert_not_wrapped("MPModifyNotification")
        self.assert_not_wrapped("MPModifyNotificationParameters")
        self.assert_not_wrapped("MPCauseNotification")
        self.assert_not_wrapped("kMPPreserveTimerIDMask")
        self.assert_not_wrapped("kMPTimeIsDeltaMask")
        self.assert_not_wrapped("kMPTimeIsDurationMask")
        self.assert_not_wrapped("MPDelayUntil")
        self.assert_not_wrapped("MPCreateTimer")
        self.assert_not_wrapped("MPDeleteTimer")
        self.assert_not_wrapped("MPSetTimerNotify")
        self.assert_not_wrapped("MPArmTimer")
        self.assert_not_wrapped("MPCancelTimer")
        self.assert_not_wrapped("kMPMaxAllocSize")
        self.assert_not_wrapped("kMPAllocateDefaultAligned")
        self.assert_not_wrapped("kMPAllocate8ByteAligned")
        self.assert_not_wrapped("kMPAllocate16ByteAligned")
        self.assert_not_wrapped("kMPAllocate32ByteAligned")
        self.assert_not_wrapped("kMPAllocate1024ByteAligned")
        self.assert_not_wrapped("kMPAllocate4096ByteAligned")
        self.assert_not_wrapped("kMPAllocateMaxAlignment")
        self.assert_not_wrapped("kMPAllocateAltiVecAligned")
        self.assert_not_wrapped("kMPAllocateVMXAligned")
        self.assert_not_wrapped("kMPAllocateVMPageAligned")
        self.assert_not_wrapped("kMPAllocateInterlockAligned")
        self.assert_not_wrapped("kMPAllocateClearMask")
        self.assert_not_wrapped("kMPAllocateGloballyMask")
        self.assert_not_wrapped("kMPAllocateResidentMask")
        self.assert_not_wrapped("kMPAllocateNoGrowthMask")
        self.assert_not_wrapped("kMPAllocateNoCreateMask")
        self.assert_not_wrapped("MPAllocateAligned")
        self.assert_not_wrapped("MPAllocate")
        self.assert_not_wrapped("MPFree")
        self.assert_not_wrapped("MPGetAllocatedBlockSize")
        self.assert_not_wrapped("MPBlockCopy")
        self.assert_not_wrapped("MPBlockClear")
        self.assert_not_wrapped("MPDataToCode")
        self.assert_not_wrapped("kMPTaskStateRegisters")
        self.assert_not_wrapped("kMPTaskStateFPU")
        self.assert_not_wrapped("kMPTaskStateVectors")
        self.assert_not_wrapped("kMPTaskStateMachine")
        self.assert_not_wrapped("kMPTaskState32BitMemoryException")
        self.assert_not_wrapped("kMPTaskStateTaskInfo")
        self.assert_not_wrapped("kMPTaskPropagate")
        self.assert_not_wrapped("kMPTaskResumeStep")
        self.assert_not_wrapped("kMPTaskResumeBranch")
        self.assert_not_wrapped("kMPTaskResumeMask")
        self.assert_not_wrapped("kMPTaskPropagateMask")
        self.assert_not_wrapped("kMPTaskResumeStepMask")
        self.assert_not_wrapped("kMPTaskResumeBranchMask")
        self.assert_not_wrapped("kMPTaskBlocked")
        self.assert_not_wrapped("kMPTaskReady")
        self.assert_not_wrapped("kMPTaskRunning")
        self.assert_not_wrapped("kMPTaskInfoVersion")
        self.assert_not_wrapped("MPTaskInfoVersion2")
        self.assert_not_wrapped("MPTaskInfo")
        self.assert_not_wrapped("MPSetExceptionHandler")
        self.assert_not_wrapped("MPDisposeTaskException")
        self.assert_not_wrapped("MPExtractTaskState")
        self.assert_not_wrapped("MPSetTaskState(")
        self.assert_not_wrapped("MPThrowException(")
        self.assert_not_wrapped("kMPLowLevelDebugger")
        self.assert_not_wrapped("kMPMidLevelDebugger")
        self.assert_not_wrapped("kMPHighLevelDebugger")
        self.assert_not_wrapped("MPRegisterDebugger")
        self.assert_not_wrapped("MPUnregisterDebugger")
        self.assert_not_wrapped("kMPAnyRemoteContext")
        self.assert_not_wrapped("kMPOwningProcessRemoteContext")
        self.assert_not_wrapped("kMPInterruptRemoteContext")
        self.assert_not_wrapped("kMPAsyncInterruptRemoteContext")
        self.assert_not_wrapped("MPRemoteCall(")
        self.assert_not_wrapped("MPRemoteCallCFM(")
        self.assert_not_wrapped("_MPIsFullyInitialized")
        self.assert_not_wrapped("kMPUnresolvedCFragSymbolAddress")
        self.assert_not_wrapped("MPLibraryIsLoaded")
        self.assert_not_wrapped("_MPLibraryVersion")
        self.assert_not_wrapped("_MPLibraryIsCompatible")
        self.assert_not_wrapped("#define MPRPC")
        self.assert_not_wrapped("#define MPTaskIsToolboxSafe")
        self.assert_not_wrapped("MPIncludeDefunctServices")
        self.assert_not_wrapped("")
