@@ -545,6 +545,7 @@ def test_cpython_api(memory_ctor):
545
545
mod = sys .modules [mobj .__class__ .__module__ ]
546
546
# get capsules storing function pointers
547
547
mem_ptr_fn_cap = mod .__pyx_capi__ ["Memory_GetUsmPointer" ]
548
+ mem_opaque_ptr_fn_cap = mod .__pyx_capi__ ["Memory_GetOpaquePointer" ]
548
549
mem_q_ref_fn_cap = mod .__pyx_capi__ ["Memory_GetQueueRef" ]
549
550
mem_ctx_ref_fn_cap = mod .__pyx_capi__ ["Memory_GetContextRef" ]
550
551
mem_nby_fn_cap = mod .__pyx_capi__ ["Memory_GetNumBytes" ]
@@ -556,6 +557,9 @@ def test_cpython_api(memory_ctor):
556
557
mem_ptr_fn_ptr = cap_ptr_fn (
557
558
mem_ptr_fn_cap , b"DPCTLSyclUSMRef (struct Py_MemoryObject *)"
558
559
)
560
+ mem_opaque_ptr_fn_ptr = cap_ptr_fn (
561
+ mem_opaque_ptr_fn_cap , b"void *(struct Py_MemoryObject *)"
562
+ )
559
563
mem_ctx_ref_fn_ptr = cap_ptr_fn (
560
564
mem_ctx_ref_fn_cap , b"DPCTLSyclContextRef (struct Py_MemoryObject *)"
561
565
)
@@ -571,6 +575,7 @@ def test_cpython_api(memory_ctor):
571
575
)
572
576
callable_maker = ctypes .PYFUNCTYPE (ctypes .c_void_p , ctypes .py_object )
573
577
get_ptr_fn = callable_maker (mem_ptr_fn_ptr )
578
+ get_opaque_ptr_fn = callable_maker (mem_opaque_ptr_fn_ptr )
574
579
get_ctx_ref_fn = callable_maker (mem_ctx_ref_fn_ptr )
575
580
get_q_ref_fn = callable_maker (mem_q_ref_fn_ptr )
576
581
get_nby_fn = callable_maker (mem_nby_fn_ptr )
@@ -586,6 +591,8 @@ def test_cpython_api(memory_ctor):
586
591
capi_ptr = get_ptr_fn (mobj )
587
592
direct_ptr = mobj ._pointer
588
593
assert capi_ptr == direct_ptr
594
+ capi_opaque_ptr = get_opaque_ptr_fn (mobj )
595
+ assert capi_opaque_ptr != 0
589
596
capi_ctx_ref = get_ctx_ref_fn (mobj )
590
597
direct_ctx_ref = mobj ._context .addressof_ref ()
591
598
assert capi_ctx_ref == direct_ctx_ref
0 commit comments