Skip to content

Commit f0ced4e

Browse files
committed
DLPack tests for copy and stream kwargs in __dlpack__
1 parent bff131a commit f0ced4e

File tree

1 file changed

+47
-0
lines changed

1 file changed

+47
-0
lines changed

dpctl/tests/test_usm_ndarray_dlpack.py

Lines changed: 47 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -423,3 +423,50 @@ def test_dlpack_size_0():
423423
cap = x.__dlpack__(max_version=max_supported_ver)
424424
y = _dlp.from_dlpack_versioned_capsule(cap)
425425
assert y._pointer == x._pointer
426+
427+
428+
def test_dlpack_max_version_validation():
429+
try:
430+
x = dpt.ones(100, dtype="i4")
431+
except dpctl.SyclDeviceCreationError:
432+
pytest.skip("No default device available")
433+
434+
with pytest.raises(
435+
TypeError,
436+
match=r"`__dlpack__` expects `max_version` to be a "
437+
r"2-tuple of integers `\(major, minor\)`, instead "
438+
r"got .*",
439+
):
440+
x.__dlpack__(max_version=1)
441+
442+
443+
def test_dlpack_kwargs():
444+
try:
445+
q1 = dpctl.SyclQueue()
446+
q2 = dpctl.SyclQueue()
447+
except dpctl.SyclQueueCreationError:
448+
pytest.skip("Could not create default queues")
449+
x = dpt.arange(100, dtype="i4", sycl_queue=q1)
450+
451+
legacy_ver = (0, 8)
452+
cap = x.__dlpack__(stream=q2, max_version=legacy_ver, copy=True)
453+
# `copy` ignored for legacy path
454+
y = _dlp.from_dlpack_capsule(cap)
455+
assert y._pointer == x._pointer
456+
del x, y
457+
del cap
458+
459+
x1 = dpt.arange(100, dtype="i4", sycl_queue=q1)
460+
max_supported_ver = _dlp.get_build_dlpack_version()
461+
cap = x1.__dlpack__(stream=q2, max_version=max_supported_ver, copy=False)
462+
y = _dlp.from_dlpack_versioned_capsule(cap)
463+
assert y._pointer == x1._pointer
464+
del x1, y
465+
del cap
466+
467+
x2 = dpt.arange(100, dtype="i4", sycl_queue=q1)
468+
cap = x2.__dlpack__(stream=q2, max_version=max_supported_ver, copy=True)
469+
y = _dlp.from_dlpack_versioned_capsule(cap)
470+
assert y._pointer != x2._pointer
471+
del x2, y
472+
del cap

0 commit comments

Comments
 (0)