Skip to content

Commit 60899e1

Browse files
author
Pavel Chupin
authored
Revert "[SYCL] Improve mock PI plugin" (#7183)
Reverts #7129
1 parent 7202173 commit 60899e1

38 files changed

+578
-724
lines changed

sycl/unittests/SYCL2020/GetNativeOpenCL.cpp

Lines changed: 9 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -86,18 +86,16 @@ TEST(GetNative, GetNativeHandle) {
8686
sycl::unittest::PiMock Mock;
8787
sycl::platform Plt = Mock.getPlatform();
8888

89-
Mock.redefineBefore<detail::PiApiKind::piEventGetInfo>(redefinedEventGetInfo);
90-
Mock.redefineBefore<detail::PiApiKind::piContextRetain>(
91-
redefinedContextRetain);
92-
Mock.redefineBefore<detail::PiApiKind::piQueueRetain>(redefinedQueueRetain);
93-
Mock.redefineBefore<detail::PiApiKind::piDeviceRetain>(redefinedDeviceRetain);
94-
Mock.redefineBefore<detail::PiApiKind::piProgramRetain>(
95-
redefinedProgramRetain);
96-
Mock.redefineBefore<detail::PiApiKind::piEventRetain>(redefinedEventRetain);
97-
Mock.redefineBefore<detail::PiApiKind::piMemRetain>(redefinedMemRetain);
98-
Mock.redefineBefore<sycl::detail::PiApiKind::piMemBufferCreate>(
89+
Mock.redefine<detail::PiApiKind::piEventGetInfo>(redefinedEventGetInfo);
90+
Mock.redefine<detail::PiApiKind::piContextRetain>(redefinedContextRetain);
91+
Mock.redefine<detail::PiApiKind::piQueueRetain>(redefinedQueueRetain);
92+
Mock.redefine<detail::PiApiKind::piDeviceRetain>(redefinedDeviceRetain);
93+
Mock.redefine<detail::PiApiKind::piProgramRetain>(redefinedProgramRetain);
94+
Mock.redefine<detail::PiApiKind::piEventRetain>(redefinedEventRetain);
95+
Mock.redefine<detail::PiApiKind::piMemRetain>(redefinedMemRetain);
96+
Mock.redefine<sycl::detail::PiApiKind::piMemBufferCreate>(
9997
redefinedMemBufferCreate);
100-
Mock.redefineBefore<detail::PiApiKind::piextUSMEnqueueMemset>(
98+
Mock.redefine<detail::PiApiKind::piextUSMEnqueueMemset>(
10199
redefinedUSMEnqueueMemset);
102100

103101
context Context(Plt);

sycl/unittests/assert/assert.cpp

Lines changed: 75 additions & 48 deletions
Original file line numberDiff line numberDiff line change
@@ -175,9 +175,11 @@ static int MemoryMapCounter = MemoryMapCounterBase;
175175
static constexpr int PauseWaitOnIdx = KernelLaunchCounterBase + 1;
176176

177177
// Mock redifinitions
178-
static pi_result redefinedKernelGetGroupInfoAfter(
179-
pi_kernel kernel, pi_device device, pi_kernel_group_info param_name,
180-
size_t param_value_size, void *param_value, size_t *param_value_size_ret) {
178+
static pi_result redefinedKernelGetGroupInfo(pi_kernel kernel, pi_device device,
179+
pi_kernel_group_info param_name,
180+
size_t param_value_size,
181+
void *param_value,
182+
size_t *param_value_size_ret) {
181183
if (param_name == PI_KERNEL_GROUP_INFO_COMPILE_WORK_GROUP_SIZE) {
182184
if (param_value_size_ret) {
183185
*param_value_size_ret = 3 * sizeof(size_t);
@@ -192,23 +194,25 @@ static pi_result redefinedKernelGetGroupInfoAfter(
192194
return PI_SUCCESS;
193195
}
194196

195-
static pi_result
196-
redefinedEnqueueKernelLaunchAfter(pi_queue, pi_kernel, pi_uint32,
197-
const size_t *, const size_t *,
198-
const size_t *LocalSize, pi_uint32 NDeps,
199-
const pi_event *Deps, pi_event *RetEvent) {
200-
static pi_event UserKernelEvent = *RetEvent;
201-
int Val = KernelLaunchCounter++;
197+
static pi_result redefinedEnqueueKernelLaunch(pi_queue, pi_kernel, pi_uint32,
198+
const size_t *, const size_t *,
199+
const size_t *LocalSize,
200+
pi_uint32 N, const pi_event *Deps,
201+
pi_event *RetEvent) {
202+
int *Ret = new int[1];
203+
*Ret = KernelLaunchCounter++;
202204
// This output here is to reduce amount of time requried to debug/reproduce a
203205
// failing test upon feature break
204-
printf("Enqueued %i\n", Val);
206+
printf("Enqueued %i\n", *Ret);
205207

206-
if (PauseWaitOnIdx == Val) {
208+
if (PauseWaitOnIdx == *Ret) {
207209
// It should be copier kernel. Check if it depends on user's one.
208-
EXPECT_EQ(NDeps, 1U);
209-
EXPECT_EQ(Deps[0], UserKernelEvent);
210+
EXPECT_EQ(N, 1U);
211+
int EventIdx = reinterpret_cast<int *>(Deps[0])[0];
212+
EXPECT_EQ(EventIdx, 0);
210213
}
211214

215+
*RetEvent = reinterpret_cast<pi_event>(Ret);
212216
return PI_SUCCESS;
213217
}
214218

@@ -239,30 +243,56 @@ static pi_result redefinedEventsWaitNegative(pi_uint32 num_events,
239243
return PI_SUCCESS;
240244
}
241245

242-
static pi_result redefinedEnqueueMemBufferMapAfter(
246+
static pi_result
247+
redefinedMemBufferCreate(pi_context context, pi_mem_flags flags, size_t size,
248+
void *host_ptr, pi_mem *ret_mem,
249+
const pi_mem_properties *properties = nullptr) {
250+
static size_t MemAddrCounter = 1;
251+
*ret_mem = (pi_mem)MemAddrCounter++;
252+
return PI_SUCCESS;
253+
}
254+
255+
static pi_result redefinedMemRelease(pi_mem mem) { return PI_SUCCESS; }
256+
257+
static pi_result redefinedKernelSetArg(pi_kernel kernel, pi_uint32 arg_index,
258+
size_t arg_size, const void *arg_value) {
259+
return PI_SUCCESS;
260+
}
261+
262+
static pi_result redefinedEnqueueMemBufferMap(
243263
pi_queue command_queue, pi_mem buffer, pi_bool blocking_map,
244264
pi_map_flags map_flags, size_t offset, size_t size,
245265
pi_uint32 num_events_in_wait_list, const pi_event *event_wait_list,
246266
pi_event *RetEvent, void **RetMap) {
247-
MemoryMapCounter++;
267+
int *Ret = new int[1];
268+
*Ret = MemoryMapCounter++;
248269
// This output here is to reduce amount of time requried to debug/reproduce a
249270
// failing test upon feature break
250-
printf("Memory map %i\n", MemoryMapCounter);
271+
printf("Memory map %i\n", *Ret);
272+
*RetEvent = reinterpret_cast<pi_event>(Ret);
251273

252274
*RetMap = (void *)&ExpectedToOutput;
253275

254276
return PI_SUCCESS;
255277
}
256278

279+
static pi_result redefinedExtKernelSetArgMemObj(pi_kernel kernel,
280+
pi_uint32 arg_index,
281+
const pi_mem *arg_value) {
282+
return PI_SUCCESS;
283+
}
284+
257285
static void setupMock(sycl::unittest::PiMock &Mock) {
258286
using namespace sycl::detail;
259-
Mock.redefineAfter<PiApiKind::piKernelGetGroupInfo>(
260-
redefinedKernelGetGroupInfoAfter);
261-
Mock.redefineAfter<PiApiKind::piEnqueueKernelLaunch>(
262-
redefinedEnqueueKernelLaunchAfter);
263-
Mock.redefineAfter<PiApiKind::piEnqueueMemBufferMap>(
264-
redefinedEnqueueMemBufferMapAfter);
265-
Mock.redefineBefore<PiApiKind::piEventsWait>(redefinedEventsWaitPositive);
287+
Mock.redefine<PiApiKind::piKernelGetGroupInfo>(redefinedKernelGetGroupInfo);
288+
Mock.redefine<PiApiKind::piEnqueueKernelLaunch>(redefinedEnqueueKernelLaunch);
289+
Mock.redefine<PiApiKind::piMemBufferCreate>(redefinedMemBufferCreate);
290+
Mock.redefine<PiApiKind::piMemRelease>(redefinedMemRelease);
291+
Mock.redefine<PiApiKind::piKernelSetArg>(redefinedKernelSetArg);
292+
Mock.redefine<PiApiKind::piEnqueueMemBufferMap>(redefinedEnqueueMemBufferMap);
293+
Mock.redefine<PiApiKind::piEventsWait>(redefinedEventsWaitPositive);
294+
Mock.redefine<PiApiKind::piextKernelSetArgMemObj>(
295+
redefinedExtKernelSetArgMemObj);
266296
}
267297

268298
namespace TestInteropKernel {
@@ -287,15 +317,12 @@ static pi_result redefinedKernelGetInfo(pi_kernel Kernel,
287317
}
288318

289319
if (PI_KERNEL_INFO_PROGRAM == ParamName) {
290-
pi_program PIProgram = nullptr;
291-
pi_result Res = mock_piProgramCreate(/*pi_context=*/0x0, /**il*/ nullptr,
292-
/*length=*/0, &PIProgram);
293-
assert(PI_SUCCESS == Res);
320+
cl_program X = (cl_program)1;
294321

295322
if (ParamValue)
296-
memcpy(ParamValue, &PIProgram, sizeof(PIProgram));
323+
memcpy(ParamValue, &X, sizeof(X));
297324
if (ParamValueSizeRet)
298-
*ParamValueSizeRet = sizeof(PIProgram);
325+
*ParamValueSizeRet = sizeof(X);
299326

300327
return PI_SUCCESS;
301328
}
@@ -323,11 +350,13 @@ static pi_result redefinedEnqueueKernelLaunch(pi_queue, pi_kernel, pi_uint32,
323350
const size_t *LocalSize,
324351
pi_uint32 N, const pi_event *Deps,
325352
pi_event *RetEvent) {
326-
int Val = KernelLaunchCounter++;
353+
int *Ret = new int[1];
354+
*Ret = KernelLaunchCounter++;
327355
// This output here is to reduce amount of time requried to debug/reproduce a
328356
// failing test upon feature break
329-
printf("Enqueued %i\n", Val);
357+
printf("Enqueued %i\n", *Ret);
330358

359+
*RetEvent = reinterpret_cast<pi_event>(Ret);
331360
return PI_SUCCESS;
332361
}
333362

@@ -397,18 +426,21 @@ static void setupMockForInterop(sycl::unittest::PiMock &Mock,
397426
TestInteropKernel::Device = &Dev;
398427
TestInteropKernel::Context = &Ctx;
399428

400-
Mock.redefineAfter<PiApiKind::piKernelGetGroupInfo>(
401-
redefinedKernelGetGroupInfoAfter);
402-
Mock.redefineBefore<PiApiKind::piEnqueueKernelLaunch>(
429+
Mock.redefine<PiApiKind::piKernelGetGroupInfo>(redefinedKernelGetGroupInfo);
430+
Mock.redefine<PiApiKind::piEnqueueKernelLaunch>(
403431
TestInteropKernel::redefinedEnqueueKernelLaunch);
404-
Mock.redefineAfter<PiApiKind::piEnqueueMemBufferMap>(
405-
redefinedEnqueueMemBufferMapAfter);
406-
Mock.redefineBefore<PiApiKind::piEventsWait>(redefinedEventsWaitNegative);
407-
Mock.redefineBefore<PiApiKind::piKernelGetInfo>(
432+
Mock.redefine<PiApiKind::piMemBufferCreate>(redefinedMemBufferCreate);
433+
Mock.redefine<PiApiKind::piMemRelease>(redefinedMemRelease);
434+
Mock.redefine<PiApiKind::piKernelSetArg>(redefinedKernelSetArg);
435+
Mock.redefine<PiApiKind::piEnqueueMemBufferMap>(redefinedEnqueueMemBufferMap);
436+
Mock.redefine<PiApiKind::piEventsWait>(redefinedEventsWaitNegative);
437+
Mock.redefine<PiApiKind::piextKernelSetArgMemObj>(
438+
redefinedExtKernelSetArgMemObj);
439+
Mock.redefine<PiApiKind::piKernelGetInfo>(
408440
TestInteropKernel::redefinedKernelGetInfo);
409-
Mock.redefineBefore<PiApiKind::piProgramGetInfo>(
441+
Mock.redefine<PiApiKind::piProgramGetInfo>(
410442
TestInteropKernel::redefinedProgramGetInfo);
411-
Mock.redefineBefore<PiApiKind::piProgramGetBuildInfo>(
443+
Mock.redefine<PiApiKind::piProgramGetBuildInfo>(
412444
TestInteropKernel::redefinedProgramGetBuildInfo);
413445
}
414446

@@ -549,15 +581,10 @@ TEST(Assert, TestInteropKernelNegative) {
549581

550582
sycl::queue Queue{Ctx, Dev};
551583

552-
pi_kernel PIKernel = nullptr;
553-
554-
pi_result Res = mock_piKernelCreate(
555-
/*pi_program=*/0x0, /*kernel_name=*/"dummy_kernel", &PIKernel);
556-
assert(PI_SUCCESS == Res);
557-
584+
cl_kernel CLKernel = (cl_kernel)(0x01);
558585
// TODO use make_kernel. This requires a fix in backend.cpp to get plugin
559586
// from context instead of free getPlugin to alllow for mocking of its methods
560-
sycl::kernel KInterop((cl_kernel)PIKernel, Ctx);
587+
sycl::kernel KInterop(CLKernel, Ctx);
561588

562589
Queue.submit([&](sycl::handler &H) { H.single_task(KInterop); });
563590

sycl/unittests/buffer/BufferLocation.cpp

Lines changed: 10 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -43,11 +43,11 @@ pi_result redefinedMemBufferCreate(pi_context, pi_mem_flags, size_t size,
4343
return PI_SUCCESS;
4444
}
4545

46-
static pi_result redefinedDeviceGetInfoAfter(pi_device device,
47-
pi_device_info param_name,
48-
size_t param_value_size,
49-
void *param_value,
50-
size_t *param_value_size_ret) {
46+
static pi_result redefinedDeviceGetInfo(pi_device device,
47+
pi_device_info param_name,
48+
size_t param_value_size,
49+
void *param_value,
50+
size_t *param_value_size_ret) {
5151
if (param_name == PI_DEVICE_INFO_TYPE) {
5252
auto *Result = reinterpret_cast<_pi_device_type *>(param_value);
5353
*Result = PI_DEVICE_TYPE_ACC;
@@ -58,15 +58,9 @@ static pi_result redefinedDeviceGetInfoAfter(pi_device device,
5858
}
5959
if (param_name == PI_DEVICE_INFO_EXTENSIONS) {
6060
const std::string name = "cl_intel_mem_alloc_buffer_location";
61-
62-
// Increase size by one for the null terminator
63-
const size_t nameSize = name.size() + 1;
64-
6561
if (!param_value) {
66-
// Choose bigger size so that both original and redefined function
67-
// has enough memory for storing the extension string
68-
*param_value_size_ret =
69-
nameSize > *param_value_size_ret ? nameSize : *param_value_size_ret;
62+
// Increase size by one for the null terminator
63+
*param_value_size_ret = name.size() + 1;
7064
} else {
7165
char *dst = static_cast<char *>(param_value);
7266
strcpy(dst, name.data());
@@ -81,10 +75,10 @@ class BufferTest : public ::testing::Test {
8175

8276
protected:
8377
void SetUp() override {
84-
Mock.redefineBefore<sycl::detail::PiApiKind::piMemBufferCreate>(
78+
Mock.redefine<sycl::detail::PiApiKind::piMemBufferCreate>(
8579
redefinedMemBufferCreate);
86-
Mock.redefineAfter<sycl::detail::PiApiKind::piDeviceGetInfo>(
87-
redefinedDeviceGetInfoAfter);
80+
Mock.redefine<sycl::detail::PiApiKind::piDeviceGetInfo>(
81+
redefinedDeviceGetInfo);
8882
}
8983

9084
protected:

sycl/unittests/event/EventDestruction.cpp

Lines changed: 2 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -33,9 +33,8 @@ class EventDestructionTest : public ::testing::Test {
3333

3434
protected:
3535
void SetUp() override {
36-
Mock.redefineBefore<detail::PiApiKind::piEventRelease>(
37-
redefinedEventRelease);
38-
Mock.redefineBefore<detail::PiApiKind::piMemBufferCreate>(
36+
Mock.redefine<detail::PiApiKind::piEventRelease>(redefinedEventRelease);
37+
Mock.redefine<detail::PiApiKind::piMemBufferCreate>(
3938
redefinedMemBufferCreate);
4039
}
4140

0 commit comments

Comments
 (0)