Skip to content

Commit 50ec561

Browse files
author
Diptorup Deb
committed
Refactor queue interface tests.
1 parent 507f86d commit 50ec561

File tree

2 files changed

+53
-50
lines changed

2 files changed

+53
-50
lines changed

dpctl-capi/tests/test_sycl_queue_interface.cpp

Lines changed: 29 additions & 17 deletions
Original file line numberDiff line numberDiff line change
@@ -72,7 +72,7 @@ struct TestDPCTLQueueMemberFunctions
7272

7373
~TestDPCTLQueueMemberFunctions()
7474
{
75-
DPCTLQueue_Delete(QRef);
75+
EXPECT_NO_FATAL_FAILURE(DPCTLQueue_Delete(QRef));
7676
}
7777
};
7878

@@ -115,11 +115,13 @@ TEST(TestDPCTLSyclQueueInterface, CheckCopy_Invalid)
115115

116116
TEST(TestDPCTLSyclQueueInterface, CheckAreEq_False)
117117
{
118+
DPCTLSyclDeviceSelectorRef DSRef = nullptr;
118119
DPCTLSyclDeviceRef DRef = nullptr;
119120
DPCTLSyclQueueRef Q1 = nullptr;
120121
DPCTLSyclQueueRef Q2 = nullptr;
121122

122-
EXPECT_NO_FATAL_FAILURE(DRef = DPCTLDevice_Create());
123+
EXPECT_NO_FATAL_FAILURE(DSRef = DPCTLDefaultSelector_Create());
124+
EXPECT_NO_FATAL_FAILURE(DRef = DPCTLDevice_CreateFromSelector(DSRef));
123125
EXPECT_NO_FATAL_FAILURE(
124126
Q1 = DPCTLQueue_CreateForDevice(DRef, nullptr, DPCTL_DEFAULT_PROPERTY));
125127
EXPECT_NO_FATAL_FAILURE(
@@ -129,43 +131,50 @@ TEST(TestDPCTLSyclQueueInterface, CheckAreEq_False)
129131
auto C1 = DPCTLQueue_GetContext(Q2);
130132
// All the queues should share the same context
131133
EXPECT_TRUE(DPCTLContext_AreEq(C0, C1));
132-
DPCTLContext_Delete(C0);
133-
DPCTLContext_Delete(C1);
134-
DPCTLQueue_Delete(Q1);
135-
DPCTLQueue_Delete(Q2);
136-
DPCTLDevice_Delete(DRef);
134+
EXPECT_NO_FATAL_FAILURE(DPCTLContext_Delete(C0));
135+
EXPECT_NO_FATAL_FAILURE(DPCTLContext_Delete(C1));
136+
EXPECT_NO_FATAL_FAILURE(DPCTLQueue_Delete(Q1));
137+
EXPECT_NO_FATAL_FAILURE(DPCTLQueue_Delete(Q2));
138+
EXPECT_NO_FATAL_FAILURE(DPCTLDevice_Delete(DRef));
139+
EXPECT_NO_FATAL_FAILURE(DPCTLDeviceSelector_Delete(DSRef));
137140
}
138141

139142
TEST(TestDPCTLSyclQueueInterface, CheckAreEq_True)
140143
{
144+
DPCTLSyclDeviceSelectorRef DSRef = nullptr;
141145
DPCTLSyclDeviceRef DRef = nullptr;
142146
DPCTLSyclQueueRef Q1 = nullptr;
143147
DPCTLSyclQueueRef Q2 = nullptr;
144148

145-
EXPECT_NO_FATAL_FAILURE(DRef = DPCTLDevice_Create());
149+
EXPECT_NO_FATAL_FAILURE(DSRef = DPCTLDefaultSelector_Create());
150+
EXPECT_NO_FATAL_FAILURE(DRef = DPCTLDevice_CreateFromSelector(DSRef));
146151
EXPECT_NO_FATAL_FAILURE(
147152
Q1 = DPCTLQueue_CreateForDevice(DRef, nullptr, DPCTL_DEFAULT_PROPERTY));
148153
EXPECT_NO_FATAL_FAILURE(Q2 = DPCTLQueue_Copy(Q1));
149154
EXPECT_TRUE(DPCTLQueue_AreEq(Q1, Q2));
150-
DPCTLQueue_Delete(Q1);
151-
DPCTLQueue_Delete(Q2);
152-
DPCTLDevice_Delete(DRef);
155+
EXPECT_NO_FATAL_FAILURE(DPCTLQueue_Delete(Q1));
156+
EXPECT_NO_FATAL_FAILURE(DPCTLQueue_Delete(Q2));
157+
EXPECT_NO_FATAL_FAILURE(DPCTLDevice_Delete(DRef));
158+
EXPECT_NO_FATAL_FAILURE(DPCTLDeviceSelector_Delete(DSRef));
153159
}
154160

155161
TEST(TestDPCTLSyclQueueInterface, CheckAreEq_Invalid)
156162
{
163+
DPCTLSyclDeviceSelectorRef DSRef = nullptr;
157164
DPCTLSyclDeviceRef DRef = nullptr;
158165
DPCTLSyclQueueRef Q1 = nullptr;
159166
DPCTLSyclQueueRef Q2 = nullptr;
160167

161168
EXPECT_FALSE(DPCTLQueue_AreEq(Q1, Q2));
162-
EXPECT_NO_FATAL_FAILURE(DRef = DPCTLDevice_Create());
169+
EXPECT_NO_FATAL_FAILURE(DSRef = DPCTLDefaultSelector_Create());
170+
EXPECT_NO_FATAL_FAILURE(DRef = DPCTLDevice_CreateFromSelector(DSRef));
163171
EXPECT_NO_FATAL_FAILURE(
164172
Q1 = DPCTLQueue_CreateForDevice(DRef, nullptr, DPCTL_DEFAULT_PROPERTY));
165173
EXPECT_FALSE(DPCTLQueue_AreEq(Q1, Q2));
166174

167-
DPCTLQueue_Delete(Q1);
168-
DPCTLDevice_Delete(DRef);
175+
EXPECT_NO_FATAL_FAILURE(DPCTLQueue_Delete(Q1));
176+
EXPECT_NO_FATAL_FAILURE(DPCTLDevice_Delete(DRef));
177+
EXPECT_NO_FATAL_FAILURE(DPCTLDeviceSelector_Delete(DSRef));
169178
}
170179

171180
TEST(TestDPCTLSyclQueueInterface, CheckGetBackend_Invalid)
@@ -195,11 +204,13 @@ TEST(TestDPCTLSyclQueueInterface, CheckGetDevice_Invalid)
195204
TEST(TestDPCTLSyclQueueInterface, CheckIsInOrder)
196205
{
197206
bool ioq = true;
207+
DPCTLSyclDeviceSelectorRef DSRef = nullptr;
198208
DPCTLSyclDeviceRef DRef = nullptr;
199209
DPCTLSyclQueueRef Q1 = nullptr;
200210
DPCTLSyclQueueRef Q2 = nullptr;
201211

202-
EXPECT_NO_FATAL_FAILURE(DRef = DPCTLDevice_Create());
212+
EXPECT_NO_FATAL_FAILURE(DSRef = DPCTLDefaultSelector_Create());
213+
EXPECT_NO_FATAL_FAILURE(DRef = DPCTLDevice_CreateFromSelector(DSRef));
203214
EXPECT_NO_FATAL_FAILURE(
204215
Q1 = DPCTLQueue_CreateForDevice(DRef, nullptr, DPCTL_DEFAULT_PROPERTY));
205216
EXPECT_NO_FATAL_FAILURE(ioq = DPCTLQueue_IsInOrder(Q1));
@@ -213,6 +224,7 @@ TEST(TestDPCTLSyclQueueInterface, CheckIsInOrder)
213224
EXPECT_NO_FATAL_FAILURE(DPCTLQueue_Delete(Q1));
214225
EXPECT_NO_FATAL_FAILURE(DPCTLQueue_Delete(Q2));
215226
EXPECT_NO_FATAL_FAILURE(DPCTLDevice_Delete(DRef));
227+
EXPECT_NO_FATAL_FAILURE(DPCTLDeviceSelector_Delete(DSRef));
216228
}
217229

218230
TEST(TestDPCTLSyclQueueInterface, CheckIsInOrder_Invalid)
@@ -250,14 +262,14 @@ TEST_P(TestDPCTLQueueMemberFunctions, CheckGetContext)
250262
{
251263
auto Ctx = DPCTLQueue_GetContext(QRef);
252264
ASSERT_TRUE(Ctx != nullptr);
253-
DPCTLContext_Delete(Ctx);
265+
EXPECT_NO_FATAL_FAILURE(DPCTLContext_Delete(Ctx));
254266
}
255267

256268
TEST_P(TestDPCTLQueueMemberFunctions, CheckGetDevice)
257269
{
258270
auto D = DPCTLQueue_GetDevice(QRef);
259271
ASSERT_TRUE(D != nullptr);
260-
DPCTLDevice_Delete(D);
272+
EXPECT_NO_FATAL_FAILURE(DPCTLDevice_Delete(D));
261273
}
262274

263275
INSTANTIATE_TEST_SUITE_P(DPCTLQueueMemberFuncTests,

dpctl-capi/tests/test_sycl_queue_submit.cpp

Lines changed: 24 additions & 33 deletions
Original file line numberDiff line numberDiff line change
@@ -66,69 +66,60 @@ struct TestQueueSubmit : public ::testing::Test
6666

6767
TEST_F(TestQueueSubmit, CheckSubmitRange_saxpy)
6868
{
69-
auto DRef = DPCTLDevice_Create();
70-
if (!DRef) {
71-
GTEST_SKIP_("Skipping: No OpenCL GPU device.\n");
72-
}
69+
DPCTLSyclDeviceSelectorRef DSRef = nullptr;
70+
DPCTLSyclDeviceRef DRef = nullptr;
71+
72+
EXPECT_NO_FATAL_FAILURE(DSRef = DPCTLDefaultSelector_Create());
73+
EXPECT_NO_FATAL_FAILURE(DRef = DPCTLDevice_CreateFromSelector(DSRef));
74+
DPCTLDeviceMgr_PrintDeviceInfo(DRef);
75+
ASSERT_TRUE(DRef);
7376
auto QRef =
7477
DPCTLQueue_CreateForDevice(DRef, nullptr, DPCTL_DEFAULT_PROPERTY);
78+
ASSERT_TRUE(QRef);
7579
auto CRef = DPCTLQueue_GetContext(QRef);
80+
ASSERT_TRUE(CRef);
7681
auto PRef = DPCTLProgram_CreateFromSpirv(CRef, spirvBuffer.data(),
7782
spirvFileSize, nullptr);
7883
ASSERT_TRUE(PRef != nullptr);
79-
ASSERT_TRUE(DPCTLProgram_HasKernel(PRef, "init_arr"));
8084
ASSERT_TRUE(DPCTLProgram_HasKernel(PRef, "axpy"));
81-
82-
auto InitKernel = DPCTLProgram_GetKernel(PRef, "init_arr");
8385
auto AxpyKernel = DPCTLProgram_GetKernel(PRef, "axpy");
8486

8587
// Create the input args
86-
auto a = DPCTLmalloc_shared(SIZE, QRef);
88+
auto a = DPCTLmalloc_shared(SIZE * sizeof(float), QRef);
8789
ASSERT_TRUE(a != nullptr);
88-
auto b = DPCTLmalloc_shared(SIZE, QRef);
90+
auto b = DPCTLmalloc_shared(SIZE * sizeof(float), QRef);
8991
ASSERT_TRUE(b != nullptr);
90-
auto c = DPCTLmalloc_shared(SIZE, QRef);
92+
auto c = DPCTLmalloc_shared(SIZE * sizeof(float), QRef);
9193
ASSERT_TRUE(c != nullptr);
9294

95+
auto a_ptr = reinterpret_cast<float *>(unwrap(a));
96+
auto b_ptr = reinterpret_cast<float *>(unwrap(b));
9397
// Initialize a,b
94-
DPCTLKernelArgType argTypes[] = {DPCTL_VOID_PTR};
95-
size_t Range[] = {SIZE};
96-
void *arg1[1] = {unwrap(a)};
97-
void *arg2[1] = {unwrap(b)};
98-
99-
auto E1 = DPCTLQueue_SubmitRange(InitKernel, QRef, arg1, argTypes, 1, Range,
100-
1, nullptr, 0);
101-
auto E2 = DPCTLQueue_SubmitRange(InitKernel, QRef, arg2, argTypes, 1, Range,
102-
1, nullptr, 0);
103-
ASSERT_TRUE(E1 != nullptr);
104-
ASSERT_TRUE(E2 != nullptr);
105-
106-
DPCTLQueue_Wait(QRef);
98+
for (auto i = 0ul; i < SIZE; ++i) {
99+
a_ptr[i] = i + 1.0;
100+
b_ptr[i] = i + 2.0;
101+
}
107102

108103
// Create kernel args for axpy
109104
float d = 10.0;
105+
size_t Range[] = {SIZE};
110106
void *args2[4] = {unwrap(a), unwrap(b), unwrap(c), (void *)&d};
111107
DPCTLKernelArgType addKernelArgTypes[] = {DPCTL_VOID_PTR, DPCTL_VOID_PTR,
112108
DPCTL_VOID_PTR, DPCTL_FLOAT};
113-
auto E4 = DPCTLQueue_SubmitRange(AxpyKernel, QRef, args2, addKernelArgTypes,
114-
4, Range, 1, nullptr, 0);
115-
ASSERT_TRUE(E4 != nullptr);
109+
auto ERef = DPCTLQueue_SubmitRange(
110+
AxpyKernel, QRef, args2, addKernelArgTypes, 4, Range, 1, nullptr, 0);
111+
ASSERT_TRUE(ERef != nullptr);
116112
DPCTLQueue_Wait(QRef);
117113

118114
// clean ups
119-
DPCTLEvent_Delete(E1);
120-
DPCTLEvent_Delete(E2);
121-
DPCTLEvent_Delete(E4);
122-
115+
DPCTLEvent_Delete(ERef);
123116
DPCTLKernel_Delete(AxpyKernel);
124-
DPCTLKernel_Delete(InitKernel);
125-
126117
DPCTLfree_with_queue((DPCTLSyclUSMRef)a, QRef);
127118
DPCTLfree_with_queue((DPCTLSyclUSMRef)b, QRef);
128119
DPCTLfree_with_queue((DPCTLSyclUSMRef)c, QRef);
129-
130120
DPCTLQueue_Delete(QRef);
131121
DPCTLContext_Delete(CRef);
132122
DPCTLProgram_Delete(PRef);
133123
DPCTLDevice_Delete(DRef);
124+
DPCTLDeviceSelector_Delete(DSRef);
134125
}

0 commit comments

Comments
 (0)