@@ -154,7 +154,8 @@ TEST_P(TestDPCTLSyclKernelBundleInterface, ChkGetKernelNullProgram)
154154 EXPECT_TRUE (KRef == nullptr );
155155}
156156
157- struct TestOCLKernelBundleFromSource : public ::testing::Test
157+ struct TestOCLKernelBundleFromSource
158+ : public ::testing::TestWithParam<const char *>
158159{
159160 const char *CLProgramStr = R"CLC(
160161 kernel void add(global int* a, global int* b, global int* c) {
@@ -175,7 +176,7 @@ struct TestOCLKernelBundleFromSource : public ::testing::Test
175176
176177 TestOCLKernelBundleFromSource ()
177178 {
178- auto DS = DPCTLFilterSelector_Create (" opencl:gpu " );
179+ auto DS = DPCTLFilterSelector_Create (GetParam () );
179180 DRef = DPCTLDevice_CreateFromSelector (DS);
180181 DPCTLDeviceSelector_Delete (DS);
181182 CRef = DPCTLDeviceMgr_GetCachedContext (DRef);
@@ -185,6 +186,15 @@ struct TestOCLKernelBundleFromSource : public ::testing::Test
185186 CRef, DRef, CLProgramStr, CompileOpts);
186187 }
187188
189+ void SetUp ()
190+ {
191+ if (!DRef) {
192+ auto message = " Skipping as no device of type " +
193+ std::string (GetParam ()) + " ." ;
194+ GTEST_SKIP_ (message.c_str ());
195+ }
196+ }
197+
188198 ~TestOCLKernelBundleFromSource ()
189199 {
190200 if (DRef)
@@ -196,17 +206,14 @@ struct TestOCLKernelBundleFromSource : public ::testing::Test
196206 }
197207};
198208
199- TEST_F (TestOCLKernelBundleFromSource, CheckCreateFromOCLSource)
209+ TEST_P (TestOCLKernelBundleFromSource, CheckCreateFromOCLSource)
200210{
201- if (!DRef)
202- GTEST_SKIP_ (" Skipping as no OpenCL GPU device found.\n " );
203-
204211 ASSERT_TRUE (KBRef != nullptr );
205212 ASSERT_TRUE (DPCTLKernelBundle_HasKernel (KBRef, " add" ));
206213 ASSERT_TRUE (DPCTLKernelBundle_HasKernel (KBRef, " axpy" ));
207214}
208215
209- TEST_F (TestOCLKernelBundleFromSource, CheckCreateFromOCLSourceNull)
216+ TEST_P (TestOCLKernelBundleFromSource, CheckCreateFromOCLSourceNull)
210217{
211218 const char *InvalidCLProgramStr = R"CLC(
212219 kernel void invalid(global foo* a, global bar* b) {
@@ -216,9 +223,6 @@ TEST_F(TestOCLKernelBundleFromSource, CheckCreateFromOCLSourceNull)
216223 )CLC" ;
217224 DPCTLSyclKernelBundleRef KBRef = nullptr ;
218225
219- if (!DRef)
220- GTEST_SKIP_ (" Skipping as no OpenCL GPU device found.\n " );
221-
222226 EXPECT_NO_FATAL_FAILURE (KBRef = DPCTLKernelBundle_CreateFromOCLSource (
223227 CRef, DRef, InvalidCLProgramStr, CompileOpts););
224228 ASSERT_TRUE (KBRef == nullptr );
@@ -236,11 +240,8 @@ TEST_F(TestOCLKernelBundleFromSource, CheckCreateFromOCLSourceNull)
236240 ASSERT_TRUE (KBRef == nullptr );
237241}
238242
239- TEST_F (TestOCLKernelBundleFromSource, CheckGetKernelOCLSource)
243+ TEST_P (TestOCLKernelBundleFromSource, CheckGetKernelOCLSource)
240244{
241- if (!DRef)
242- GTEST_SKIP_ (" Skipping as no OpenCL GPU device found.\n " );
243-
244245 auto AddKernel = DPCTLKernelBundle_GetKernel (KBRef, " add" );
245246 auto AxpyKernel = DPCTLKernelBundle_GetKernel (KBRef, " axpy" );
246247 ASSERT_TRUE (AddKernel != nullptr );
@@ -261,6 +262,10 @@ INSTANTIATE_TEST_SUITE_P(KernelBundleCreationFromSpirv,
261262#endif
262263 " opencl:cpu:0" ));
263264
265+ INSTANTIATE_TEST_SUITE_P (KernelBundleCreationFromSource,
266+ TestOCLKernelBundleFromSource,
267+ ::testing::Values (" opencl:gpu" , " opencl:cpu" ));
268+
264269struct TestKernelBundleUnsupportedBackend : public ::testing::Test
265270{
266271 DPCTLSyclDeviceRef DRef = nullptr ;
0 commit comments