Skip to content

Commit 808ce95

Browse files
Fix a memory leak for rocJpegNegativeTests (#177)
[ROCm/rocjpeg commit: 6fc7c63]
1 parent ee70ec5 commit 808ce95

File tree

1 file changed

+20
-0
lines changed

1 file changed

+20
-0
lines changed

projects/rocjpeg/test/rocjpeg_negative_api_tests/rocjpeg_api_negative_tests.cpp

Lines changed: 20 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -226,6 +226,11 @@ int RocJpegApiNegativeTests::TestInvalidCreate() {
226226
std::cerr << "Expected ROCJPEG_STATUS_EXECUTION_FAILED but got " << rocJpegGetErrorName(rocjpeg_status) << std::endl;
227227
return EXIT_FAILURE;
228228
}
229+
rocjpeg_status = rocJpegDestroy(rocjpeg_handle_);
230+
if (rocjpeg_status != ROCJPEG_STATUS_SUCCESS) {
231+
std::cerr << "Expected ROCJPEG_STATUS_SUCCESS but got " << rocJpegGetErrorName(rocjpeg_status) << std::endl;
232+
return EXIT_FAILURE;
233+
}
229234

230235
// Scenario 3: Pass valid pointer for handle but invalid device_id
231236
device_id = 255; // Invalid device ID
@@ -234,6 +239,11 @@ int RocJpegApiNegativeTests::TestInvalidCreate() {
234239
std::cerr << "Expected ROCJPEG_STATUS_INVALID_PARAMETER but got " << rocJpegGetErrorName(rocjpeg_status) << std::endl;
235240
return EXIT_FAILURE;
236241
}
242+
rocjpeg_status = rocJpegDestroy(rocjpeg_handle_);
243+
if (rocjpeg_status != ROCJPEG_STATUS_SUCCESS) {
244+
std::cerr << "Expected ROCJPEG_STATUS_SUCCESS but got " << rocJpegGetErrorName(rocjpeg_status) << std::endl;
245+
return EXIT_FAILURE;
246+
}
237247

238248
// Scenario 4: Pass valid pointer for handle but unsupported backend
239249
device_id = 0;
@@ -242,6 +252,11 @@ int RocJpegApiNegativeTests::TestInvalidCreate() {
242252
std::cerr << "Expected ROCJPEG_STATUS_NOT_IMPLEMENTED but got " << rocJpegGetErrorName(rocjpeg_status) << std::endl;
243253
return EXIT_FAILURE;
244254
}
255+
rocjpeg_status = rocJpegDestroy(rocjpeg_handle_);
256+
if (rocjpeg_status != ROCJPEG_STATUS_SUCCESS) {
257+
std::cerr << "Expected ROCJPEG_STATUS_SUCCESS but got " << rocJpegGetErrorName(rocjpeg_status) << std::endl;
258+
return EXIT_FAILURE;
259+
}
245260

246261
// Scenario 5: Use an unsupported backend
247262
RocJpegBackend backend = static_cast<RocJpegBackend>(-1);
@@ -250,6 +265,11 @@ int RocJpegApiNegativeTests::TestInvalidCreate() {
250265
std::cerr << "Expected ROCJPEG_STATUS_INVALID_PARAMETER but got " << rocJpegGetErrorName(rocjpeg_status) << std::endl;
251266
return EXIT_FAILURE;
252267
}
268+
rocjpeg_status = rocJpegDestroy(rocjpeg_handle_);
269+
if (rocjpeg_status != ROCJPEG_STATUS_SUCCESS) {
270+
std::cerr << "Expected ROCJPEG_STATUS_SUCCESS but got " << rocJpegGetErrorName(rocjpeg_status) << std::endl;
271+
return EXIT_FAILURE;
272+
}
253273

254274
// Create a valid rocJPEG handle - This step ensures a valid rocjpeg_handle_ is available for subsequent negative testing of other rocJPEG APIs.
255275
rocjpeg_status = rocJpegCreate(ROCJPEG_BACKEND_HARDWARE, device_id, &rocjpeg_handle_);

0 commit comments

Comments
 (0)