Skip to content

Commit 7384e43

Browse files
[SYCL] Fix unittest crashes after PR #6128 (#6206)
We need to destroy resources when the Ctx object is destructed. Otherwise the destruction of internal RT objects would be delayed until global context destruction that happens *after* ~PiMock.
1 parent dfb37a8 commit 7384e43

File tree

7 files changed

+25
-38
lines changed

7 files changed

+25
-38
lines changed

sycl/unittests/SYCL2020/KernelBundle.cpp

Lines changed: 2 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -104,10 +104,8 @@ TEST(KernelBundle, GetKernelBundleFromKernel) {
104104
setupDefaultMockAPIs(Mock);
105105

106106
const sycl::device Dev = Plt.get_devices()[0];
107-
108-
sycl::queue Queue{Dev};
109-
110-
const sycl::context Ctx = Queue.get_context();
107+
sycl::context Ctx{Dev};
108+
sycl::queue Queue{Ctx, Dev};
111109

112110
sycl::kernel_bundle<sycl::bundle_state::executable> KernelBundle =
113111
sycl::get_kernel_bundle<sycl::bundle_state::executable>(Ctx, {Dev});

sycl/unittests/SYCL2020/KernelID.cpp

Lines changed: 6 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -157,10 +157,8 @@ TEST(KernelID, FreeKernelIDEqualsKernelBundleId) {
157157
setupDefaultMockAPIs(Mock);
158158

159159
const sycl::device Dev = Plt.get_devices()[0];
160-
161-
sycl::queue Queue{Dev};
162-
163-
const sycl::context Ctx = Queue.get_context();
160+
sycl::context Ctx{Dev};
161+
sycl::queue Queue{Ctx, Dev};
164162

165163
sycl::kernel_bundle<sycl::bundle_state::executable> KernelBundle =
166164
sycl::get_kernel_bundle<sycl::bundle_state::executable>(Ctx, {Dev});
@@ -200,10 +198,8 @@ TEST(KernelID, KernelBundleKernelIDsIntersectAll) {
200198
setupDefaultMockAPIs(Mock);
201199

202200
const sycl::device Dev = Plt.get_devices()[0];
203-
204-
sycl::queue Queue{Dev};
205-
206-
const sycl::context Ctx = Queue.get_context();
201+
sycl::context Ctx{Dev};
202+
sycl::queue Queue{Ctx, Dev};
207203

208204
sycl::kernel_bundle<sycl::bundle_state::executable> KernelBundle =
209205
sycl::get_kernel_bundle<sycl::bundle_state::executable>(Ctx, {Dev});
@@ -239,10 +235,8 @@ TEST(KernelID, KernelIDHasKernel) {
239235
setupDefaultMockAPIs(Mock);
240236

241237
const sycl::device Dev = Plt.get_devices()[0];
242-
243-
sycl::queue Queue{Dev};
244-
245-
const sycl::context Ctx = Queue.get_context();
238+
sycl::context Ctx{Dev};
239+
sycl::queue Queue{Ctx, Dev};
246240

247241
sycl::kernel_bundle<sycl::bundle_state::executable> KernelBundle =
248242
sycl::get_kernel_bundle<sycl::bundle_state::executable>(Ctx, {Dev});

sycl/unittests/SYCL2020/SpecializationConstant.cpp

Lines changed: 6 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -191,10 +191,8 @@ TEST(SpecializationConstant, SetSpecConstAfterUseKernelBundle) {
191191
setupDefaultMockAPIs(Mock);
192192

193193
const sycl::device Dev = Plt.get_devices()[0];
194-
195-
sycl::queue Queue{Dev};
196-
197-
const sycl::context Ctx = Queue.get_context();
194+
sycl::context Ctx{Dev};
195+
sycl::queue Queue{Ctx, Dev};
198196

199197
sycl::kernel_bundle KernelBundle =
200198
sycl::get_kernel_bundle<sycl::bundle_state::executable>(Ctx, {Dev});
@@ -252,8 +250,8 @@ TEST(SpecializationConstant, GetSpecConstAfterUseKernelBundle) {
252250
setupDefaultMockAPIs(Mock);
253251

254252
const sycl::device Dev = Plt.get_devices()[0];
255-
sycl::queue Queue{Dev};
256-
const sycl::context Ctx = Queue.get_context();
253+
sycl::context Ctx{Dev};
254+
sycl::queue Queue{Ctx, Dev};
257255

258256
sycl::kernel_bundle KernelBundle =
259257
sycl::get_kernel_bundle<sycl::bundle_state::executable>(Ctx, {Dev});
@@ -312,8 +310,8 @@ TEST(SpecializationConstant, UseKernelBundleAfterSetSpecConst) {
312310
setupDefaultMockAPIs(Mock);
313311

314312
const sycl::device Dev = Plt.get_devices()[0];
315-
sycl::queue Queue{Dev};
316-
const sycl::context Ctx = Queue.get_context();
313+
sycl::context Ctx{Dev};
314+
sycl::queue Queue{Ctx, Dev};
317315

318316
sycl::kernel_bundle KernelBundle =
319317
sycl::get_kernel_bundle<sycl::bundle_state::executable>(Ctx, {Dev});

sycl/unittests/assert/assert.cpp

Lines changed: 2 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -623,9 +623,8 @@ TEST(Assert, TestInteropKernelFromProgramNegative) {
623623
sycl::unittest::PiMock Mock{Plt};
624624

625625
const sycl::device Dev = Plt.get_devices()[0];
626-
sycl::queue Queue{Dev};
627-
628-
const sycl::context Ctx = Queue.get_context();
626+
sycl::context Ctx{Dev};
627+
sycl::queue Queue{Ctx, Dev};
629628

630629
setupMockForInterop(Mock, Ctx, Dev);
631630

sycl/unittests/program_manager/BuildLog.cpp

Lines changed: 4 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -99,10 +99,9 @@ TEST(BuildLog, OutputNothingOnLevel1) {
9999
setupCommonTestAPIs(Mock);
100100

101101
const sycl::device Dev = Plt.get_devices()[0];
102+
sycl::context Ctx{Dev};
103+
sycl::queue Queue{Ctx, Dev};
102104

103-
sycl::queue Queue{Dev};
104-
105-
sycl::context Ctx = Queue.get_context();
106105
auto ContextImpl = getSyclObjImpl(Ctx);
107106
// Make sure no kernels are cached
108107
ContextImpl->getKernelProgramCache().reset();
@@ -133,10 +132,9 @@ TEST(BuildLog, OutputLogOnLevel2) {
133132
setupCommonTestAPIs(Mock);
134133

135134
const sycl::device Dev = Plt.get_devices()[0];
135+
sycl::context Ctx{Dev};
136+
sycl::queue Queue{Ctx, Dev};
136137

137-
sycl::queue Queue{Dev};
138-
139-
const sycl::context Ctx = Queue.get_context();
140138
auto ContextImpl = getSyclObjImpl(Ctx);
141139
// Make sure no kernels are cached
142140
ContextImpl->getKernelProgramCache().reset();

sycl/unittests/program_manager/passing_link_and_compile_options.cpp

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -267,12 +267,12 @@ TEST(Link_Compile_Options, check_sycl_build) {
267267
expected_link_options);
268268
static sycl::unittest::PiImageArray<1> DevImageArray{&DevImage};
269269
auto KernelID = sycl::get_kernel_id<EAMTestKernel1>();
270-
sycl::queue Queue{Dev};
271-
const sycl::context Ctx = Queue.get_context();
270+
sycl::context Ctx{Dev};
271+
sycl::queue Queue{Ctx, Dev};
272272
sycl::kernel_bundle KernelBundle =
273273
sycl::get_kernel_bundle<sycl::bundle_state::input>(Ctx, {Dev},
274274
{KernelID});
275275
sycl::build(KernelBundle);
276276
EXPECT_EQ(expected_compile_options + " " + expected_link_options,
277277
current_build_opts);
278-
}
278+
}

sycl/unittests/stream/stream.cpp

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -53,8 +53,8 @@ TEST(Stream, TestStreamConstructorExceptionNoAllocation) {
5353
redefinedMemBufferCreate);
5454

5555
const sycl::device Dev = Plt.get_devices()[0];
56-
sycl::queue Queue{Dev};
57-
const sycl::context Ctx = Queue.get_context();
56+
sycl::context Ctx{Dev};
57+
sycl::queue Queue{Ctx, Dev};
5858

5959
sycl::kernel_bundle KernelBundle =
6060
sycl::get_kernel_bundle<sycl::bundle_state::input>(Ctx, {Dev});

0 commit comments

Comments
 (0)