Skip to content

Commit cf1cad0

Browse files
Added tests for UsmNDArray_GetUSMData C-API function
1 parent 8a53212 commit cf1cad0

File tree

1 file changed

+19
-0
lines changed

1 file changed

+19
-0
lines changed

dpctl/tests/test_usm_ndarray_ctor.py

Lines changed: 19 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -709,6 +709,25 @@ def test_pyx_capi_get_offset():
709709
assert offset == X.__sycl_usm_array_interface__["offset"]
710710

711711

712+
def test_pyx_capi_get_usmdata():
713+
try:
714+
X = dpt.usm_ndarray(17, dtype="u2")[1::2]
715+
except dpctl.SyclDeviceCreationError:
716+
pytest.skip("No SYCL devices available")
717+
get_usmdata_fn = _pyx_capi_fnptr_to_callable(
718+
X,
719+
"UsmNDArray_GetUSMData",
720+
b"PyObject *(struct PyUSMArrayObject *)",
721+
fn_restype=ctypes.py_object,
722+
fn_argtypes=(ctypes.py_object,),
723+
)
724+
capi_usm_data = get_usmdata_fn(X)
725+
assert isinstance(capi_usm_data, dpm._memory._Memory)
726+
assert capi_usm_data.nbytes == X.usm_data.nbytes
727+
assert capi_usm_data._pointer == X.usm_data._pointer
728+
assert capi_usm_data.sycl_queue == X.usm_data.sycl_queue
729+
730+
712731
def test_pyx_capi_get_queue_ref():
713732
try:
714733
X = dpt.usm_ndarray(17, dtype="i2")[1::2]

0 commit comments

Comments
 (0)