@@ -16,6 +16,8 @@ constexpr uint64_t SignalValue = 24;
16
16
thread_local int urBindlessImagesWaitExternalSemaphoreExp_counter = 0 ;
17
17
thread_local bool urBindlessImagesWaitExternalSemaphoreExp_expectHasWaitValue =
18
18
false ;
19
+ thread_local ur_event_handle_t
20
+ urBindlessImagesWaitExternalSemaphoreExp_lastEvent = nullptr ;
19
21
inline ur_result_t
20
22
urBindlessImagesWaitExternalSemaphoreExp_replace (void *pParams) {
21
23
++urBindlessImagesWaitExternalSemaphoreExp_counter;
@@ -30,6 +32,11 @@ urBindlessImagesWaitExternalSemaphoreExp_replace(void *pParams) {
30
32
EXPECT_EQ (*Params.pnumEventsInWaitList , uint32_t {0 });
31
33
EXPECT_EQ (*Params.pphEventWaitList , nullptr );
32
34
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
+ }
33
40
return UR_RESULT_SUCCESS;
34
41
}
35
42
@@ -38,6 +45,8 @@ thread_local bool
38
45
urBindlessImagesSignalExternalSemaphoreExp_expectHasSignalValue = false ;
39
46
thread_local uint32_t
40
47
urBindlessImagesSignalExternalSemaphoreExp_expectedNumWaitEvents = 0 ;
48
+ thread_local ur_event_handle_t
49
+ urBindlessImagesSignalExternalSemaphoreExp_lastEvent = nullptr ;
41
50
inline ur_result_t
42
51
urBindlessImagesSignalExternalSemaphoreExp_replace (void *pParams) {
43
52
++urBindlessImagesSignalExternalSemaphoreExp_counter;
@@ -57,6 +66,11 @@ urBindlessImagesSignalExternalSemaphoreExp_replace(void *pParams) {
57
66
EXPECT_EQ (*Params.pphEventWaitList , nullptr );
58
67
}
59
68
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
+ }
60
74
return UR_RESULT_SUCCESS;
61
75
}
62
76
@@ -80,15 +94,19 @@ TEST(BindlessImagesExtensionTests, ExternalSemaphoreWait) {
80
94
syclexp::external_semaphore_handle_type::opaque_fd;
81
95
82
96
urBindlessImagesWaitExternalSemaphoreExp_expectHasWaitValue = false ;
83
- Q.ext_oneapi_wait_external_semaphore (DummySemaphore);
97
+ sycl::event E = Q.ext_oneapi_wait_external_semaphore (DummySemaphore);
84
98
EXPECT_EQ (urBindlessImagesWaitExternalSemaphoreExp_counter, 1 );
99
+ EXPECT_EQ (sycl::detail::getSyclObjImpl (E)->getHandle (),
100
+ urBindlessImagesWaitExternalSemaphoreExp_lastEvent);
85
101
86
102
DummySemaphore.handle_type =
87
103
syclexp::external_semaphore_handle_type::timeline_fd;
88
104
89
105
urBindlessImagesWaitExternalSemaphoreExp_expectHasWaitValue = true ;
90
- Q.ext_oneapi_wait_external_semaphore (DummySemaphore, WaitValue);
106
+ E = Q.ext_oneapi_wait_external_semaphore (DummySemaphore, WaitValue);
91
107
EXPECT_EQ (urBindlessImagesWaitExternalSemaphoreExp_counter, 2 );
108
+ EXPECT_EQ (sycl::detail::getSyclObjImpl (E)->getHandle (),
109
+ urBindlessImagesWaitExternalSemaphoreExp_lastEvent);
92
110
}
93
111
94
112
TEST (BindlessImagesExtensionTests, ExternalSemaphoreSignal) {
@@ -126,36 +144,48 @@ TEST(BindlessImagesExtensionTests, ExternalSemaphoreSignal) {
126
144
127
145
urBindlessImagesSignalExternalSemaphoreExp_expectHasSignalValue = false ;
128
146
urBindlessImagesSignalExternalSemaphoreExp_expectedNumWaitEvents = 0 ;
129
- Q.ext_oneapi_signal_external_semaphore (DummySemaphore);
147
+ sycl::event E = Q.ext_oneapi_signal_external_semaphore (DummySemaphore);
130
148
EXPECT_EQ (urBindlessImagesSignalExternalSemaphoreExp_counter, 1 );
149
+ EXPECT_EQ (sycl::detail::getSyclObjImpl (E)->getHandle (),
150
+ urBindlessImagesSignalExternalSemaphoreExp_lastEvent);
131
151
132
152
urBindlessImagesSignalExternalSemaphoreExp_expectHasSignalValue = false ;
133
153
urBindlessImagesSignalExternalSemaphoreExp_expectedNumWaitEvents = 1 ;
134
- Q.ext_oneapi_signal_external_semaphore (DummySemaphore, DummyEvent1);
154
+ E = Q.ext_oneapi_signal_external_semaphore (DummySemaphore, DummyEvent1);
135
155
EXPECT_EQ (urBindlessImagesSignalExternalSemaphoreExp_counter, 2 );
156
+ EXPECT_EQ (sycl::detail::getSyclObjImpl (E)->getHandle (),
157
+ urBindlessImagesSignalExternalSemaphoreExp_lastEvent);
136
158
137
159
urBindlessImagesSignalExternalSemaphoreExp_expectHasSignalValue = false ;
138
160
urBindlessImagesSignalExternalSemaphoreExp_expectedNumWaitEvents = 2 ;
139
- Q.ext_oneapi_signal_external_semaphore (DummySemaphore, DummyEventList);
161
+ E = Q.ext_oneapi_signal_external_semaphore (DummySemaphore, DummyEventList);
140
162
EXPECT_EQ (urBindlessImagesSignalExternalSemaphoreExp_counter, 3 );
163
+ EXPECT_EQ (sycl::detail::getSyclObjImpl (E)->getHandle (),
164
+ urBindlessImagesSignalExternalSemaphoreExp_lastEvent);
141
165
142
166
DummySemaphore.handle_type =
143
167
syclexp::external_semaphore_handle_type::timeline_fd;
144
168
145
169
urBindlessImagesSignalExternalSemaphoreExp_expectHasSignalValue = true ;
146
170
urBindlessImagesSignalExternalSemaphoreExp_expectedNumWaitEvents = 0 ;
147
- Q.ext_oneapi_signal_external_semaphore (DummySemaphore, SignalValue);
171
+ E = Q.ext_oneapi_signal_external_semaphore (DummySemaphore, SignalValue);
148
172
EXPECT_EQ (urBindlessImagesSignalExternalSemaphoreExp_counter, 4 );
173
+ EXPECT_EQ (sycl::detail::getSyclObjImpl (E)->getHandle (),
174
+ urBindlessImagesSignalExternalSemaphoreExp_lastEvent);
149
175
150
176
urBindlessImagesSignalExternalSemaphoreExp_expectHasSignalValue = true ;
151
177
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);
154
180
EXPECT_EQ (urBindlessImagesSignalExternalSemaphoreExp_counter, 5 );
181
+ EXPECT_EQ (sycl::detail::getSyclObjImpl (E)->getHandle (),
182
+ urBindlessImagesSignalExternalSemaphoreExp_lastEvent);
155
183
156
184
urBindlessImagesSignalExternalSemaphoreExp_expectHasSignalValue = true ;
157
185
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);
160
188
EXPECT_EQ (urBindlessImagesSignalExternalSemaphoreExp_counter, 6 );
189
+ EXPECT_EQ (sycl::detail::getSyclObjImpl (E)->getHandle (),
190
+ urBindlessImagesSignalExternalSemaphoreExp_lastEvent);
161
191
}
0 commit comments