@@ -33,6 +33,13 @@ def _get_opencl_queue_or_skip():
3333 pytest .skip ("No OpenCL queue is available" )
3434
3535
36+ def _get_level_zero_queue_or_skip ():
37+ try :
38+ return dpctl .SyclQueue ("level_zero" )
39+ except dpctl .SyclQueueCreationError :
40+ pytest .skip ("No Level Zero queue is available" )
41+
42+
3643def _skip_if_no_sycl_source_compilation (q ):
3744 if not dpctl .program .is_sycl_source_compilation_available ():
3845 pytest .skip ("SYCL source compilation extension not available" )
@@ -216,19 +223,13 @@ def test_create_kernel_bundle_from_source_ocl():
216223 size_t index = get_global_id(0); \
217224 c[index] = a[index] + d*b[index]; \
218225 }"
219- try :
220- q = dpctl .SyclQueue ("opencl" )
221- except dpctl .SyclQueueCreationError :
222- pytest .skip ("No OpenCL queue is available" )
226+ q = _get_opencl_queue_or_skip ()
223227 kb = dpctl_prog .create_kernel_bundle_from_source (q , oclSrc )
224228 _check_multi_kernel_program (kb )
225229
226230
227231def test_create_kernel_bundle_from_spirv_ocl ():
228- try :
229- q = dpctl .SyclQueue ("opencl" )
230- except dpctl .SyclQueueCreationError :
231- pytest .skip ("No OpenCL queue is available" )
232+ q = _get_opencl_queue_or_skip ()
232233 spirv_file = get_spirv_abspath ("multi_kernel.spv" )
233234 with open (spirv_file , "rb" ) as fin :
234235 spirv = fin .read ()
@@ -237,10 +238,7 @@ def test_create_kernel_bundle_from_spirv_ocl():
237238
238239
239240def test_create_kernel_bundle_from_spirv_l0 ():
240- try :
241- q = dpctl .SyclQueue ("level_zero" )
242- except dpctl .SyclQueueCreationError :
243- pytest .skip ("No Level-zero queue is available" )
241+ q = _get_level_zero_queue_or_skip ()
244242 spirv_file = get_spirv_abspath ("multi_kernel.spv" )
245243 with open (spirv_file , "rb" ) as fin :
246244 spirv = fin .read ()
@@ -249,13 +247,10 @@ def test_create_kernel_bundle_from_spirv_l0():
249247
250248
251249@pytest .mark .xfail (
252- reason = "Level-zero backend does not support compilation from source"
250+ reason = "Level Zero backend does not support compilation from source"
253251)
254252def test_create_kernel_bundle_from_source_l0 ():
255- try :
256- q = dpctl .SyclQueue ("level_zero" )
257- except dpctl .SyclQueueCreationError :
258- pytest .skip ("No Level-zero queue is available" )
253+ q = _get_level_zero_queue_or_skip ()
259254 oclSrc = " \
260255 kernel void add(global int* a, global int* b, global int* c) { \
261256 size_t index = get_global_id(0); \
@@ -270,19 +265,19 @@ def test_create_kernel_bundle_from_source_l0():
270265
271266
272267def test_create_kernel_bundle_from_invalid_src_ocl ():
273- try :
274- q = dpctl .SyclQueue ("opencl" )
275- except dpctl .SyclQueueCreationError :
276- pytest .skip ("No OpenCL queue is available" )
268+ q = _get_opencl_queue_or_skip ()
277269 invalid_oclSrc = " \
278270 kernel void add( \
279271 }"
280272 with pytest .raises (dpctl_prog .SyclKernelBundleCompilationError ):
281273 dpctl_prog .create_kernel_bundle_from_source (q , invalid_oclSrc )
282274
283275
284- def test_create_kernel_bundle_from_sycl_source ():
285- q = _get_opencl_queue_or_skip ()
276+ @pytest .mark .parametrize (
277+ "queue_selector" , [_get_opencl_queue_or_skip , _get_level_zero_queue_or_skip ]
278+ )
279+ def test_create_kernel_bundle_from_sycl_source (queue_selector ):
280+ q = queue_selector ()
286281 _skip_if_no_sycl_source_compilation (q )
287282
288283 sycl_source = """
@@ -386,8 +381,11 @@ def test_create_kernel_bundle_from_sycl_source():
386381 _check_cpython_api_SyclKernelBundle_GetKernelBundleRef (prog )
387382
388383
389- def test_create_kernel_bundle_from_invalid_src_sycl ():
390- q = _get_opencl_queue_or_skip ()
384+ @pytest .mark .parametrize (
385+ "queue_selector" , [_get_opencl_queue_or_skip , _get_level_zero_queue_or_skip ]
386+ )
387+ def test_create_kernel_bundle_from_invalid_src_sycl (queue_selector ):
388+ q = queue_selector ()
391389 _skip_if_no_sycl_source_compilation (q )
392390
393391 sycl_source = """
@@ -423,8 +421,11 @@ def test_sycl_source_compilation_is_available_returns_bool():
423421 assert type (v ) is bool
424422
425423
426- def test_sycl_source_vector_add_correctness ():
427- q = _get_opencl_queue_or_skip ()
424+ @pytest .mark .parametrize (
425+ "queue_selector" , [_get_opencl_queue_or_skip , _get_level_zero_queue_or_skip ]
426+ )
427+ def test_sycl_source_vector_add_correctness (queue_selector ):
428+ q = queue_selector ()
428429 _skip_if_no_sycl_source_compilation (q )
429430
430431 sycl_source = """
0 commit comments