@@ -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+
12361264template <class T > struct GlobalVar {
12371265 std::string name;
12381266 T value;
0 commit comments