@@ -31,6 +31,24 @@ def get_spirv_abspath(fn):
3131 return spirv_file
3232
3333
34+ def _check_multi_kernel_program (prog ):
35+ assert type (prog ) is dpctl_prog .SyclProgram
36+
37+ assert type (prog .addressof_ref ()) is int
38+ assert prog .has_sycl_kernel ("add" )
39+ assert prog .has_sycl_kernel ("axpy" )
40+
41+ addKernel = prog .get_sycl_kernel ("add" )
42+ axpyKernel = prog .get_sycl_kernel ("axpy" )
43+
44+ assert "add" == addKernel .get_function_name ()
45+ assert "axpy" == axpyKernel .get_function_name ()
46+ assert 3 == addKernel .get_num_args ()
47+ assert 4 == axpyKernel .get_num_args ()
48+ assert type (addKernel .addressof_ref ()) is int
49+ assert type (axpyKernel .addressof_ref ()) is int
50+
51+
3452def test_create_program_from_source_ocl ():
3553 oclSrc = " \
3654 kernel void add(global int* a, global int* b, global int* c) { \
@@ -46,18 +64,7 @@ def test_create_program_from_source_ocl():
4664 except dpctl .SyclQueueCreationError :
4765 pytest .skip ("No OpenCL queue is available" )
4866 prog = dpctl_prog .create_program_from_source (q , oclSrc )
49- assert prog is not None
50-
51- assert prog .has_sycl_kernel ("add" )
52- assert prog .has_sycl_kernel ("axpy" )
53-
54- addKernel = prog .get_sycl_kernel ("add" )
55- axpyKernel = prog .get_sycl_kernel ("axpy" )
56-
57- assert "add" == addKernel .get_function_name ()
58- assert "axpy" == axpyKernel .get_function_name ()
59- assert 3 == addKernel .get_num_args ()
60- assert 4 == axpyKernel .get_num_args ()
67+ _check_multi_kernel_program (prog )
6168
6269
6370def test_create_program_from_spirv_ocl ():
@@ -69,17 +76,7 @@ def test_create_program_from_spirv_ocl():
6976 with open (spirv_file , "rb" ) as fin :
7077 spirv = fin .read ()
7178 prog = dpctl_prog .create_program_from_spirv (q , spirv )
72- assert prog is not None
73- assert prog .has_sycl_kernel ("add" )
74- assert prog .has_sycl_kernel ("axpy" )
75-
76- addKernel = prog .get_sycl_kernel ("add" )
77- axpyKernel = prog .get_sycl_kernel ("axpy" )
78-
79- assert "add" == addKernel .get_function_name ()
80- assert "axpy" == axpyKernel .get_function_name ()
81- assert 3 == addKernel .get_num_args ()
82- assert 4 == axpyKernel .get_num_args ()
79+ _check_multi_kernel_program (prog )
8380
8481
8582def test_create_program_from_spirv_l0 ():
@@ -90,7 +87,8 @@ def test_create_program_from_spirv_l0():
9087 spirv_file = get_spirv_abspath ("multi_kernel.spv" )
9188 with open (spirv_file , "rb" ) as fin :
9289 spirv = fin .read ()
93- dpctl_prog .create_program_from_spirv (q , spirv )
90+ prog = dpctl_prog .create_program_from_spirv (q , spirv )
91+ _check_multi_kernel_program (prog )
9492
9593
9694@pytest .mark .xfail (
@@ -110,4 +108,17 @@ def test_create_program_from_source_l0():
110108 size_t index = get_global_id(0); \
111109 c[index] = a[index] + d*b[index]; \
112110 }"
113- dpctl_prog .create_program_from_source (q , oclSrc )
111+ prog = dpctl_prog .create_program_from_source (q , oclSrc )
112+ _check_multi_kernel_program (prog )
113+
114+
115+ def test_create_program_from_invalid_src_ocl ():
116+ try :
117+ q = dpctl .SyclQueue ("opencl" )
118+ except dpctl .SyclQueueCreationError :
119+ pytest .skip ("No OpenCL queue is available" )
120+ invalid_oclSrc = " \
121+ kernel void add( \
122+ }"
123+ with pytest .raises (dpctl_prog .SyclProgramCompilationError ):
124+ dpctl_prog .create_program_from_source (q , invalid_oclSrc )
0 commit comments