Skip to content

Commit a59084c

Browse files
Added exception handling for when queue, etc could not be created
1 parent fa40693 commit a59084c

File tree

1 file changed

+60
-19
lines changed

1 file changed

+60
-19
lines changed

dpctl/tests/test_sycl_queue.py

Lines changed: 60 additions & 19 deletions
Original file line numberDiff line numberDiff line change
@@ -47,7 +47,7 @@ def test_current_device(check):
4747
try:
4848
q = dpctl.get_current_queue()
4949
except Exception:
50-
pytest.fail("Encountered an exception inside get_current_queue().")
50+
pytest.skip("Encountered an exception inside get_current_queue().")
5151
device = q.get_sycl_device()
5252
check(device)
5353

@@ -125,7 +125,7 @@ def test_has_enable_profiling():
125125
try:
126126
q = dpctl.SyclQueue(property="enable_profiling")
127127
except dpctl.SyclQueueCreationError:
128-
pytest.skip()
128+
pytest.skip("Could not create queue with profiling property enabled")
129129
assert q.has_enable_profiling
130130

131131

@@ -135,7 +135,11 @@ def test_hashing_of_queue():
135135
a dictionary key.
136136
137137
"""
138-
queue_dict = {dpctl.SyclQueue(): "default_queue"}
138+
try:
139+
q = dpctl.SyclQueue()
140+
except dpctl.SyclQueueCreationError:
141+
pytest.skip("Default-constructed queue could not be created")
142+
queue_dict = {q: "default_queue"}
139143
assert queue_dict
140144

141145

@@ -144,7 +148,7 @@ def test_channeling_device_properties(capsys):
144148
q = dpctl.SyclQueue()
145149
dev = q.sycl_device
146150
except dpctl.SyclQueueCreationError:
147-
pytest.fail("Failed to create device from default selector")
151+
pytest.skip("Failed to create device from default selector")
148152

149153
q.print_device_info() # should execute without raising
150154
q_captured = capsys.readouterr()
@@ -177,20 +181,39 @@ def test_queue_submit_barrier(valid_filter):
177181

178182

179183
def test_queue__repr__():
180-
q1 = dpctl.SyclQueue(property=0)
184+
try:
185+
q1 = dpctl.SyclQueue(property=0)
186+
except dpctl.SyclQueueCreationError:
187+
pytest.skip()
181188
r1 = q1.__repr__()
182-
q2 = dpctl.SyclQueue(property="in_order")
183-
r2 = q2.__repr__()
184-
q3 = dpctl.SyclQueue(property="enable_profiling")
185-
r3 = q3.__repr__()
186-
q4 = dpctl.SyclQueue(property="default")
187-
r4 = q4.__repr__()
188-
q5 = dpctl.SyclQueue(property=["in_order", "enable_profiling", 0])
189-
r5 = q5.__repr__()
190189
assert type(r1) is str
190+
191+
try:
192+
q2 = dpctl.SyclQueue(property="in_order")
193+
except dpctl.SyclQueueCreationError:
194+
pytest.skip()
195+
r2 = q2.__repr__()
191196
assert type(r2) is str
197+
198+
try:
199+
q3 = dpctl.SyclQueue(property="enable_profiling")
200+
except dpctl.SyclQueueCreationError:
201+
pytest.skip()
202+
r3 = q3.__repr__()
192203
assert type(r3) is str
204+
205+
try:
206+
q4 = dpctl.SyclQueue(property="default")
207+
except dpctl.SyclQueueCreationError:
208+
pytest.skip()
209+
r4 = q4.__repr__()
193210
assert type(r4) is str
211+
212+
try:
213+
q5 = dpctl.SyclQueue(property=["in_order", "enable_profiling", 0])
214+
except dpctl.SyclQueueCreationError:
215+
pytest.skip()
216+
r5 = q5.__repr__()
194217
assert type(r5) is str
195218

196219

@@ -202,7 +225,10 @@ def test_queue_invalid_property():
202225

203226

204227
def test_queue_capsule():
205-
q = dpctl.SyclQueue()
228+
try:
229+
q = dpctl.SyclQueue()
230+
except dpctl.SyclQueueCreationError:
231+
pytest.skip("Can not defaul-construct SyclQueue")
206232
cap = q._get_capsule()
207233
cap2 = q._get_capsule()
208234
q2 = dpctl.SyclQueue(cap)
@@ -227,7 +253,10 @@ def test_queue_ctor():
227253

228254

229255
def test_cpython_api_SyclQueue_GetQueueRef():
230-
q = dpctl.SyclQueue()
256+
try:
257+
q = dpctl.SyclQueue()
258+
except dpctl.SyclQueueCreationError:
259+
pytest.skip("Can not defaul-construct SyclQueue")
231260
mod = sys.modules[q.__class__.__module__]
232261
# get capsule storign SyclQueue_GetQueueRef function ptr
233262
q_ref_fn_cap = mod.__pyx_capi__["SyclQueue_GetQueueRef"]
@@ -247,7 +276,10 @@ def test_cpython_api_SyclQueue_GetQueueRef():
247276

248277

249278
def test_cpython_api_SyclQueue_Make():
250-
q = dpctl.SyclQueue()
279+
try:
280+
q = dpctl.SyclQueue()
281+
except dpctl.SyclQueueCreationError:
282+
pytest.skip("Can not defaul-construct SyclQueue")
251283
mod = sys.modules[q.__class__.__module__]
252284
# get capsule storing SyclQueue_Make function ptr
253285
make_SyclQueue_fn_cap = mod.__pyx_capi__["SyclQueue_Make"]
@@ -271,7 +303,10 @@ def test_constructor_many_arg():
271303
dpctl.SyclQueue(None, None, None, None)
272304
with pytest.raises(TypeError):
273305
dpctl.SyclQueue(None, None)
274-
ctx = dpctl.SyclContext()
306+
try:
307+
ctx = dpctl.SyclContext()
308+
except dpctl.SyclContextCreationError:
309+
pytest.skip()
275310
with pytest.raises(TypeError):
276311
dpctl.SyclQueue(ctx, None)
277312
with pytest.raises(TypeError):
@@ -370,6 +405,12 @@ def dpctl_cython_extension(tmp_path_factory):
370405

371406

372407
def test_cython_api(dpctl_cython_extension):
373-
q = dpctl_cython_extension.call_create_from_context_and_devices()
374-
d = dpctl.SyclDevice()
408+
try:
409+
q = dpctl_cython_extension.call_create_from_context_and_devices()
410+
except (dpctl.SyclDeviceCreationError, dpctl.SyclQueueCreationError):
411+
pytest.skip()
412+
try:
413+
d = dpctl.SyclDevice()
414+
except dpctl.SyclDeviceCreationError:
415+
pytest.skip("Default-construction of SyclDevice failed")
375416
assert q.sycl_device == d

0 commit comments

Comments
 (0)