Skip to content

Commit 8a7bae8

Browse files
Run coverage workflow with host device enabled
Also parametrized test for compiling from source to run on OCL gpu and OCL cpu if found.
1 parent 65a5d4f commit 8a7bae8

File tree

2 files changed

+20
-15
lines changed

2 files changed

+20
-15
lines changed

.github/workflows/generate-coverage.yaml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -85,7 +85,7 @@ jobs:
8585
shell: bash -l {0}
8686
run: |
8787
source /opt/intel/oneapi/setvars.sh
88-
python scripts/gen_coverage.py
88+
SYCL_ENABLE_HOST_DEVICE=1 python scripts/gen_coverage.py
8989
9090
- name: Install coverall dependencies
9191
shell: bash -l {0}

libsyclinterface/tests/test_sycl_kernel_bundle_interface.cpp

Lines changed: 19 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -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+
264269
struct TestKernelBundleUnsupportedBackend : public ::testing::Test
265270
{
266271
DPCTLSyclDeviceRef DRef = nullptr;

0 commit comments

Comments
 (0)