From b90e4cd211aee8a748ef004b5835c0198f19a41c Mon Sep 17 00:00:00 2001
From: Mathieu Faverge <mathieu.faverge@inria.fr>
Date: Wed, 29 Mar 2023 21:02:59 +0200
Subject: [PATCH] tetsing/ung{qr,lq}: Fix hres usage and associated memory leak

---
 testing/testing_zunglq.c     | 6 ++++++
 testing/testing_zunglq_hqr.c | 7 +++++++
 testing/testing_zungqr.c     | 6 ++++++
 testing/testing_zungqr_hqr.c | 7 +++++++
 4 files changed, 26 insertions(+)

diff --git a/testing/testing_zunglq.c b/testing/testing_zunglq.c
index 6e2aa96a1..63bc4daee 100644
--- a/testing/testing_zunglq.c
+++ b/testing/testing_zunglq.c
@@ -80,6 +80,12 @@ testing_zunglq_desc( run_arg_list_t *args, int check )
     /* Fills the matrix with random values */
     CHAMELEON_zplrnt_Tile( descA, seedA );
     hres = CHAMELEON_zgelqf_Tile( descA, descT );
+    if ( hres != CHAMELEON_SUCCESS ) {
+        CHAMELEON_Desc_Flush( descA, test_data.sequence );
+        CHAMELEON_Desc_Flush( descT, test_data.sequence );
+        CHAMELEON_Desc_Flush( descQ, test_data.sequence );
+        return hres;
+    }
 
     /* Calculates the solution */
     testing_start( &test_data );
diff --git a/testing/testing_zunglq_hqr.c b/testing/testing_zunglq_hqr.c
index e55034cd0..63f922a7e 100644
--- a/testing/testing_zunglq_hqr.c
+++ b/testing/testing_zunglq_hqr.c
@@ -87,6 +87,13 @@ testing_zunglq_hqr_desc( run_arg_list_t *args, int check )
     /* Fills the matrix with random values */
     CHAMELEON_zplrnt_Tile( descA, seedA );
     hres = CHAMELEON_zgelqf_param_Tile( &qrtree, descA, descTS, descTT );
+    if ( hres != CHAMELEON_SUCCESS ) {
+        CHAMELEON_Desc_Flush( descA, test_data.sequence );
+        CHAMELEON_Desc_Flush( descTS, test_data.sequence );
+        CHAMELEON_Desc_Flush( descTT, test_data.sequence );
+        CHAMELEON_Desc_Flush( descQ, test_data.sequence );
+        return hres;
+    }
 
     /* Calculates the solution */
     testing_start( &test_data );
diff --git a/testing/testing_zungqr.c b/testing/testing_zungqr.c
index fae6002db..1a719e929 100644
--- a/testing/testing_zungqr.c
+++ b/testing/testing_zungqr.c
@@ -80,6 +80,12 @@ testing_zungqr_desc( run_arg_list_t *args, int check )
     /* Fills the matrix with random values */
     CHAMELEON_zplrnt_Tile( descA, seedA );
     hres = CHAMELEON_zgeqrf_Tile( descA, descT );
+    if ( hres != CHAMELEON_SUCCESS ) {
+        CHAMELEON_Desc_Flush( descA, test_data.sequence );
+        CHAMELEON_Desc_Flush( descT, test_data.sequence );
+        CHAMELEON_Desc_Flush( descQ, test_data.sequence );
+        return hres;
+    }
 
     /* Calculates the solution */
     testing_start( &test_data );
diff --git a/testing/testing_zungqr_hqr.c b/testing/testing_zungqr_hqr.c
index 8935e0f7a..e8f26af05 100644
--- a/testing/testing_zungqr_hqr.c
+++ b/testing/testing_zungqr_hqr.c
@@ -87,6 +87,13 @@ testing_zungqr_hqr_desc( run_arg_list_t *args, int check )
     /* Fills the matrix with random values */
     CHAMELEON_zplrnt_Tile( descA, seedA );
     hres = CHAMELEON_zgeqrf_param_Tile( &qrtree, descA, descTS, descTT );
+    if ( hres != CHAMELEON_SUCCESS ) {
+        CHAMELEON_Desc_Flush( descA, test_data.sequence );
+        CHAMELEON_Desc_Flush( descTS, test_data.sequence );
+        CHAMELEON_Desc_Flush( descTT, test_data.sequence );
+        CHAMELEON_Desc_Flush( descQ, test_data.sequence );
+        return hres;
+    }
 
     /* Calculates the solution */
     testing_start( &test_data );
-- 
GitLab