Skip to content

Commit 9c6e151

Browse files
authored
Merge pull request #1153 from aarongreig/aaron/deferBuildKernelFixtures
Allow fixtures derived from KernelTest to defer compilation.
2 parents fe2735a + 512b158 commit 9c6e151

File tree

6 files changed

+55
-20
lines changed

6 files changed

+55
-20
lines changed

test/conformance/kernel/kernel_adapter_level_zero.match

Lines changed: 11 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -13,4 +13,14 @@ urKernelSetArgPointerTest.SuccessDevice/Intel_R__oneAPI_Unified_Runtime_over_Lev
1313
urKernelSetArgPointerTest.SuccessShared/Intel_R__oneAPI_Unified_Runtime_over_Level_Zero___{{.*}}_
1414
urKernelSetArgPointerNegativeTest.InvalidNullHandleKernel/Intel_R__oneAPI_Unified_Runtime_over_Level_Zero___{{.*}}_
1515
urKernelSetArgPointerNegativeTest.InvalidKernelArgumentIndex/Intel_R__oneAPI_Unified_Runtime_over_Level_Zero___{{.*}}_
16-
Segmentation fault
16+
urKernelSetArgSamplerTest.InvalidKernelArgumentIndex/Intel_R__oneAPI_Unified_Runtime_over_Level_Zero___{{.*}}_
17+
urKernelSetArgValueTest.InvalidKernelArgumentIndex/Intel_R__oneAPI_Unified_Runtime_over_Level_Zero___{{.*}}_
18+
urKernelSetArgValueTest.InvalidKernelArgumentSize/Intel_R__oneAPI_Unified_Runtime_over_Level_Zero___{{.*}}_
19+
urKernelSetExecInfoTest.SuccessIndirectAccess/Intel_R__oneAPI_Unified_Runtime_over_Level_Zero___{{.*}}_
20+
urKernelSetExecInfoUSMPointersTest.SuccessHost/Intel_R__oneAPI_Unified_Runtime_over_Level_Zero___{{.*}}_
21+
urKernelSetExecInfoUSMPointersTest.SuccessDevice/Intel_R__oneAPI_Unified_Runtime_over_Level_Zero___{{.*}}_
22+
urKernelSetExecInfoUSMPointersTest.SuccessShared/Intel_R__oneAPI_Unified_Runtime_over_Level_Zero___{{.*}}_
23+
urKernelSetSpecializationConstantsTest.Success/Intel_R__oneAPI_Unified_Runtime_over_Level_Zero___{{.*}}_
24+
urKernelSetSpecializationConstantsTest.InvalidNullHandleKernel/Intel_R__oneAPI_Unified_Runtime_over_Level_Zero___{{.*}}_
25+
urKernelSetSpecializationConstantsTest.InvalidNullPointerSpecConstants/Intel_R__oneAPI_Unified_Runtime_over_Level_Zero___{{.*}}_
26+
urKernelSetSpecializationConstantsTest.InvalidSizeCount/Intel_R__oneAPI_Unified_Runtime_over_Level_Zero___{{.*}}_

test/conformance/kernel/kernel_adapter_opencl.match

Lines changed: 0 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,3 @@
1-
urKernelSetArgSamplerTest.Success/Intel_R__OpenCL___{{.*}}_
2-
urKernelSetArgSamplerTest.InvalidNullHandleKernel/Intel_R__OpenCL___{{.*}}_
3-
urKernelSetArgSamplerTest.InvalidNullHandleArgValue/Intel_R__OpenCL___{{.*}}_
4-
urKernelSetArgSamplerTest.InvalidKernelArgumentIndex/Intel_R__OpenCL___{{.*}}_
51
urKernelSetArgValueTest.InvalidKernelArgumentSize/Intel_R__OpenCL___{{.*}}_
62
urKernelSetSpecializationConstantsTest.Success/Intel_R__OpenCL___{{.*}}_
73
urKernelSetSpecializationConstantsTest.InvalidNullHandleKernel/Intel_R__OpenCL___{{.*}}_

test/conformance/kernel/urKernelSetArgPointer.cpp

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -15,7 +15,7 @@ struct urKernelSetArgPointerTest : uur::urKernelExecutionTest {
1515
if (allocation) {
1616
ASSERT_SUCCESS(urUSMFree(context, allocation));
1717
}
18-
UUR_RETURN_ON_FATAL_FAILURE(urKernelTest::TearDown());
18+
UUR_RETURN_ON_FATAL_FAILURE(urKernelExecutionTest::TearDown());
1919
}
2020

2121
void ValidateAllocation(void *pointer) {

test/conformance/kernel/urKernelSetArgSampler.cpp

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -5,18 +5,18 @@
55

66
#include <uur/fixtures.h>
77

8-
struct urKernelSetArgSamplerTest : uur::urKernelTest {
8+
struct urKernelSetArgSamplerTest : uur::urBaseKernelTest {
99
void SetUp() {
10+
program_name = "image_copy";
11+
UUR_RETURN_ON_FATAL_FAILURE(urBaseKernelTest::SetUp());
1012
// Images and samplers are not available on AMD
1113
ur_platform_backend_t backend;
1214
ASSERT_SUCCESS(urPlatformGetInfo(platform, UR_PLATFORM_INFO_BACKEND,
1315
sizeof(backend), &backend, nullptr));
1416
if (backend == UR_PLATFORM_BACKEND_HIP) {
1517
GTEST_SKIP() << "Sampler are not supported on hip.";
1618
}
17-
18-
program_name = "image_copy";
19-
UUR_RETURN_ON_FATAL_FAILURE(urKernelTest::SetUp());
19+
Build();
2020
ur_sampler_desc_t sampler_desc = {
2121
UR_STRUCTURE_TYPE_SAMPLER_DESC, /* sType */
2222
nullptr, /* pNext */
@@ -31,7 +31,7 @@ struct urKernelSetArgSamplerTest : uur::urKernelTest {
3131
if (sampler) {
3232
ASSERT_SUCCESS(urSamplerRelease(sampler));
3333
}
34-
UUR_RETURN_ON_FATAL_FAILURE(urKernelTest::TearDown());
34+
UUR_RETURN_ON_FATAL_FAILURE(urBaseKernelTest::TearDown());
3535
}
3636

3737
ur_sampler_handle_t sampler = nullptr;

test/conformance/kernel/urKernelSetSpecializationConstants.cpp

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -5,10 +5,10 @@
55

66
#include <uur/fixtures.h>
77

8-
struct urKernelSetSpecializationConstantsTest : uur::urKernelExecutionTest {
8+
struct urKernelSetSpecializationConstantsTest : uur::urBaseKernelExecutionTest {
99
void SetUp() override {
1010
program_name = "spec_constant";
11-
UUR_RETURN_ON_FATAL_FAILURE(urKernelExecutionTest::SetUp());
11+
UUR_RETURN_ON_FATAL_FAILURE(urBaseKernelExecutionTest::SetUp());
1212
bool supports_kernel_spec_constant = false;
1313
ASSERT_SUCCESS(urDeviceGetInfo(
1414
device, UR_DEVICE_INFO_KERNEL_SET_SPECIALIZATION_CONSTANTS,
@@ -18,6 +18,7 @@ struct urKernelSetSpecializationConstantsTest : uur::urKernelExecutionTest {
1818
GTEST_SKIP()
1919
<< "Device does not support setting kernel spec constants.";
2020
}
21+
Build();
2122
}
2223

2324
uint32_t spec_value = 42;

test/conformance/testing/include/uur/fixtures.h

Lines changed: 35 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -1089,14 +1089,17 @@ template <class T> struct urProgramTestWithParam : urContextTestWithParam<T> {
10891089
ur_program_handle_t program = nullptr;
10901090
};
10911091

1092-
struct urKernelTest : urProgramTest {
1092+
struct urBaseKernelTest : urProgramTest {
10931093
void SetUp() override {
10941094
UUR_RETURN_ON_FATAL_FAILURE(urProgramTest::SetUp());
1095-
ASSERT_SUCCESS(urProgramBuild(context, program, nullptr));
10961095
auto kernel_names =
10971096
uur::KernelsEnvironment::instance->GetEntryPointNames(program_name);
10981097
kernel_name = kernel_names[0];
10991098
ASSERT_FALSE(kernel_name.empty());
1099+
}
1100+
1101+
void Build() {
1102+
ASSERT_SUCCESS(urProgramBuild(context, program, nullptr));
11001103
ASSERT_SUCCESS(urKernelCreate(program, kernel_name.data(), &kernel));
11011104
}
11021105

@@ -1111,15 +1114,26 @@ struct urKernelTest : urProgramTest {
11111114
ur_kernel_handle_t kernel = nullptr;
11121115
};
11131116

1114-
template <class T> struct urKernelTestWithParam : urProgramTestWithParam<T> {
1117+
struct urKernelTest : urBaseKernelTest {
1118+
void SetUp() override {
1119+
urBaseKernelTest::SetUp();
1120+
Build();
1121+
}
1122+
};
1123+
1124+
template <class T>
1125+
struct urBaseKernelTestWithParam : urProgramTestWithParam<T> {
11151126
void SetUp() override {
11161127
UUR_RETURN_ON_FATAL_FAILURE(urProgramTestWithParam<T>::SetUp());
1117-
ASSERT_SUCCESS(urProgramBuild(this->context, this->program, nullptr));
11181128
auto kernel_names =
11191129
uur::KernelsEnvironment::instance->GetEntryPointNames(
11201130
this->program_name);
11211131
kernel_name = kernel_names[0];
11221132
ASSERT_FALSE(kernel_name.empty());
1133+
}
1134+
1135+
void Build() {
1136+
ASSERT_SUCCESS(urProgramBuild(this->context, this->program, nullptr));
11231137
ASSERT_SUCCESS(
11241138
urKernelCreate(this->program, kernel_name.data(), &kernel));
11251139
}
@@ -1135,16 +1149,23 @@ template <class T> struct urKernelTestWithParam : urProgramTestWithParam<T> {
11351149
ur_kernel_handle_t kernel = nullptr;
11361150
};
11371151

1138-
struct urKernelExecutionTest : urKernelTest {
1152+
template <class T> struct urKernelTestWithParam : urBaseKernelTestWithParam<T> {
1153+
void SetUp() override {
1154+
UUR_RETURN_ON_FATAL_FAILURE(urBaseKernelTestWithParam<T>::SetUp());
1155+
urBaseKernelTestWithParam<T>::Build();
1156+
}
1157+
};
1158+
1159+
struct urBaseKernelExecutionTest : urBaseKernelTest {
11391160
void SetUp() override {
1140-
UUR_RETURN_ON_FATAL_FAILURE(urKernelTest::SetUp());
1161+
UUR_RETURN_ON_FATAL_FAILURE(urBaseKernelTest::SetUp());
11411162
}
11421163

11431164
void TearDown() override {
11441165
for (auto &buffer : buffer_args) {
11451166
ASSERT_SUCCESS(urMemRelease(buffer));
11461167
}
1147-
UUR_RETURN_ON_FATAL_FAILURE(urKernelTest::TearDown());
1168+
UUR_RETURN_ON_FATAL_FAILURE(urBaseKernelTest::TearDown());
11481169
}
11491170

11501171
// Adds a kernel arg representing a sycl buffer constructed with a 1D range.
@@ -1233,6 +1254,13 @@ struct urKernelExecutionTest : urKernelTest {
12331254
uint32_t current_arg_index = 0;
12341255
};
12351256

1257+
struct urKernelExecutionTest : urBaseKernelExecutionTest {
1258+
void SetUp() {
1259+
UUR_RETURN_ON_FATAL_FAILURE(urBaseKernelExecutionTest::SetUp());
1260+
Build();
1261+
}
1262+
};
1263+
12361264
template <class T> struct GlobalVar {
12371265
std::string name;
12381266
T value;

0 commit comments

Comments
 (0)