Skip to content

Commit f5fd9a8

Browse files
committed
Fix mock device events and test checks
Signed-off-by: Larsen, Steffen <[email protected]>
1 parent 680dcc7 commit f5fd9a8

File tree

1 file changed

+21
-9
lines changed

1 file changed

+21
-9
lines changed

sycl/unittests/Extensions/BindlessImages/Semaphores.cpp

Lines changed: 21 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,7 @@
22

33
#include <gtest/gtest.h>
44

5+
#include <detail/event_impl.hpp>
56
#include <sycl/detail/core.hpp>
67
#include <sycl/ext/oneapi/bindless_images.hpp>
78
#include <sycl/ext/oneapi/bindless_images_interop.hpp>
@@ -26,9 +27,9 @@ urBindlessImagesWaitExternalSemaphoreExp_replace(void *pParams) {
2627
if (urBindlessImagesWaitExternalSemaphoreExp_expectHasWaitValue) {
2728
EXPECT_EQ(*Params.pwaitValue, WaitValue);
2829
}
29-
EXPECT_EQ(*Params.pphEvent, nullptr);
3030
EXPECT_EQ(*Params.pnumEventsInWaitList, uint32_t{0});
31-
EXPECT_NE(*Params.pphEventWaitList, nullptr);
31+
EXPECT_EQ(*Params.pphEventWaitList, nullptr);
32+
EXPECT_NE(*Params.pphEvent, nullptr);
3233
return UR_RESULT_SUCCESS;
3334
}
3435

@@ -43,7 +44,6 @@ urBindlessImagesSignalExternalSemaphoreExp_replace(void *pParams) {
4344
ur_bindless_images_signal_external_semaphore_exp_params_t Params =
4445
*reinterpret_cast<
4546
ur_bindless_images_signal_external_semaphore_exp_params_t *>(pParams);
46-
EXPECT_EQ(*Params.pphEvent, nullptr);
4747
EXPECT_EQ(*Params.phasSignalValue,
4848
urBindlessImagesSignalExternalSemaphoreExp_expectHasSignalValue);
4949
if (urBindlessImagesSignalExternalSemaphoreExp_expectHasSignalValue) {
@@ -102,12 +102,24 @@ TEST(BindlessImagesExtensionTests, ExternalSemaphoreSignal) {
102102

103103
// Create a dummy external semaphore and set the raw handle to some dummy.
104104
// The mock implementation should never access the handle, so this is safe.
105-
int DummyInt = 0;
105+
int DummyInt1 = 0, DummyInt2 = 0;
106106
syclexp::external_semaphore DummySemaphore{};
107107
DummySemaphore.raw_handle =
108-
reinterpret_cast<ur_exp_external_semaphore_handle_t>(&DummyInt);
109-
110-
std::vector<sycl::event> DummyEventList(2);
108+
reinterpret_cast<ur_exp_external_semaphore_handle_t>(&DummyInt1);
109+
110+
// We create dummy events with dummy UR handles to make the runtime think we
111+
// pass actual device events.
112+
auto DummyEventImpl1 = sycl::detail::event_impl::create_device_event(
113+
*sycl::detail::getSyclObjImpl(Q));
114+
auto DummyEventImpl2 = sycl::detail::event_impl::create_device_event(
115+
*sycl::detail::getSyclObjImpl(Q));
116+
DummyEventImpl1->setHandle(reinterpret_cast<ur_event_handle_t>(&DummyInt1));
117+
DummyEventImpl2->setHandle(reinterpret_cast<ur_event_handle_t>(&DummyInt2));
118+
sycl::event DummyEvent1 =
119+
sycl::detail::createSyclObjFromImpl<sycl::event>(DummyEventImpl1);
120+
sycl::event DummyEvent2 =
121+
sycl::detail::createSyclObjFromImpl<sycl::event>(DummyEventImpl2);
122+
std::vector<sycl::event> DummyEventList{DummyEvent1, DummyEvent2};
111123

112124
DummySemaphore.handle_type =
113125
syclexp::external_semaphore_handle_type::opaque_fd;
@@ -119,7 +131,7 @@ TEST(BindlessImagesExtensionTests, ExternalSemaphoreSignal) {
119131

120132
urBindlessImagesSignalExternalSemaphoreExp_expectHasSignalValue = false;
121133
urBindlessImagesSignalExternalSemaphoreExp_expectedNumWaitEvents = 1;
122-
Q.ext_oneapi_signal_external_semaphore(DummySemaphore, sycl::event{});
134+
Q.ext_oneapi_signal_external_semaphore(DummySemaphore, DummyEvent1);
123135
EXPECT_EQ(urBindlessImagesSignalExternalSemaphoreExp_counter, 2);
124136

125137
urBindlessImagesSignalExternalSemaphoreExp_expectHasSignalValue = false;
@@ -138,7 +150,7 @@ TEST(BindlessImagesExtensionTests, ExternalSemaphoreSignal) {
138150
urBindlessImagesSignalExternalSemaphoreExp_expectHasSignalValue = true;
139151
urBindlessImagesSignalExternalSemaphoreExp_expectedNumWaitEvents = 1;
140152
Q.ext_oneapi_signal_external_semaphore(DummySemaphore, SignalValue,
141-
sycl::event{});
153+
DummyEvent1);
142154
EXPECT_EQ(urBindlessImagesSignalExternalSemaphoreExp_counter, 5);
143155

144156
urBindlessImagesSignalExternalSemaphoreExp_expectHasSignalValue = true;

0 commit comments

Comments
 (0)