@@ -87,3 +87,50 @@ def test_backend():
8787 dpctl .SyclEventRaw ().backend
8888 except ValueError :
8989 pytest .fail ("Failed to get backend from event" )
90+
91+
92+ @pytest .mark .skip (reason = "event::get_wait_list() method returns wrong result" )
93+ def test_get_wait_list ():
94+ if has_cpu ():
95+ oclSrc = " \
96+ kernel void add_k(global float* a) { \
97+ size_t index = get_global_id(0); \
98+ a[index] = a[index] + 1; \
99+ } \
100+ kernel void sqrt_k(global float* a) { \
101+ size_t index = get_global_id(0); \
102+ a[index] = sqrt(a[index]); \
103+ } \
104+ kernel void sin_k(global float* a) { \
105+ size_t index = get_global_id(0); \
106+ a[index] = sin(a[index]); \
107+ }"
108+ q = dpctl .SyclQueue ("opencl:cpu" )
109+ prog = dpctl_prog .create_program_from_source (q , oclSrc )
110+ addKernel = prog .get_sycl_kernel ("add_k" )
111+ sqrtKernel = prog .get_sycl_kernel ("sqrt_k" )
112+ sinKernel = prog .get_sycl_kernel ("sin_k" )
113+
114+ bufBytes = 1024 * np .dtype ("f" ).itemsize
115+ abuf = dpctl_mem .MemoryUSMShared (bufBytes , queue = q )
116+ a = np .ndarray ((1024 ), buffer = abuf , dtype = "f" )
117+ a [:] = np .arange (1024 )
118+ args = []
119+
120+ args .append (a .base )
121+ r = [1024 ]
122+ ev_1 = q .submit (addKernel , args , r )
123+ ev_2 = q .submit (sqrtKernel , args , r , dEvents = [ev_1 ])
124+ ev_3 = q .submit (sinKernel , args , r , dEvents = [ev_2 ])
125+
126+ ev_raw = dpctl .SyclEventRaw (ev_3 )
127+
128+ try :
129+ wait_list = ev_raw .get_wait_list ()
130+ except ValueError :
131+ pytest .fail (
132+ "Failed to get a list of waiting events from SyclEventRaw"
133+ )
134+ assert len (wait_list )
135+ else :
136+ pytest .skip ("No OpenCL CPU queues available" )
0 commit comments