Skip to content

Commit d579573

Browse files
authored
Merge pull request #1271 from omarahmed1111/fix-memory-leak-in-CTS-tests
Fix memory leak in UR CTS tests
2 parents 2352ec4 + 29df10d commit d579573

26 files changed

+56
-2
lines changed

source/adapters/opencl/context.cpp

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -134,9 +134,13 @@ UR_APIEXPORT ur_result_t UR_APICALL urContextGetNativeHandle(
134134

135135
UR_APIEXPORT ur_result_t UR_APICALL urContextCreateWithNativeHandle(
136136
ur_native_handle_t hNativeContext, uint32_t, const ur_device_handle_t *,
137-
const ur_context_native_properties_t *, ur_context_handle_t *phContext) {
137+
const ur_context_native_properties_t *pProperties,
138+
ur_context_handle_t *phContext) {
138139

139140
*phContext = reinterpret_cast<ur_context_handle_t>(hNativeContext);
141+
if (!pProperties || !pProperties->isNativeHandleOwned) {
142+
return urContextRetain(*phContext);
143+
}
140144
return UR_RESULT_SUCCESS;
141145
}
142146

source/adapters/opencl/sampler.cpp

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -197,8 +197,12 @@ UR_APIEXPORT ur_result_t UR_APICALL urSamplerGetNativeHandle(
197197

198198
UR_APIEXPORT ur_result_t UR_APICALL urSamplerCreateWithNativeHandle(
199199
ur_native_handle_t hNativeSampler, ur_context_handle_t,
200-
const ur_sampler_native_properties_t *, ur_sampler_handle_t *phSampler) {
200+
const ur_sampler_native_properties_t *pProperties,
201+
ur_sampler_handle_t *phSampler) {
201202
*phSampler = reinterpret_cast<ur_sampler_handle_t>(
202203
cl_adapter::cast<cl_sampler>(hNativeSampler));
204+
if (!pProperties || !pProperties->isNativeHandleOwned) {
205+
return urSamplerRetain(*phSampler);
206+
}
203207
return UR_RESULT_SUCCESS;
204208
}

test/conformance/context/urContextCreateWithNativeHandle.cpp

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -27,4 +27,6 @@ TEST_P(urContextCreateWithNativeHandleTest, Success) {
2727
uint32_t n_devices = 0;
2828
ASSERT_SUCCESS(urContextGetInfo(ctx, UR_CONTEXT_INFO_NUM_DEVICES,
2929
sizeof(uint32_t), &n_devices, nullptr));
30+
31+
ASSERT_SUCCESS(urContextRelease(ctx));
3032
}

test/conformance/enqueue/urEnqueueEventsWait.cpp

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -84,4 +84,6 @@ TEST_P(urEnqueueEventsWaitTest, InvalidNullPtrEventWaitList) {
8484
ur_event_handle_t inv_evt = nullptr;
8585
ASSERT_EQ_RESULT(urEnqueueEventsWait(queue1, 1, &inv_evt, nullptr),
8686
UR_RESULT_ERROR_INVALID_EVENT_WAIT_LIST);
87+
88+
ASSERT_SUCCESS(urEventRelease(validEvent));
8789
}

test/conformance/enqueue/urEnqueueEventsWaitWithBarrier.cpp

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -94,4 +94,6 @@ TEST_P(urEnqueueEventsWaitWithBarrierTest, InvalidNullPtrEventWaitList) {
9494
ASSERT_EQ_RESULT(
9595
urEnqueueEventsWaitWithBarrier(queue1, 1, &inv_evt, nullptr),
9696
UR_RESULT_ERROR_INVALID_EVENT_WAIT_LIST);
97+
98+
ASSERT_SUCCESS(urEventRelease(validEvent));
9799
}

test/conformance/enqueue/urEnqueueKernelLaunch.cpp

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -62,6 +62,7 @@ TEST_P(urEnqueueKernelLaunchTest, InvalidNullPtrEventWaitList) {
6262
&global_offset, &global_size,
6363
nullptr, 1, &inv_evt, nullptr),
6464
UR_RESULT_ERROR_INVALID_EVENT_WAIT_LIST);
65+
ASSERT_SUCCESS(urEventRelease(validEvent));
6566
}
6667

6768
TEST_P(urEnqueueKernelLaunchTest, InvalidWorkDimension) {

test/conformance/enqueue/urEnqueueMemBufferCopy.cpp

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -79,6 +79,8 @@ TEST_P(urEnqueueMemBufferCopyTest, InvalidNullPtrEventWaitList) {
7979
ASSERT_EQ_RESULT(urEnqueueMemBufferCopy(queue, src_buffer, dst_buffer, 0, 0,
8080
size, 1, &inv_evt, nullptr),
8181
UR_RESULT_ERROR_INVALID_EVENT_WAIT_LIST);
82+
83+
ASSERT_SUCCESS(urEventRelease(validEvent));
8284
}
8385

8486
TEST_P(urEnqueueMemBufferCopyTest, InvalidSize) {

test/conformance/enqueue/urEnqueueMemBufferCopyRect.cpp

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -226,6 +226,8 @@ TEST_P(urEnqueueMemBufferCopyRectTest, InvalidNullPtrEventWaitList) {
226226
src_region, size, size, size,
227227
size, 1, &inv_evt, nullptr),
228228
UR_RESULT_ERROR_INVALID_EVENT_WAIT_LIST);
229+
230+
ASSERT_SUCCESS(urEventRelease(validEvent));
229231
}
230232

231233
using urEnqueueMemBufferCopyRectMultiDeviceTest =

test/conformance/enqueue/urEnqueueMemBufferFill.cpp

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -189,6 +189,7 @@ TEST_P(urEnqueueMemBufferFillNegativeTest, InvalidNullPtrEventWaitList) {
189189
sizeof(uint32_t), 0, size, 1,
190190
&inv_evt, nullptr),
191191
UR_RESULT_ERROR_INVALID_EVENT_WAIT_LIST);
192+
192193
ASSERT_SUCCESS(urEventRelease(validEvent));
193194
}
194195

test/conformance/enqueue/urEnqueueMemBufferMap.cpp

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -244,6 +244,8 @@ TEST_P(urEnqueueMemBufferMapTest, InvalidNullPtrEventWaitList) {
244244
UR_MAP_FLAG_READ | UR_MAP_FLAG_WRITE,
245245
0, size, 1, &inv_evt, nullptr, &map),
246246
UR_RESULT_ERROR_INVALID_EVENT_WAIT_LIST);
247+
248+
ASSERT_SUCCESS(urEventRelease(validEvent));
247249
}
248250

249251
TEST_P(urEnqueueMemBufferMapTest, InvalidSize) {

0 commit comments

Comments
 (0)