@@ -16,6 +16,8 @@ constexpr uint64_t SignalValue = 24;
1616thread_local int urBindlessImagesWaitExternalSemaphoreExp_counter = 0 ;
1717thread_local bool urBindlessImagesWaitExternalSemaphoreExp_expectHasWaitValue =
1818 false ;
19+ thread_local ur_event_handle_t
20+ urBindlessImagesWaitExternalSemaphoreExp_lastEvent = nullptr ;
1921inline ur_result_t
2022urBindlessImagesWaitExternalSemaphoreExp_replace (void *pParams) {
2123 ++urBindlessImagesWaitExternalSemaphoreExp_counter;
@@ -30,6 +32,11 @@ urBindlessImagesWaitExternalSemaphoreExp_replace(void *pParams) {
3032 EXPECT_EQ (*Params.pnumEventsInWaitList , uint32_t {0 });
3133 EXPECT_EQ (*Params.pphEventWaitList , nullptr );
3234 EXPECT_NE (*Params.pphEvent , nullptr );
35+ if (*Params.pphEvent ) {
36+ urBindlessImagesWaitExternalSemaphoreExp_lastEvent =
37+ mock::createDummyHandle<ur_event_handle_t >();
38+ **Params.pphEvent = urBindlessImagesWaitExternalSemaphoreExp_lastEvent;
39+ }
3340 return UR_RESULT_SUCCESS;
3441}
3542
@@ -38,6 +45,8 @@ thread_local bool
3845 urBindlessImagesSignalExternalSemaphoreExp_expectHasSignalValue = false ;
3946thread_local uint32_t
4047 urBindlessImagesSignalExternalSemaphoreExp_expectedNumWaitEvents = 0 ;
48+ thread_local ur_event_handle_t
49+ urBindlessImagesSignalExternalSemaphoreExp_lastEvent = nullptr ;
4150inline ur_result_t
4251urBindlessImagesSignalExternalSemaphoreExp_replace (void *pParams) {
4352 ++urBindlessImagesSignalExternalSemaphoreExp_counter;
@@ -57,6 +66,11 @@ urBindlessImagesSignalExternalSemaphoreExp_replace(void *pParams) {
5766 EXPECT_EQ (*Params.pphEventWaitList , nullptr );
5867 }
5968 EXPECT_NE (*Params.pphEvent , nullptr );
69+ if (*Params.pphEvent ) {
70+ urBindlessImagesSignalExternalSemaphoreExp_lastEvent =
71+ mock::createDummyHandle<ur_event_handle_t >();
72+ **Params.pphEvent = urBindlessImagesSignalExternalSemaphoreExp_lastEvent;
73+ }
6074 return UR_RESULT_SUCCESS;
6175}
6276
@@ -80,15 +94,19 @@ TEST(BindlessImagesExtensionTests, ExternalSemaphoreWait) {
8094 syclexp::external_semaphore_handle_type::opaque_fd;
8195
8296 urBindlessImagesWaitExternalSemaphoreExp_expectHasWaitValue = false ;
83- Q.ext_oneapi_wait_external_semaphore (DummySemaphore);
97+ sycl::event E = Q.ext_oneapi_wait_external_semaphore (DummySemaphore);
8498 EXPECT_EQ (urBindlessImagesWaitExternalSemaphoreExp_counter, 1 );
99+ EXPECT_EQ (sycl::detail::getSyclObjImpl (E)->getHandle (),
100+ urBindlessImagesWaitExternalSemaphoreExp_lastEvent);
85101
86102 DummySemaphore.handle_type =
87103 syclexp::external_semaphore_handle_type::timeline_fd;
88104
89105 urBindlessImagesWaitExternalSemaphoreExp_expectHasWaitValue = true ;
90- Q.ext_oneapi_wait_external_semaphore (DummySemaphore, WaitValue);
106+ E = Q.ext_oneapi_wait_external_semaphore (DummySemaphore, WaitValue);
91107 EXPECT_EQ (urBindlessImagesWaitExternalSemaphoreExp_counter, 2 );
108+ EXPECT_EQ (sycl::detail::getSyclObjImpl (E)->getHandle (),
109+ urBindlessImagesWaitExternalSemaphoreExp_lastEvent);
92110}
93111
94112TEST (BindlessImagesExtensionTests, ExternalSemaphoreSignal) {
@@ -126,36 +144,48 @@ TEST(BindlessImagesExtensionTests, ExternalSemaphoreSignal) {
126144
127145 urBindlessImagesSignalExternalSemaphoreExp_expectHasSignalValue = false ;
128146 urBindlessImagesSignalExternalSemaphoreExp_expectedNumWaitEvents = 0 ;
129- Q.ext_oneapi_signal_external_semaphore (DummySemaphore);
147+ sycl::event E = Q.ext_oneapi_signal_external_semaphore (DummySemaphore);
130148 EXPECT_EQ (urBindlessImagesSignalExternalSemaphoreExp_counter, 1 );
149+ EXPECT_EQ (sycl::detail::getSyclObjImpl (E)->getHandle (),
150+ urBindlessImagesSignalExternalSemaphoreExp_lastEvent);
131151
132152 urBindlessImagesSignalExternalSemaphoreExp_expectHasSignalValue = false ;
133153 urBindlessImagesSignalExternalSemaphoreExp_expectedNumWaitEvents = 1 ;
134- Q.ext_oneapi_signal_external_semaphore (DummySemaphore, DummyEvent1);
154+ E = Q.ext_oneapi_signal_external_semaphore (DummySemaphore, DummyEvent1);
135155 EXPECT_EQ (urBindlessImagesSignalExternalSemaphoreExp_counter, 2 );
156+ EXPECT_EQ (sycl::detail::getSyclObjImpl (E)->getHandle (),
157+ urBindlessImagesSignalExternalSemaphoreExp_lastEvent);
136158
137159 urBindlessImagesSignalExternalSemaphoreExp_expectHasSignalValue = false ;
138160 urBindlessImagesSignalExternalSemaphoreExp_expectedNumWaitEvents = 2 ;
139- Q.ext_oneapi_signal_external_semaphore (DummySemaphore, DummyEventList);
161+ E = Q.ext_oneapi_signal_external_semaphore (DummySemaphore, DummyEventList);
140162 EXPECT_EQ (urBindlessImagesSignalExternalSemaphoreExp_counter, 3 );
163+ EXPECT_EQ (sycl::detail::getSyclObjImpl (E)->getHandle (),
164+ urBindlessImagesSignalExternalSemaphoreExp_lastEvent);
141165
142166 DummySemaphore.handle_type =
143167 syclexp::external_semaphore_handle_type::timeline_fd;
144168
145169 urBindlessImagesSignalExternalSemaphoreExp_expectHasSignalValue = true ;
146170 urBindlessImagesSignalExternalSemaphoreExp_expectedNumWaitEvents = 0 ;
147- Q.ext_oneapi_signal_external_semaphore (DummySemaphore, SignalValue);
171+ E = Q.ext_oneapi_signal_external_semaphore (DummySemaphore, SignalValue);
148172 EXPECT_EQ (urBindlessImagesSignalExternalSemaphoreExp_counter, 4 );
173+ EXPECT_EQ (sycl::detail::getSyclObjImpl (E)->getHandle (),
174+ urBindlessImagesSignalExternalSemaphoreExp_lastEvent);
149175
150176 urBindlessImagesSignalExternalSemaphoreExp_expectHasSignalValue = true ;
151177 urBindlessImagesSignalExternalSemaphoreExp_expectedNumWaitEvents = 1 ;
152- Q.ext_oneapi_signal_external_semaphore (DummySemaphore, SignalValue,
153- DummyEvent1);
178+ E = Q.ext_oneapi_signal_external_semaphore (DummySemaphore, SignalValue,
179+ DummyEvent1);
154180 EXPECT_EQ (urBindlessImagesSignalExternalSemaphoreExp_counter, 5 );
181+ EXPECT_EQ (sycl::detail::getSyclObjImpl (E)->getHandle (),
182+ urBindlessImagesSignalExternalSemaphoreExp_lastEvent);
155183
156184 urBindlessImagesSignalExternalSemaphoreExp_expectHasSignalValue = true ;
157185 urBindlessImagesSignalExternalSemaphoreExp_expectedNumWaitEvents = 2 ;
158- Q.ext_oneapi_signal_external_semaphore (DummySemaphore, SignalValue,
159- DummyEventList);
186+ E = Q.ext_oneapi_signal_external_semaphore (DummySemaphore, SignalValue,
187+ DummyEventList);
160188 EXPECT_EQ (urBindlessImagesSignalExternalSemaphoreExp_counter, 6 );
189+ EXPECT_EQ (sycl::detail::getSyclObjImpl (E)->getHandle (),
190+ urBindlessImagesSignalExternalSemaphoreExp_lastEvent);
161191}
0 commit comments