From 8aa15654f8ae257b36de001065f023f9c2346b09 Mon Sep 17 00:00:00 2001
From: Mathieu Faverge <mathieu.faverge@inria.fr>
Date: Wed, 31 Aug 2022 19:20:54 +0200
Subject: [PATCH] Fix coverity issue on risky function by factorizing it to a
 single place

---
 testing/testing_zcesca.c       |  4 ++--
 testing/testing_zgeadd.c       |  8 ++++----
 testing/testing_zgelqf.c       |  4 ++--
 testing/testing_zgelqf_hqr.c   |  4 ++--
 testing/testing_zgelqs.c       |  4 ++--
 testing/testing_zgels.c        |  8 ++++----
 testing/testing_zgels_hqr.c    |  8 ++++----
 testing/testing_zgemm.c        | 12 ++++++------
 testing/testing_zgenm2.c       |  4 ++--
 testing/testing_zgepdf_qdwh.c  |  4 ++--
 testing/testing_zgepdf_qr.c    |  2 +-
 testing/testing_zgeqrf.c       |  4 ++--
 testing/testing_zgeqrf_hqr.c   |  4 ++--
 testing/testing_zgeqrs.c       |  4 ++--
 testing/testing_zgesv_nopiv.c  |  8 ++++----
 testing/testing_zgesvd.c       |  4 ++--
 testing/testing_zgetrf_nopiv.c |  4 ++--
 testing/testing_zgetrs_nopiv.c |  8 ++++----
 testing/testing_zgram.c        |  4 ++--
 testing/testing_zhemm.c        | 12 ++++++------
 testing/testing_zher2k.c       | 12 ++++++------
 testing/testing_zherk.c        |  8 ++++----
 testing/testing_zlacpy.c       |  4 ++--
 testing/testing_zlange.c       |  4 ++--
 testing/testing_zlanhe.c       |  4 ++--
 testing/testing_zlansy.c       |  4 ++--
 testing/testing_zlantr.c       |  4 ++--
 testing/testing_zlascal.c      |  4 ++--
 testing/testing_zlauum.c       |  4 ++--
 testing/testing_zplrnk.c       |  8 ++++----
 testing/testing_zpoinv.c       |  4 ++--
 testing/testing_zposv.c        |  8 ++++----
 testing/testing_zpotrf.c       |  4 ++--
 testing/testing_zpotri.c       |  4 ++--
 testing/testing_zpotrs.c       |  8 ++++----
 testing/testing_zsymm.c        | 12 ++++++------
 testing/testing_zsyr2k.c       | 12 ++++++------
 testing/testing_zsyrk.c        |  8 ++++----
 testing/testing_zsysv.c        |  8 ++++----
 testing/testing_zsytrf.c       |  4 ++--
 testing/testing_zsytrs.c       |  8 ++++----
 testing/testing_ztradd.c       |  8 ++++----
 testing/testing_ztrmm.c        |  8 ++++----
 testing/testing_ztrsm.c        |  8 ++++----
 testing/testing_ztrtri.c       |  4 ++--
 testing/testing_zunglq.c       |  4 ++--
 testing/testing_zunglq_hqr.c   |  4 ++--
 testing/testing_zungqr.c       |  4 ++--
 testing/testing_zungqr_hqr.c   |  4 ++--
 testing/testing_zunmlq.c       |  8 ++++----
 testing/testing_zunmlq_hqr.c   |  8 ++++----
 testing/testing_zunmqr.c       |  8 ++++----
 testing/testing_zunmqr_hqr.c   |  8 ++++----
 testing/testings.h             |  1 +
 testing/values.c               |  9 +++++++++
 55 files changed, 173 insertions(+), 163 deletions(-)

diff --git a/testing/testing_zcesca.c b/testing/testing_zcesca.c
index b1ee5813a..4faa15d4c 100644
--- a/testing/testing_zcesca.c
+++ b/testing/testing_zcesca.c
@@ -52,7 +52,7 @@ testing_zcesca_desc( run_arg_list_t *args, int check )
     int      N      = run_arg_get_int( args, "N", 1000 );
     int      M      = run_arg_get_int( args, "M", N );
     int      LDA    = run_arg_get_int( args, "LDA", M );
-    int      seedA  = run_arg_get_int( args, "seedA", random() );
+    int      seedA  = run_arg_get_int( args, "seedA", testing_ialea() );
     int      Q      = parameters_compute_q( P );
 
     /* Descriptors */
@@ -106,7 +106,7 @@ testing_zcesca_std( run_arg_list_t *args, int check )
     int N     = run_arg_get_int( args, "N", 1000 );
     int M     = run_arg_get_int( args, "M", N );
     int LDA   = run_arg_get_int( args, "LDA", M );
-    int seedA = run_arg_get_int( args, "seedA", random() );
+    int seedA = run_arg_get_int( args, "seedA", testing_ialea() );
 
     /* Descriptors */
     CHAMELEON_Complex64_t *A;
diff --git a/testing/testing_zgeadd.c b/testing/testing_zgeadd.c
index 98d475f53..a9586b030 100644
--- a/testing/testing_zgeadd.c
+++ b/testing/testing_zgeadd.c
@@ -55,8 +55,8 @@ testing_zgeadd_desc( run_arg_list_t *args, int check )
     int          M      = run_arg_get_int( args, "M", N );
     int          LDA    = run_arg_get_int( args, "LDA", ( ( trans == ChamNoTrans ) ? M : N ) );
     int          LDB    = run_arg_get_int( args, "LDB", M );
-    int          seedA  = run_arg_get_int( args, "seedA", random() );
-    int          seedB  = run_arg_get_int( args, "seedB", random() );
+    int          seedA  = run_arg_get_int( args, "seedA", testing_ialea() );
+    int          seedB  = run_arg_get_int( args, "seedB", testing_ialea() );
     int          Q      = parameters_compute_q( P );
     CHAMELEON_Complex64_t alpha = testing_zalea();
     CHAMELEON_Complex64_t beta  = testing_zalea();
@@ -132,8 +132,8 @@ testing_zgeadd_std( run_arg_list_t *args, int check )
     int          M      = run_arg_get_int( args, "M", N );
     int          LDA    = run_arg_get_int( args, "LDA", ( ( trans == ChamNoTrans ) ? M : N ) );
     int          LDB    = run_arg_get_int( args, "LDB", M );
-    int          seedA  = run_arg_get_int( args, "seedA", random() );
-    int          seedB  = run_arg_get_int( args, "seedB", random() );
+    int          seedA  = run_arg_get_int( args, "seedA", testing_ialea() );
+    int          seedB  = run_arg_get_int( args, "seedB", testing_ialea() );
     CHAMELEON_Complex64_t alpha = testing_zalea();
     CHAMELEON_Complex64_t beta  = testing_zalea();
 
diff --git a/testing/testing_zgelqf.c b/testing/testing_zgelqf.c
index d9209a3a6..8fb1a40b3 100644
--- a/testing/testing_zgelqf.c
+++ b/testing/testing_zgelqf.c
@@ -38,7 +38,7 @@ testing_zgelqf_desc( run_arg_list_t *args, int check )
     int      M      = run_arg_get_int( args, "M", N );
     int      LDA    = run_arg_get_int( args, "LDA", M );
     int      RH     = run_arg_get_int( args, "qra", 4 );
-    int      seedA  = run_arg_get_int( args, "seedA", random() );
+    int      seedA  = run_arg_get_int( args, "seedA", testing_ialea() );
     int      Q      = parameters_compute_q( P );
 
     /* Descriptors */
@@ -114,7 +114,7 @@ testing_zgelqf_std( run_arg_list_t *args, int check )
     int M     = run_arg_get_int( args, "M", N );
     int LDA   = run_arg_get_int( args, "LDA", M );
     int RH    = run_arg_get_int( args, "qra", 4 );
-    int seedA = run_arg_get_int( args, "seedA", random() );
+    int seedA = run_arg_get_int( args, "seedA", testing_ialea() );
     int Q     = parameters_compute_q( P );
     int K     = chameleon_min( M, N );
 
diff --git a/testing/testing_zgelqf_hqr.c b/testing/testing_zgelqf_hqr.c
index 45cfb63f8..0be27d670 100644
--- a/testing/testing_zgelqf_hqr.c
+++ b/testing/testing_zgelqf_hqr.c
@@ -42,7 +42,7 @@ testing_zgelqf_hqr_desc( run_arg_list_t *args, int check )
     int      llvl   = run_arg_get_int( args, "llvl", -1 );
     int      hlvl   = run_arg_get_int( args, "hlvl", -1 );
     int      domino = run_arg_get_int( args, "domino", -1 );
-    int      seedA  = run_arg_get_int( args, "seedA", random() );
+    int      seedA  = run_arg_get_int( args, "seedA", testing_ialea() );
     int      Q      = parameters_compute_q( P );
 
     /* Descriptors */
@@ -129,7 +129,7 @@ testing_zgelqf_hqr_std( run_arg_list_t *args, int check )
     int llvl   = run_arg_get_int( args, "llvl", -1 );
     int hlvl   = run_arg_get_int( args, "hlvl", -1 );
     int domino = run_arg_get_int( args, "domino", -1 );
-    int seedA  = run_arg_get_int( args, "seedA", random() );
+    int seedA  = run_arg_get_int( args, "seedA", testing_ialea() );
     int Q      = parameters_compute_q( P );
     int K      = chameleon_min( M, N );
 
diff --git a/testing/testing_zgelqs.c b/testing/testing_zgelqs.c
index 1248e1c12..fc7b7cc88 100644
--- a/testing/testing_zgelqs.c
+++ b/testing/testing_zgelqs.c
@@ -48,8 +48,8 @@ testing_zgelqs_desc( run_arg_list_t *args, int check )
     int      LDA    = run_arg_get_int( args, "LDA", M );
     int      LDB    = run_arg_get_int( args, "LDB", M );
     int      RH     = run_arg_get_int( args, "qra", 0 );
-    int      seedA  = run_arg_get_int( args, "seedA", random() );
-    int      seedB  = run_arg_get_int( args, "seedB", random() );
+    int      seedA  = run_arg_get_int( args, "seedA", testing_ialea() );
+    int      seedB  = run_arg_get_int( args, "seedB", testing_ialea() );
     int      Q      = parameters_compute_q( P );
 
     /* Descriptors */
diff --git a/testing/testing_zgels.c b/testing/testing_zgels.c
index 3ae6de342..a4dcacdcd 100644
--- a/testing/testing_zgels.c
+++ b/testing/testing_zgels.c
@@ -55,8 +55,8 @@ testing_zgels_desc( run_arg_list_t *args, int check )
     int          LDA    = run_arg_get_int( args, "LDA", M );
     int          LDB    = run_arg_get_int( args, "LDB", maxMN );
     int          RH     = run_arg_get_int( args, "qra", 4 );
-    int          seedA  = run_arg_get_int( args, "seedA", random() );
-    int          seedB  = run_arg_get_int( args, "seedB", random() );
+    int          seedA  = run_arg_get_int( args, "seedA", testing_ialea() );
+    int          seedB  = run_arg_get_int( args, "seedB", testing_ialea() );
     int          Q      = parameters_compute_q( P );
 
     /* Descriptors */
@@ -158,8 +158,8 @@ testing_zgels_std( run_arg_list_t *args, int check )
     int          LDA   = run_arg_get_int( args, "LDA", M );
     int          LDB   = run_arg_get_int( args, "LDB", maxMN );
     int          RH    = run_arg_get_int( args, "qra", 4 );
-    int          seedA = run_arg_get_int( args, "seedA", random() );
-    int          seedB = run_arg_get_int( args, "seedB", random() );
+    int          seedA = run_arg_get_int( args, "seedA", testing_ialea() );
+    int          seedB = run_arg_get_int( args, "seedB", testing_ialea() );
     int          Q     = parameters_compute_q( P );
 
     /* Descriptors */
diff --git a/testing/testing_zgels_hqr.c b/testing/testing_zgels_hqr.c
index b4ad33d5b..15e84f214 100644
--- a/testing/testing_zgels_hqr.c
+++ b/testing/testing_zgels_hqr.c
@@ -59,8 +59,8 @@ testing_zgels_hqr_desc( run_arg_list_t *args, int check )
     int          llvl   = run_arg_get_int( args, "llvl", -1 );
     int          hlvl   = run_arg_get_int( args, "hlvl", -1 );
     int          domino = run_arg_get_int( args, "domino", -1 );
-    int          seedA  = run_arg_get_int( args, "seedA", random() );
-    int          seedB  = run_arg_get_int( args, "seedB", random() );
+    int          seedA  = run_arg_get_int( args, "seedA", testing_ialea() );
+    int          seedB  = run_arg_get_int( args, "seedB", testing_ialea() );
     int          Q      = parameters_compute_q( P );
 
     /* Descriptors */
@@ -170,8 +170,8 @@ testing_zgels_hqr_std( run_arg_list_t *args, int check )
     int          llvl   = run_arg_get_int( args, "llvl", -1 );
     int          hlvl   = run_arg_get_int( args, "hlvl", -1 );
     int          domino = run_arg_get_int( args, "domino", -1 );
-    int          seedA  = run_arg_get_int( args, "seedA", random() );
-    int          seedB  = run_arg_get_int( args, "seedB", random() );
+    int          seedA  = run_arg_get_int( args, "seedA", testing_ialea() );
+    int          seedB  = run_arg_get_int( args, "seedB", testing_ialea() );
     int          Q      = parameters_compute_q( P );
 
     /* Descriptors */
diff --git a/testing/testing_zgemm.c b/testing/testing_zgemm.c
index 3cc72a49a..242e007cd 100644
--- a/testing/testing_zgemm.c
+++ b/testing/testing_zgemm.c
@@ -49,9 +49,9 @@ testing_zgemm_desc( run_arg_list_t *args, int check )
     int          LDC    = run_arg_get_int( args, "LDC", M );
     CHAMELEON_Complex64_t alpha = testing_zalea();
     CHAMELEON_Complex64_t beta  = testing_zalea();
-    int                   seedA = run_arg_get_int( args, "seedA", random() );
-    int                   seedB = run_arg_get_int( args, "seedB", random() );
-    int                   seedC = run_arg_get_int( args, "seedC", random() );
+    int                   seedA = run_arg_get_int( args, "seedA", testing_ialea() );
+    int                   seedB = run_arg_get_int( args, "seedB", testing_ialea() );
+    int                   seedC = run_arg_get_int( args, "seedC", testing_ialea() );
     int                   Q     = parameters_compute_q( P );
 
     /* Descriptors */
@@ -156,9 +156,9 @@ testing_zgemm_std( run_arg_list_t *args, int check )
     int          LDC    = run_arg_get_int( args, "LDC", M );
     CHAMELEON_Complex64_t alpha = testing_zalea();
     CHAMELEON_Complex64_t beta  = testing_zalea();
-    int                   seedA = run_arg_get_int( args, "seedA", random() );
-    int                   seedB = run_arg_get_int( args, "seedB", random() );
-    int                   seedC = run_arg_get_int( args, "seedC", random() );
+    int                   seedA = run_arg_get_int( args, "seedA", testing_ialea() );
+    int                   seedB = run_arg_get_int( args, "seedB", testing_ialea() );
+    int                   seedC = run_arg_get_int( args, "seedC", testing_ialea() );
 
     /* Descriptors */
     int                    Am, An, Bm, Bn;
diff --git a/testing/testing_zgenm2.c b/testing/testing_zgenm2.c
index d9f17be66..323888476 100644
--- a/testing/testing_zgenm2.c
+++ b/testing/testing_zgenm2.c
@@ -52,7 +52,7 @@ testing_zgenm2_desc( run_arg_list_t *args, int check )
     int      N      = run_arg_get_int( args, "N", 1000 );
     int      M      = run_arg_get_int( args, "M", N );
     int      LDA    = run_arg_get_int( args, "LDA", M );
-    int      seedA  = run_arg_get_int( args, "seedA", random() );
+    int      seedA  = run_arg_get_int( args, "seedA", testing_ialea() );
     int      Q      = parameters_compute_q( P );
     int      minMN  = chameleon_min( M, N );
     double   cond   = run_arg_get_double( args, "cond", 1.e16 );
@@ -136,7 +136,7 @@ testing_zgenm2_std( run_arg_list_t *args, int check )
     int    N     = run_arg_get_int( args, "N", 1000 );
     int    M     = run_arg_get_int( args, "M", N );
     int    LDA   = run_arg_get_int( args, "LDA", M );
-    int    seedA = run_arg_get_int( args, "seedA", random() );
+    int    seedA = run_arg_get_int( args, "seedA", testing_ialea() );
     int    minMN = chameleon_min( M, N );
     double cond  = run_arg_get_double( args, "cond", 1.e16 );
     int    mode  = run_arg_get_int( args, "mode", 4 );
diff --git a/testing/testing_zgepdf_qdwh.c b/testing/testing_zgepdf_qdwh.c
index d573d723e..4040ce1b8 100644
--- a/testing/testing_zgepdf_qdwh.c
+++ b/testing/testing_zgepdf_qdwh.c
@@ -44,7 +44,7 @@ testing_zgepdf_qdwh_desc( run_arg_list_t *args, int check )
     int      M      = run_arg_get_int( args, "M", N );
     int      LDA    = run_arg_get_int( args, "LDA", M );
     int      LDB    = run_arg_get_int( args, "LDB", N );
-    int      seedA  = run_arg_get_int( args, "seedA", random() );
+    int      seedA  = run_arg_get_int( args, "seedA", testing_ialea() );
     int      Q      = parameters_compute_q( P );
     double   cond   = run_arg_get_double( args, "cond", 1.e16 );
     int      mode   = run_arg_get_int( args, "mode", 4 );
@@ -137,7 +137,7 @@ testing_zgepdf_qdwh_std( run_arg_list_t *args, int check )
     int      M      = run_arg_get_int( args, "M", N );
     int      LDA    = run_arg_get_int( args, "LDA", M );
     int      LDB    = run_arg_get_int( args, "LDB", N );
-    int      seedA  = run_arg_get_int( args, "seedA", random() );
+    int      seedA  = run_arg_get_int( args, "seedA", testing_ialea() );
     double   cond   = run_arg_get_double( args, "cond", 1.e16 );
     int      mode   = run_arg_get_int( args, "mode", 4 );
     int      runtime;
diff --git a/testing/testing_zgepdf_qr.c b/testing/testing_zgepdf_qr.c
index 31bde6b50..3fb62637d 100644
--- a/testing/testing_zgepdf_qr.c
+++ b/testing/testing_zgepdf_qr.c
@@ -51,7 +51,7 @@ testing_zgepdf_qr_desc( run_arg_list_t *args, int check )
     int      N      = run_arg_get_int( args, "N", 1000 );
     int      M      = run_arg_get_int( args, "M", N );
     int      LDA    = run_arg_get_int( args, "LDA", M );
-    int      seedA  = run_arg_get_int( args, "seedA", random() );
+    int      seedA  = run_arg_get_int( args, "seedA", testing_ialea() );
     int      Q      = parameters_compute_q( P );
 
     /* Descriptors */
diff --git a/testing/testing_zgeqrf.c b/testing/testing_zgeqrf.c
index 62f491540..50f167f48 100644
--- a/testing/testing_zgeqrf.c
+++ b/testing/testing_zgeqrf.c
@@ -38,7 +38,7 @@ testing_zgeqrf_desc( run_arg_list_t *args, int check )
     int      M      = run_arg_get_int( args, "M", N );
     int      LDA    = run_arg_get_int( args, "LDA", M );
     int      RH     = run_arg_get_int( args, "qra", 4 );
-    int      seedA  = run_arg_get_int( args, "seedA", random() );
+    int      seedA  = run_arg_get_int( args, "seedA", testing_ialea() );
     int      Q      = parameters_compute_q( P );
 
     /* Descriptors */
@@ -114,7 +114,7 @@ testing_zgeqrf_std( run_arg_list_t *args, int check )
     int M     = run_arg_get_int( args, "M", N );
     int LDA   = run_arg_get_int( args, "LDA", M );
     int RH    = run_arg_get_int( args, "qra", 4 );
-    int seedA = run_arg_get_int( args, "seedA", random() );
+    int seedA = run_arg_get_int( args, "seedA", testing_ialea() );
     int Q     = parameters_compute_q( P );
     int K     = chameleon_min( M, N );
 
diff --git a/testing/testing_zgeqrf_hqr.c b/testing/testing_zgeqrf_hqr.c
index 94ed1f2b7..dd6ffef31 100644
--- a/testing/testing_zgeqrf_hqr.c
+++ b/testing/testing_zgeqrf_hqr.c
@@ -42,7 +42,7 @@ testing_zgeqrf_hqr_desc( run_arg_list_t *args, int check )
     int      llvl   = run_arg_get_int( args, "llvl", -1 );
     int      hlvl   = run_arg_get_int( args, "hlvl", -1 );
     int      domino = run_arg_get_int( args, "domino", -1 );
-    int      seedA  = run_arg_get_int( args, "seedA", random() );
+    int      seedA  = run_arg_get_int( args, "seedA", testing_ialea() );
     int      Q      = parameters_compute_q( P );
 
     /* Descriptors */
@@ -129,7 +129,7 @@ testing_zgeqrf_hqr_std( run_arg_list_t *args, int check )
     int llvl   = run_arg_get_int( args, "llvl", -1 );
     int hlvl   = run_arg_get_int( args, "hlvl", -1 );
     int domino = run_arg_get_int( args, "domino", -1 );
-    int seedA  = run_arg_get_int( args, "seedA", random() );
+    int seedA  = run_arg_get_int( args, "seedA", testing_ialea() );
     int Q      = parameters_compute_q( P );
     int K      = chameleon_min( M, N );
 
diff --git a/testing/testing_zgeqrs.c b/testing/testing_zgeqrs.c
index 7242df2e8..0fa94e909 100644
--- a/testing/testing_zgeqrs.c
+++ b/testing/testing_zgeqrs.c
@@ -41,8 +41,8 @@ testing_zgeqrs_desc( run_arg_list_t *args, int check )
     int      LDA    = run_arg_get_int( args, "LDA", M );
     int      LDB    = run_arg_get_int( args, "LDB", M );
     int      RH     = run_arg_get_int( args, "qra", 0 );
-    int      seedA  = run_arg_get_int( args, "seedA", random() );
-    int      seedB  = run_arg_get_int( args, "seedB", random() );
+    int      seedA  = run_arg_get_int( args, "seedA", testing_ialea() );
+    int      seedB  = run_arg_get_int( args, "seedB", testing_ialea() );
     int      Q      = parameters_compute_q( P );
 
     /* Descriptors */
diff --git a/testing/testing_zgesv_nopiv.c b/testing/testing_zgesv_nopiv.c
index fc757b519..2f09e138f 100644
--- a/testing/testing_zgesv_nopiv.c
+++ b/testing/testing_zgesv_nopiv.c
@@ -44,8 +44,8 @@ testing_zgesv_nopiv_desc( run_arg_list_t *args, int check )
     int      NRHS   = run_arg_get_int( args, "NRHS", 1 );
     int      LDA    = run_arg_get_int( args, "LDA", N );
     int      LDB    = run_arg_get_int( args, "LDB", N );
-    int      seedA  = run_arg_get_int( args, "seedA", random() );
-    int      seedB  = run_arg_get_int( args, "seedB", random() );
+    int      seedA  = run_arg_get_int( args, "seedA", testing_ialea() );
+    int      seedB  = run_arg_get_int( args, "seedB", testing_ialea() );
     double   bump   = run_arg_get_double( args, "bump", (double)N );
     int      Q      = parameters_compute_q( P );
 
@@ -118,8 +118,8 @@ testing_zgesv_nopiv_std( run_arg_list_t *args, int check )
     int    NRHS  = run_arg_get_int( args, "NRHS", 1 );
     int    LDA   = run_arg_get_int( args, "LDA", N );
     int    LDB   = run_arg_get_int( args, "LDB", N );
-    int    seedA = run_arg_get_int( args, "seedA", random() );
-    int    seedB = run_arg_get_int( args, "seedB", random() );
+    int    seedA = run_arg_get_int( args, "seedA", testing_ialea() );
+    int    seedB = run_arg_get_int( args, "seedB", testing_ialea() );
     double bump  = run_arg_get_double( args, "bump", (double)N );
 
     /* Descriptors */
diff --git a/testing/testing_zgesvd.c b/testing/testing_zgesvd.c
index 0c83d183c..d7b7e4847 100644
--- a/testing/testing_zgesvd.c
+++ b/testing/testing_zgesvd.c
@@ -71,7 +71,7 @@ testing_zgesvd_desc( run_arg_list_t *args, int check )
     int        M      = run_arg_get_int( args, "M", N );
     int        K      = chameleon_min( M, N );
     int        LDA    = run_arg_get_int( args, "LDA", M );
-    int        seedA  = run_arg_get_int( args, "seedA", random() );
+    int        seedA  = run_arg_get_int( args, "seedA", testing_ialea() );
     double     cond   = run_arg_get_double( args, "cond", 1.e16 );
     int        mode   = run_arg_get_int( args, "mode", 4 );
     int        Q      = parameters_compute_q( P );
@@ -183,7 +183,7 @@ testing_zgesvd_std( run_arg_list_t *args, int check )
     int        M     = run_arg_get_int( args, "M", N );
     int        K     = chameleon_min( M, N );
     int        LDA   = run_arg_get_int( args, "LDA", M );
-    int        seedA = run_arg_get_int( args, "seedA", random() );
+    int        seedA = run_arg_get_int( args, "seedA", testing_ialea() );
     double     cond  = run_arg_get_double( args, "cond", 1.e16 );
     int        mode  = run_arg_get_int( args, "mode", 4 );
     cham_job_t jobu  = run_arg_get_job( args, "jobu", ChamNoVec );
diff --git a/testing/testing_zgetrf_nopiv.c b/testing/testing_zgetrf_nopiv.c
index 6b2cf1a91..140ba5733 100644
--- a/testing/testing_zgetrf_nopiv.c
+++ b/testing/testing_zgetrf_nopiv.c
@@ -36,7 +36,7 @@ testing_zgetrf_nopiv_desc( run_arg_list_t *args, int check )
     int      N      = run_arg_get_int( args, "N", 1000 );
     int      M      = run_arg_get_int( args, "M", N );
     int      LDA    = run_arg_get_int( args, "LDA", M );
-    int      seedA  = run_arg_get_int( args, "seedA", random() );
+    int      seedA  = run_arg_get_int( args, "seedA", testing_ialea() );
     double   bump   = run_arg_get_double( args, "bump", (double)N );
     int      Q      = parameters_compute_q( P );
 
@@ -92,7 +92,7 @@ testing_zgetrf_nopiv_std( run_arg_list_t *args, int check )
     int    N     = run_arg_get_int( args, "N", 1000 );
     int    M     = run_arg_get_int( args, "M", N );
     int    LDA   = run_arg_get_int( args, "LDA", M );
-    int    seedA = run_arg_get_int( args, "seedA", random() );
+    int    seedA = run_arg_get_int( args, "seedA", testing_ialea() );
     double bump  = run_arg_get_double( args, "bump", (double)N );
 
     /* Descriptors */
diff --git a/testing/testing_zgetrs_nopiv.c b/testing/testing_zgetrs_nopiv.c
index 98a56c92e..b61444672 100644
--- a/testing/testing_zgetrs_nopiv.c
+++ b/testing/testing_zgetrs_nopiv.c
@@ -38,8 +38,8 @@ testing_zgetrs_nopiv_desc( run_arg_list_t *args, int check )
     int      NRHS   = run_arg_get_int( args, "NRHS", 1 );
     int      LDA    = run_arg_get_int( args, "LDA", N );
     int      LDB    = run_arg_get_int( args, "LDB", N );
-    int      seedA  = run_arg_get_int( args, "seedA", random() );
-    int      seedB  = run_arg_get_int( args, "seedB", random() );
+    int      seedA  = run_arg_get_int( args, "seedA", testing_ialea() );
+    int      seedB  = run_arg_get_int( args, "seedB", testing_ialea() );
     double   bump   = run_arg_get_double( args, "bump", (double)N );
     int      Q      = parameters_compute_q( P );
 
@@ -110,8 +110,8 @@ testing_zgetrs_nopiv_std( run_arg_list_t *args, int check )
     int      NRHS   = run_arg_get_int( args, "NRHS", 1 );
     int      LDA    = run_arg_get_int( args, "LDA", N );
     int      LDB    = run_arg_get_int( args, "LDB", N );
-    int      seedA  = run_arg_get_int( args, "seedA", random() );
-    int      seedB  = run_arg_get_int( args, "seedB", random() );
+    int      seedA  = run_arg_get_int( args, "seedA", testing_ialea() );
+    int      seedB  = run_arg_get_int( args, "seedB", testing_ialea() );
     double   bump   = run_arg_get_double( args, "bump", (double)N );
 
     /* Descriptors */
diff --git a/testing/testing_zgram.c b/testing/testing_zgram.c
index 673710261..6853e1ce6 100644
--- a/testing/testing_zgram.c
+++ b/testing/testing_zgram.c
@@ -51,7 +51,7 @@ testing_zgram_desc( run_arg_list_t *args, int check )
     int         P      = parameters_getvalue_int( "P" );
     int         N      = run_arg_get_int( args, "N", 1000 );
     int         LDA    = run_arg_get_int( args, "LDA", N );
-    int         seedA  = run_arg_get_int( args, "seedA", random() );
+    int         seedA  = run_arg_get_int( args, "seedA", testing_ialea() );
     int         Q      = parameters_compute_q( P );
 
     /* Descriptors */
@@ -105,7 +105,7 @@ testing_zgram_std( run_arg_list_t *args, int check )
     cham_uplo_t uplo  = run_arg_get_uplo( args, "uplo", ChamUpper );
     int         N     = run_arg_get_int( args, "N", 1000 );
     int         LDA   = run_arg_get_int( args, "LDA", N );
-    int         seedA = run_arg_get_int( args, "seedA", random() );
+    int         seedA = run_arg_get_int( args, "seedA", testing_ialea() );
 
     /* Descriptors */
     CHAMELEON_Complex64_t *A;
diff --git a/testing/testing_zhemm.c b/testing/testing_zhemm.c
index f653fa17a..38d91da96 100644
--- a/testing/testing_zhemm.c
+++ b/testing/testing_zhemm.c
@@ -48,9 +48,9 @@ testing_zhemm_desc( run_arg_list_t *args, int check )
     int                   LDC    = run_arg_get_int( args, "LDC", M );
     CHAMELEON_Complex64_t alpha  = testing_zalea();
     CHAMELEON_Complex64_t beta   = testing_zalea();
-    int                   seedA  = run_arg_get_int( args, "seedA", random() );
-    int                   seedB  = run_arg_get_int( args, "seedB", random() );
-    int                   seedC  = run_arg_get_int( args, "seedC", random() );
+    int                   seedA  = run_arg_get_int( args, "seedA", testing_ialea() );
+    int                   seedB  = run_arg_get_int( args, "seedB", testing_ialea() );
+    int                   seedC  = run_arg_get_int( args, "seedC", testing_ialea() );
     double                bump   = testing_dalea();
     int                   Q      = parameters_compute_q( P );
 
@@ -138,9 +138,9 @@ testing_zhemm_std( run_arg_list_t *args, int check )
     int                   LDC   = run_arg_get_int( args, "LDC", M );
     CHAMELEON_Complex64_t alpha = testing_zalea();
     CHAMELEON_Complex64_t beta  = testing_zalea();
-    int                   seedA = run_arg_get_int( args, "seedA", random() );
-    int                   seedB = run_arg_get_int( args, "seedB", random() );
-    int                   seedC = run_arg_get_int( args, "seedC", random() );
+    int                   seedA = run_arg_get_int( args, "seedA", testing_ialea() );
+    int                   seedB = run_arg_get_int( args, "seedB", testing_ialea() );
+    int                   seedC = run_arg_get_int( args, "seedC", testing_ialea() );
     double                bump  = testing_dalea();
 
     /* Descriptors */
diff --git a/testing/testing_zher2k.c b/testing/testing_zher2k.c
index 877dc5e2a..82d0b65ec 100644
--- a/testing/testing_zher2k.c
+++ b/testing/testing_zher2k.c
@@ -48,9 +48,9 @@ testing_zher2k_desc( run_arg_list_t *args, int check )
     int          LDC    = run_arg_get_int( args, "LDC", N );
     CHAMELEON_Complex64_t alpha = testing_zalea();
     double                beta  = testing_dalea();
-    int                   seedA = run_arg_get_int( args, "seedA", random() );
-    int                   seedB = run_arg_get_int( args, "seedB", random() );
-    int                   seedC = run_arg_get_int( args, "seedC", random() );
+    int                   seedA = run_arg_get_int( args, "seedA", testing_ialea() );
+    int                   seedB = run_arg_get_int( args, "seedB", testing_ialea() );
+    int                   seedC = run_arg_get_int( args, "seedC", testing_ialea() );
     double                bump  = testing_dalea();
     int                   Q     = parameters_compute_q( P );
 
@@ -140,9 +140,9 @@ testing_zher2k_std( run_arg_list_t *args, int check )
     int                   LDC   = run_arg_get_int( args, "LDC", N );
     CHAMELEON_Complex64_t alpha = testing_zalea();
     double                beta  = testing_dalea();
-    int                   seedA = run_arg_get_int( args, "seedA", random() );
-    int                   seedB = run_arg_get_int( args, "seedB", random() );
-    int                   seedC = run_arg_get_int( args, "seedC", random() );
+    int                   seedA = run_arg_get_int( args, "seedA", testing_ialea() );
+    int                   seedB = run_arg_get_int( args, "seedB", testing_ialea() );
+    int                   seedC = run_arg_get_int( args, "seedC", testing_ialea() );
     double                bump  = testing_dalea();
 
     /* Descriptors */
diff --git a/testing/testing_zherk.c b/testing/testing_zherk.c
index 3bc314c96..25185e034 100644
--- a/testing/testing_zherk.c
+++ b/testing/testing_zherk.c
@@ -48,8 +48,8 @@ testing_zherk_desc( run_arg_list_t *args, int check )
     double       alpha  = testing_dalea();
     double       beta   = testing_dalea();
     double       bump   = testing_dalea();
-    int          seedA  = run_arg_get_int( args, "seedA", random() );
-    int          seedC  = run_arg_get_int( args, "seedC", random() );
+    int          seedA  = run_arg_get_int( args, "seedA", testing_ialea() );
+    int          seedC  = run_arg_get_int( args, "seedC", testing_ialea() );
     int          Q      = parameters_compute_q( P );
 
     /* Descriptors */
@@ -133,8 +133,8 @@ testing_zherk_std( run_arg_list_t *args, int check )
     double       alpha = testing_dalea();
     double       beta  = testing_dalea();
     double       bump  = testing_dalea();
-    int          seedA = run_arg_get_int( args, "seedA", random() );
-    int          seedC = run_arg_get_int( args, "seedC", random() );
+    int          seedA = run_arg_get_int( args, "seedA", testing_ialea() );
+    int          seedC = run_arg_get_int( args, "seedC", testing_ialea() );
 
 
     /* Descriptors */
diff --git a/testing/testing_zlacpy.c b/testing/testing_zlacpy.c
index b34136edb..2988e1fe2 100644
--- a/testing/testing_zlacpy.c
+++ b/testing/testing_zlacpy.c
@@ -74,7 +74,7 @@ testing_zlacpy_desc( run_arg_list_t *args, int check )
     int         M      = run_arg_get_int( args, "M", N );
     int         LDA    = run_arg_get_int( args, "LDA", M );
     int         LDB    = run_arg_get_int( args, "LDB", M );
-    int         seedA  = run_arg_get_int( args, "seedA", random() );
+    int         seedA  = run_arg_get_int( args, "seedA", testing_ialea() );
     int         Q      = parameters_compute_q( P );
 
     /* Descriptors */
@@ -132,7 +132,7 @@ testing_zlacpy_std( run_arg_list_t *args, int check )
     int         M     = run_arg_get_int( args, "M", N );
     int         LDA   = run_arg_get_int( args, "LDA", M );
     int         LDB   = run_arg_get_int( args, "LDB", M );
-    int         seedA = run_arg_get_int( args, "seedA", random() );
+    int         seedA = run_arg_get_int( args, "seedA", testing_ialea() );
 
     /* Descriptors */
     CHAMELEON_Complex64_t *A, *B;
diff --git a/testing/testing_zlange.c b/testing/testing_zlange.c
index e9a2e3f70..83e514fd5 100644
--- a/testing/testing_zlange.c
+++ b/testing/testing_zlange.c
@@ -75,7 +75,7 @@ testing_zlange_desc( run_arg_list_t *args, int check )
     int             N         = run_arg_get_int( args, "N", 1000 );
     int             M         = run_arg_get_int( args, "M", N );
     int             LDA       = run_arg_get_int( args, "LDA", M );
-    int             seedA     = run_arg_get_int( args, "seedA", random() );
+    int             seedA     = run_arg_get_int( args, "seedA", testing_ialea() );
     int             Q         = parameters_compute_q( P );
 
     /* Descriptors */
@@ -128,7 +128,7 @@ testing_zlange_std( run_arg_list_t *args, int check )
     int             N         = run_arg_get_int( args, "N", 1000 );
     int             M         = run_arg_get_int( args, "M", N );
     int             LDA       = run_arg_get_int( args, "LDA", M );
-    int             seedA     = run_arg_get_int( args, "seedA", random() );
+    int             seedA     = run_arg_get_int( args, "seedA", testing_ialea() );
 
     /* Descriptors */
     double norm;
diff --git a/testing/testing_zlanhe.c b/testing/testing_zlanhe.c
index 1dbfb3162..7e6729c6c 100644
--- a/testing/testing_zlanhe.c
+++ b/testing/testing_zlanhe.c
@@ -70,7 +70,7 @@ testing_zlanhe_desc( run_arg_list_t *args, int check )
     cham_uplo_t     uplo      = run_arg_get_uplo( args, "uplo", ChamUpper );
     int             N         = run_arg_get_int( args, "N", 1000 );
     int             LDA       = run_arg_get_int( args, "LDA", N );
-    int             seedA     = run_arg_get_int( args, "seedA", random() );
+    int             seedA     = run_arg_get_int( args, "seedA", testing_ialea() );
     double          bump      = testing_dalea();
     int             Q         = parameters_compute_q( P );
 
@@ -125,7 +125,7 @@ testing_zlanhe_std( run_arg_list_t *args, int check )
     cham_uplo_t     uplo      = run_arg_get_uplo( args, "uplo", ChamUpper );
     int             N         = run_arg_get_int( args, "N", 1000 );
     int             LDA       = run_arg_get_int( args, "LDA", N );
-    int             seedA     = run_arg_get_int( args, "seedA", random() );
+    int             seedA     = run_arg_get_int( args, "seedA", testing_ialea() );
     double          bump      = testing_dalea();
 
     /* Descriptors */
diff --git a/testing/testing_zlansy.c b/testing/testing_zlansy.c
index 3cb286689..e715d4f7e 100644
--- a/testing/testing_zlansy.c
+++ b/testing/testing_zlansy.c
@@ -70,7 +70,7 @@ testing_zlansy_desc( run_arg_list_t *args, int check )
     cham_uplo_t           uplo      = run_arg_get_uplo( args, "uplo", ChamUpper );
     int                   N         = run_arg_get_int( args, "N", 1000 );
     int                   LDA       = run_arg_get_int( args, "LDA", N );
-    int                   seedA     = run_arg_get_int( args, "seedA", random() );
+    int                   seedA     = run_arg_get_int( args, "seedA", testing_ialea() );
     CHAMELEON_Complex64_t bump      = testing_zalea();
     int                   Q         = parameters_compute_q( P );
 
@@ -125,7 +125,7 @@ testing_zlansy_std( run_arg_list_t *args, int check )
     cham_uplo_t           uplo      = run_arg_get_uplo( args, "uplo", ChamUpper );
     int                   N         = run_arg_get_int( args, "N", 1000 );
     int                   LDA       = run_arg_get_int( args, "LDA", N );
-    int                   seedA     = run_arg_get_int( args, "seedA", random() );
+    int                   seedA     = run_arg_get_int( args, "seedA", testing_ialea() );
     CHAMELEON_Complex64_t bump      = testing_zalea();
 
     /* Descriptors */
diff --git a/testing/testing_zlantr.c b/testing/testing_zlantr.c
index 59332b2d7..9cbc3b442 100644
--- a/testing/testing_zlantr.c
+++ b/testing/testing_zlantr.c
@@ -97,7 +97,7 @@ testing_zlantr_desc( run_arg_list_t *args, int check )
     int             N         = run_arg_get_int( args, "N", 1000 );
     int             M         = run_arg_get_int( args, "M", N );
     int             LDA       = run_arg_get_int( args, "LDA", M );
-    int             seedA     = run_arg_get_int( args, "seedA", random() );
+    int             seedA     = run_arg_get_int( args, "seedA", testing_ialea() );
     int             Q         = parameters_compute_q( P );
 
     /* Descriptors */
@@ -151,7 +151,7 @@ testing_zlantr_std( run_arg_list_t *args, int check )
     int             N         = run_arg_get_int( args, "N", 1000 );
     int             M         = run_arg_get_int( args, "M", N );
     int             LDA       = run_arg_get_int( args, "LDA", M );
-    int             seedA     = run_arg_get_int( args, "seedA", random() );
+    int             seedA     = run_arg_get_int( args, "seedA", testing_ialea() );
 
     /* Descriptors */
     double norm;
diff --git a/testing/testing_zlascal.c b/testing/testing_zlascal.c
index 63df592df..da821efc3 100644
--- a/testing/testing_zlascal.c
+++ b/testing/testing_zlascal.c
@@ -66,7 +66,7 @@ testing_zlascal_desc( run_arg_list_t *args, int check )
     int                   M      = run_arg_get_int( args, "M", N );
     int                   LDA    = run_arg_get_int( args, "LDA", M );
     CHAMELEON_Complex64_t alpha  = run_arg_get_complex64( args, "alpha", 1. );
-    int                   seedA  = run_arg_get_int( args, "seedA", random() );
+    int                   seedA  = run_arg_get_int( args, "seedA", testing_ialea() );
     int                   Q      = parameters_compute_q( P );
 
     /* Descriptors */
@@ -123,7 +123,7 @@ testing_zlascal_std( run_arg_list_t *args, int check )
     int                   M     = run_arg_get_int( args, "M", N );
     int                   LDA   = run_arg_get_int( args, "LDA", M );
     CHAMELEON_Complex64_t alpha = run_arg_get_complex64( args, "alpha", 1. );
-    int                   seedA = run_arg_get_int( args, "seedA", random() );
+    int                   seedA = run_arg_get_int( args, "seedA", testing_ialea() );
 
     /* Descriptors */
     CHAMELEON_Complex64_t *A;
diff --git a/testing/testing_zlauum.c b/testing/testing_zlauum.c
index 4437b01f4..a66dec720 100644
--- a/testing/testing_zlauum.c
+++ b/testing/testing_zlauum.c
@@ -46,7 +46,7 @@ testing_zlauum_desc( run_arg_list_t *args, int check )
     cham_uplo_t uplo   = run_arg_get_uplo( args, "uplo", ChamUpper );
     int         N      = run_arg_get_int( args, "N", 1000 );
     int         LDA    = run_arg_get_int( args, "LDA", N );
-    int         seedA  = run_arg_get_int( args, "seedA", random() );
+    int         seedA  = run_arg_get_int( args, "seedA", testing_ialea() );
     int         Q      = parameters_compute_q( P );
 
     /* Descriptors */
@@ -99,7 +99,7 @@ testing_zlauum_std( run_arg_list_t *args, int check )
     cham_uplo_t uplo  = run_arg_get_uplo( args, "uplo", ChamUpper );
     int         N     = run_arg_get_int( args, "N", 1000 );
     int         LDA   = run_arg_get_int( args, "LDA", N );
-    int         seedA = run_arg_get_int( args, "seedA", random() );
+    int         seedA = run_arg_get_int( args, "seedA", testing_ialea() );
 
     /* Descriptors */
     CHAMELEON_Complex64_t *A;
diff --git a/testing/testing_zplrnk.c b/testing/testing_zplrnk.c
index 7b0b0ba8e..840f12bc3 100644
--- a/testing/testing_zplrnk.c
+++ b/testing/testing_zplrnk.c
@@ -37,8 +37,8 @@ testing_zplrnk_desc( run_arg_list_t *args, int check )
     int M     = run_arg_get_int( args, "M", N );
     int K     = run_arg_get_int( args, "K", N );
     int LDC   = run_arg_get_int( args, "LDC", M );
-    int seedA = run_arg_get_int( args, "seedA", random() );
-    int seedB = run_arg_get_int( args, "seedB", random() );
+    int seedA = run_arg_get_int( args, "seedA", testing_ialea() );
+    int seedB = run_arg_get_int( args, "seedB", testing_ialea() );
     int Q     = parameters_compute_q( P );
 
     /* Descriptors */
@@ -85,8 +85,8 @@ testing_zplrnk_std( run_arg_list_t *args, int check )
     int M     = run_arg_get_int( args, "M", N );
     int K     = run_arg_get_int( args, "K", N );
     int LDC   = run_arg_get_int( args, "LDC", M );
-    int seedA = run_arg_get_int( args, "seedA", random() );
-    int seedB = run_arg_get_int( args, "seedB", random() );
+    int seedA = run_arg_get_int( args, "seedA", testing_ialea() );
+    int seedB = run_arg_get_int( args, "seedB", testing_ialea() );
 
     /* Descriptors */
     CHAMELEON_Complex64_t *C;
diff --git a/testing/testing_zpoinv.c b/testing/testing_zpoinv.c
index 265b8b649..f7a1a58f5 100644
--- a/testing/testing_zpoinv.c
+++ b/testing/testing_zpoinv.c
@@ -50,7 +50,7 @@ testing_zpoinv_desc( run_arg_list_t *args, int check )
     cham_uplo_t uplo   = run_arg_get_uplo( args, "uplo", ChamUpper );
     int         N      = run_arg_get_int( args, "N", 1000 );
     int         LDA    = run_arg_get_int( args, "LDA", N );
-    int         seedA  = run_arg_get_int( args, "seedA", random() );
+    int         seedA  = run_arg_get_int( args, "seedA", testing_ialea() );
     int         Q      = parameters_compute_q( P );
 
     /* Descriptors */
@@ -104,7 +104,7 @@ testing_zpoinv_std( run_arg_list_t *args, int check )
     cham_uplo_t uplo  = run_arg_get_uplo( args, "uplo", ChamUpper );
     int         N     = run_arg_get_int( args, "N", 1000 );
     int         LDA   = run_arg_get_int( args, "LDA", N );
-    int         seedA = run_arg_get_int( args, "seedA", random() );
+    int         seedA = run_arg_get_int( args, "seedA", testing_ialea() );
 
     /* Descriptors */
     CHAMELEON_Complex64_t *A;
diff --git a/testing/testing_zposv.c b/testing/testing_zposv.c
index eb6b343f9..db7d95f3f 100644
--- a/testing/testing_zposv.c
+++ b/testing/testing_zposv.c
@@ -53,8 +53,8 @@ testing_zposv_desc( run_arg_list_t *args, int check )
     int         NRHS   = run_arg_get_int( args, "NRHS", 1 );
     int         LDA    = run_arg_get_int( args, "LDA", N );
     int         LDB    = run_arg_get_int( args, "LDB", N );
-    int         seedA  = run_arg_get_int( args, "seedA", random() );
-    int         seedB  = run_arg_get_int( args, "seedB", random() );
+    int         seedA  = run_arg_get_int( args, "seedA", testing_ialea() );
+    int         seedB  = run_arg_get_int( args, "seedB", testing_ialea() );
     int         Q      = parameters_compute_q( P );
 
     /* Descriptors */
@@ -128,8 +128,8 @@ testing_zposv_std( run_arg_list_t *args, int check )
     int         NRHS  = run_arg_get_int( args, "NRHS", 1 );
     int         LDA   = run_arg_get_int( args, "LDA", N );
     int         LDB   = run_arg_get_int( args, "LDB", N );
-    int         seedA = run_arg_get_int( args, "seedA", random() );
-    int         seedB = run_arg_get_int( args, "seedB", random() );
+    int         seedA = run_arg_get_int( args, "seedA", testing_ialea() );
+    int         seedB = run_arg_get_int( args, "seedB", testing_ialea() );
 
     /* Descriptors */
     CHAMELEON_Complex64_t *A, *X;
diff --git a/testing/testing_zpotrf.c b/testing/testing_zpotrf.c
index ddffda46e..9e5b6c020 100644
--- a/testing/testing_zpotrf.c
+++ b/testing/testing_zpotrf.c
@@ -43,7 +43,7 @@ testing_zpotrf_desc( run_arg_list_t *args, int check )
     cham_uplo_t uplo   = run_arg_get_uplo( args, "uplo", ChamUpper );
     int         N      = run_arg_get_int( args, "N", 1000 );
     int         LDA    = run_arg_get_int( args, "LDA", N );
-    int         seedA  = run_arg_get_int( args, "seedA", random() );
+    int         seedA  = run_arg_get_int( args, "seedA", testing_ialea() );
     int         Q      = parameters_compute_q( P );
 
     /* Descriptors */
@@ -99,7 +99,7 @@ testing_zpotrf_std( run_arg_list_t *args, int check )
     cham_uplo_t uplo  = run_arg_get_uplo( args, "uplo", ChamUpper );
     int         N     = run_arg_get_int( args, "N", 1000 );
     int         LDA   = run_arg_get_int( args, "LDA", N );
-    int         seedA = run_arg_get_int( args, "seedA", random() );
+    int         seedA = run_arg_get_int( args, "seedA", testing_ialea() );
 
     /* Descriptors */
     CHAMELEON_Complex64_t *A;
diff --git a/testing/testing_zpotri.c b/testing/testing_zpotri.c
index 172e960e0..f86ec30af 100644
--- a/testing/testing_zpotri.c
+++ b/testing/testing_zpotri.c
@@ -45,7 +45,7 @@ testing_zpotri_desc( run_arg_list_t *args, int check )
     cham_uplo_t uplo   = run_arg_get_uplo( args, "uplo", ChamUpper );
     int         N      = run_arg_get_int( args, "N", 1000 );
     int         LDA    = run_arg_get_int( args, "LDA", N );
-    int         seedA  = run_arg_get_int( args, "seedA", random() );
+    int         seedA  = run_arg_get_int( args, "seedA", testing_ialea() );
     int         Q      = parameters_compute_q( P );
 
     /* Descriptors */
@@ -103,7 +103,7 @@ testing_zpotri_std( run_arg_list_t *args, int check )
     cham_uplo_t uplo  = run_arg_get_uplo( args, "uplo", ChamUpper );
     int         N     = run_arg_get_int( args, "N", 1000 );
     int         LDA   = run_arg_get_int( args, "LDA", N );
-    int         seedA = run_arg_get_int( args, "seedA", random() );
+    int         seedA = run_arg_get_int( args, "seedA", testing_ialea() );
 
     /* Descriptors */
     CHAMELEON_Complex64_t *A;
diff --git a/testing/testing_zpotrs.c b/testing/testing_zpotrs.c
index 90126dba9..caa8353cc 100644
--- a/testing/testing_zpotrs.c
+++ b/testing/testing_zpotrs.c
@@ -46,8 +46,8 @@ testing_zpotrs_desc( run_arg_list_t *args, int check )
     int         NRHS   = run_arg_get_int( args, "NRHS", 1 );
     int         LDA    = run_arg_get_int( args, "LDA", N );
     int         LDB    = run_arg_get_int( args, "LDB", N );
-    int         seedA  = run_arg_get_int( args, "seedA", random() );
-    int         seedB  = run_arg_get_int( args, "seedB", random() );
+    int         seedA  = run_arg_get_int( args, "seedA", testing_ialea() );
+    int         seedB  = run_arg_get_int( args, "seedB", testing_ialea() );
     int         Q      = parameters_compute_q( P );
 
     /* Descriptors */
@@ -117,8 +117,8 @@ testing_zpotrs_std( run_arg_list_t *args, int check )
     int         NRHS  = run_arg_get_int( args, "NRHS", 1 );
     int         LDA   = run_arg_get_int( args, "LDA", N );
     int         LDB   = run_arg_get_int( args, "LDB", N );
-    int         seedA = run_arg_get_int( args, "seedA", random() );
-    int         seedB = run_arg_get_int( args, "seedB", random() );
+    int         seedA = run_arg_get_int( args, "seedA", testing_ialea() );
+    int         seedB = run_arg_get_int( args, "seedB", testing_ialea() );
 
     /* Descriptors */
     CHAMELEON_Complex64_t *A, *X;
diff --git a/testing/testing_zsymm.c b/testing/testing_zsymm.c
index 1c1cafe6d..b4edb1e84 100644
--- a/testing/testing_zsymm.c
+++ b/testing/testing_zsymm.c
@@ -48,9 +48,9 @@ testing_zsymm_desc( run_arg_list_t *args, int check )
     int                   LDC    = run_arg_get_int( args, "LDC", M );
     CHAMELEON_Complex64_t alpha  = testing_zalea();
     CHAMELEON_Complex64_t beta   = testing_zalea();
-    int                   seedA  = run_arg_get_int( args, "seedA", random() );
-    int                   seedB  = run_arg_get_int( args, "seedB", random() );
-    int                   seedC  = run_arg_get_int( args, "seedC", random() );
+    int                   seedA  = run_arg_get_int( args, "seedA", testing_ialea() );
+    int                   seedB  = run_arg_get_int( args, "seedB", testing_ialea() );
+    int                   seedC  = run_arg_get_int( args, "seedC", testing_ialea() );
     double                bump   = testing_dalea();
     int                   Q      = parameters_compute_q( P );
 
@@ -138,9 +138,9 @@ testing_zsymm_std( run_arg_list_t *args, int check )
     int                   LDC   = run_arg_get_int( args, "LDC", M );
     CHAMELEON_Complex64_t alpha = testing_zalea();
     CHAMELEON_Complex64_t beta  = testing_zalea();
-    int                   seedA = run_arg_get_int( args, "seedA", random() );
-    int                   seedB = run_arg_get_int( args, "seedB", random() );
-    int                   seedC = run_arg_get_int( args, "seedC", random() );
+    int                   seedA = run_arg_get_int( args, "seedA", testing_ialea() );
+    int                   seedB = run_arg_get_int( args, "seedB", testing_ialea() );
+    int                   seedC = run_arg_get_int( args, "seedC", testing_ialea() );
     double                bump  = testing_dalea();
 
     /* Descriptors */
diff --git a/testing/testing_zsyr2k.c b/testing/testing_zsyr2k.c
index bd9659199..d3357063a 100644
--- a/testing/testing_zsyr2k.c
+++ b/testing/testing_zsyr2k.c
@@ -48,9 +48,9 @@ testing_zsyr2k_desc( run_arg_list_t *args, int check )
     int          LDC    = run_arg_get_int( args, "LDC", N );
     CHAMELEON_Complex64_t alpha = testing_zalea();
     CHAMELEON_Complex64_t beta  = testing_zalea();
-    int                   seedA = run_arg_get_int( args, "seedA", random() );
-    int                   seedB = run_arg_get_int( args, "seedB", random() );
-    int                   seedC = run_arg_get_int( args, "seedC", random() );
+    int                   seedA = run_arg_get_int( args, "seedA", testing_ialea() );
+    int                   seedB = run_arg_get_int( args, "seedB", testing_ialea() );
+    int                   seedC = run_arg_get_int( args, "seedC", testing_ialea() );
     double                bump  = testing_dalea();
     int                   Q     = parameters_compute_q( P );
 
@@ -140,9 +140,9 @@ testing_zsyr2k_std( run_arg_list_t *args, int check )
     int                   LDC   = run_arg_get_int( args, "LDC", N );
     CHAMELEON_Complex64_t alpha = testing_zalea();
     CHAMELEON_Complex64_t beta  = testing_zalea();
-    int                   seedA = run_arg_get_int( args, "seedA", random() );
-    int                   seedB = run_arg_get_int( args, "seedB", random() );
-    int                   seedC = run_arg_get_int( args, "seedC", random() );
+    int                   seedA = run_arg_get_int( args, "seedA", testing_ialea() );
+    int                   seedB = run_arg_get_int( args, "seedB", testing_ialea() );
+    int                   seedC = run_arg_get_int( args, "seedC", testing_ialea() );
     double                bump  = testing_dalea();
 
     /* Descriptors */
diff --git a/testing/testing_zsyrk.c b/testing/testing_zsyrk.c
index 09269ec26..adac06565 100644
--- a/testing/testing_zsyrk.c
+++ b/testing/testing_zsyrk.c
@@ -48,8 +48,8 @@ testing_zsyrk_desc( run_arg_list_t *args, int check )
     CHAMELEON_Complex64_t alpha = testing_zalea();
     CHAMELEON_Complex64_t beta  = testing_zalea();
     CHAMELEON_Complex64_t bump  = testing_zalea();
-    int                   seedA = run_arg_get_int( args, "seedA", random() );
-    int                   seedC = run_arg_get_int( args, "seedC", random() );
+    int                   seedA = run_arg_get_int( args, "seedA", testing_ialea() );
+    int                   seedC = run_arg_get_int( args, "seedC", testing_ialea() );
     int                   Q     = parameters_compute_q( P );
 
     /* Descriptors */
@@ -133,8 +133,8 @@ testing_zsyrk_std( run_arg_list_t *args, int check )
     CHAMELEON_Complex64_t alpha = testing_zalea();
     CHAMELEON_Complex64_t beta  = testing_zalea();
     CHAMELEON_Complex64_t bump  = testing_zalea();
-    int                   seedA = run_arg_get_int( args, "seedA", random() );
-    int                   seedC = run_arg_get_int( args, "seedC", random() );
+    int                   seedA = run_arg_get_int( args, "seedA", testing_ialea() );
+    int                   seedC = run_arg_get_int( args, "seedC", testing_ialea() );
 
     /* Descriptors */
     int                    Am, An;
diff --git a/testing/testing_zsysv.c b/testing/testing_zsysv.c
index e73d555e0..3d5908f42 100644
--- a/testing/testing_zsysv.c
+++ b/testing/testing_zsysv.c
@@ -45,8 +45,8 @@ testing_zsysv_desc( run_arg_list_t *args, int check )
     int         NRHS   = run_arg_get_int( args, "NRHS", 1 );
     int         LDA    = run_arg_get_int( args, "LDA", N );
     int         LDB    = run_arg_get_int( args, "LDB", N );
-    int         seedA  = run_arg_get_int( args, "seedA", random() );
-    int         seedB  = run_arg_get_int( args, "seedB", random() );
+    int         seedA  = run_arg_get_int( args, "seedA", testing_ialea() );
+    int         seedB  = run_arg_get_int( args, "seedB", testing_ialea() );
     int         Q      = parameters_compute_q( P );
 
     /* Descriptors */
@@ -118,8 +118,8 @@ testing_zsysv_std( run_arg_list_t *args, int check )
     int         NRHS  = run_arg_get_int( args, "NRHS", 1 );
     int         LDA   = run_arg_get_int( args, "LDA", N );
     int         LDB   = run_arg_get_int( args, "LDB", N );
-    int         seedA = run_arg_get_int( args, "seedA", random() );
-    int         seedB = run_arg_get_int( args, "seedB", random() );
+    int         seedA = run_arg_get_int( args, "seedA", testing_ialea() );
+    int         seedB = run_arg_get_int( args, "seedB", testing_ialea() );
 
     /* Descriptors */
     CHAMELEON_Complex64_t *A, *X;
diff --git a/testing/testing_zsytrf.c b/testing/testing_zsytrf.c
index a2407f18f..57a89e74c 100644
--- a/testing/testing_zsytrf.c
+++ b/testing/testing_zsytrf.c
@@ -36,7 +36,7 @@ testing_zsytrf_desc( run_arg_list_t *args, int check )
     cham_uplo_t uplo   = run_arg_get_uplo( args, "uplo", ChamUpper );
     int         N      = run_arg_get_int( args, "N", 1000 );
     int         LDA    = run_arg_get_int( args, "LDA", N );
-    int         seedA  = run_arg_get_int( args, "seedA", random() );
+    int         seedA  = run_arg_get_int( args, "seedA", testing_ialea() );
     int         Q      = parameters_compute_q( P );
 
     /* Descriptors */
@@ -89,7 +89,7 @@ testing_zsytrf_std( run_arg_list_t *args, int check )
     cham_uplo_t uplo  = run_arg_get_uplo( args, "uplo", ChamUpper );
     int         N     = run_arg_get_int( args, "N", 1000 );
     int         LDA   = run_arg_get_int( args, "LDA", N );
-    int         seedA = run_arg_get_int( args, "seedA", random() );
+    int         seedA = run_arg_get_int( args, "seedA", testing_ialea() );
 
     /* Descriptors */
     CHAMELEON_Complex64_t *A;
diff --git a/testing/testing_zsytrs.c b/testing/testing_zsytrs.c
index 8750654a0..689339065 100644
--- a/testing/testing_zsytrs.c
+++ b/testing/testing_zsytrs.c
@@ -39,8 +39,8 @@ testing_zsytrs_desc( run_arg_list_t *args, int check )
     int         NRHS   = run_arg_get_int( args, "NRHS", 1 );
     int         LDA    = run_arg_get_int( args, "LDA", N );
     int         LDB    = run_arg_get_int( args, "LDB", N );
-    int         seedA  = run_arg_get_int( args, "seedA", random() );
-    int         seedB  = run_arg_get_int( args, "seedB", random() );
+    int         seedA  = run_arg_get_int( args, "seedA", testing_ialea() );
+    int         seedB  = run_arg_get_int( args, "seedB", testing_ialea() );
     int         Q      = parameters_compute_q( P );
 
     /* Descriptors */
@@ -108,8 +108,8 @@ testing_zsytrs_std( run_arg_list_t *args, int check )
     int         NRHS  = run_arg_get_int( args, "NRHS", 1 );
     int         LDA   = run_arg_get_int( args, "LDA", N );
     int         LDB   = run_arg_get_int( args, "LDB", N );
-    int         seedA = run_arg_get_int( args, "seedA", random() );
-    int         seedB = run_arg_get_int( args, "seedB", random() );
+    int         seedA = run_arg_get_int( args, "seedA", testing_ialea() );
+    int         seedB = run_arg_get_int( args, "seedB", testing_ialea() );
 
     /* Descriptors */
     CHAMELEON_Complex64_t *A, *X;
diff --git a/testing/testing_ztradd.c b/testing/testing_ztradd.c
index 58251a3e6..00f79cd9e 100644
--- a/testing/testing_ztradd.c
+++ b/testing/testing_ztradd.c
@@ -71,8 +71,8 @@ testing_ztradd_desc( run_arg_list_t *args, int check )
     int          LDB    = run_arg_get_int( args, "LDB", M );
     CHAMELEON_Complex64_t alpha = testing_zalea();
     CHAMELEON_Complex64_t beta  = testing_zalea();
-    int                   seedA = run_arg_get_int( args, "seedA", random() );
-    int                   seedB = run_arg_get_int( args, "seedB", random() );
+    int                   seedA = run_arg_get_int( args, "seedA", testing_ialea() );
+    int                   seedB = run_arg_get_int( args, "seedB", testing_ialea() );
     int                   Q     = parameters_compute_q( P );
 
     /* Descriptors */
@@ -169,8 +169,8 @@ testing_ztradd_std( run_arg_list_t *args, int check )
     int          LDB   = run_arg_get_int( args, "LDB", M );
     CHAMELEON_Complex64_t alpha = testing_zalea();
     CHAMELEON_Complex64_t beta  = testing_zalea();
-    int          seedA = run_arg_get_int( args, "seedA", random() );
-    int          seedB = run_arg_get_int( args, "seedB", random() );
+    int          seedA = run_arg_get_int( args, "seedA", testing_ialea() );
+    int          seedB = run_arg_get_int( args, "seedB", testing_ialea() );
 
     /* Descriptors */
     int                    Am, An;
diff --git a/testing/testing_ztrmm.c b/testing/testing_ztrmm.c
index d6d76d79f..bab7d653e 100644
--- a/testing/testing_ztrmm.c
+++ b/testing/testing_ztrmm.c
@@ -48,8 +48,8 @@ testing_ztrmm_desc( run_arg_list_t *args, int check )
     int                   LDA    = run_arg_get_int( args, "LDA", ( side == ChamLeft ) ? M : N );
     int                   LDB    = run_arg_get_int( args, "LDB", M );
     CHAMELEON_Complex64_t alpha  = testing_zalea();
-    int                   seedA  = run_arg_get_int( args, "seedA", random() );
-    int                   seedB  = run_arg_get_int( args, "seedB", random() );
+    int                   seedA  = run_arg_get_int( args, "seedA", testing_ialea() );
+    int                   seedB  = run_arg_get_int( args, "seedB", testing_ialea() );
     int                   Q      = parameters_compute_q( P );
 
     /* Descriptors */
@@ -128,8 +128,8 @@ testing_ztrmm_std( run_arg_list_t *args, int check )
     int                   LDA   = run_arg_get_int( args, "LDA", ( side == ChamLeft ) ? M : N );
     int                   LDB   = run_arg_get_int( args, "LDB", M );
     CHAMELEON_Complex64_t alpha = testing_zalea();
-    int                   seedA = run_arg_get_int( args, "seedA", random() );
-    int                   seedB = run_arg_get_int( args, "seedB", random() );
+    int                   seedA = run_arg_get_int( args, "seedA", testing_ialea() );
+    int                   seedB = run_arg_get_int( args, "seedB", testing_ialea() );
 
     /* Descriptors */
     int                    An;
diff --git a/testing/testing_ztrsm.c b/testing/testing_ztrsm.c
index 868e16401..929f2dec4 100644
--- a/testing/testing_ztrsm.c
+++ b/testing/testing_ztrsm.c
@@ -49,8 +49,8 @@ testing_ztrsm_desc( run_arg_list_t *args, int check )
     int                   LDA    = run_arg_get_int( args, "LDA", An );
     int                   LDB    = run_arg_get_int( args, "LDB", M );
     CHAMELEON_Complex64_t alpha  = testing_zalea();
-    int                   seedA  = run_arg_get_int( args, "seedA", random() );
-    int                   seedB  = run_arg_get_int( args, "seedB", random() );
+    int                   seedA  = run_arg_get_int( args, "seedA", testing_ialea() );
+    int                   seedB  = run_arg_get_int( args, "seedB", testing_ialea() );
     int                   Q      = parameters_compute_q( P );
 
     /* Descriptors */
@@ -123,8 +123,8 @@ testing_ztrsm_std( run_arg_list_t *args, int check )
     int                   LDA   = run_arg_get_int( args, "LDA", An );
     int                   LDB   = run_arg_get_int( args, "LDB", M );
     CHAMELEON_Complex64_t alpha = testing_zalea();
-    int                   seedA = run_arg_get_int( args, "seedA", random() );
-    int                   seedB = run_arg_get_int( args, "seedB", random() );
+    int                   seedA = run_arg_get_int( args, "seedA", testing_ialea() );
+    int                   seedB = run_arg_get_int( args, "seedB", testing_ialea() );
 
     /* Descriptors */
     CHAMELEON_Complex64_t *A, *B;
diff --git a/testing/testing_ztrtri.c b/testing/testing_ztrtri.c
index 490d245c7..367f99d8e 100644
--- a/testing/testing_ztrtri.c
+++ b/testing/testing_ztrtri.c
@@ -40,7 +40,7 @@ testing_ztrtri_desc( run_arg_list_t *args, int check )
     cham_diag_t diag   = run_arg_get_diag( args, "diag", ChamNonUnit );
     int         N      = run_arg_get_int( args, "N", 1000 );
     int         LDA    = run_arg_get_int( args, "LDA", N );
-    int         seedA  = run_arg_get_int( args, "seedA", random() );
+    int         seedA  = run_arg_get_int( args, "seedA", testing_ialea() );
     int         Q      = parameters_compute_q( P );
 
     /* Descriptors */
@@ -96,7 +96,7 @@ testing_ztrtri_std( run_arg_list_t *args, int check )
     cham_diag_t diag  = run_arg_get_diag( args, "diag", ChamNonUnit );
     int         N     = run_arg_get_int( args, "N", 1000 );
     int         LDA   = run_arg_get_int( args, "LDA", N );
-    int         seedA = run_arg_get_int( args, "seedA", random() );
+    int         seedA = run_arg_get_int( args, "seedA", testing_ialea() );
 
     /* Descriptors */
     CHAMELEON_Complex64_t *A;
diff --git a/testing/testing_zunglq.c b/testing/testing_zunglq.c
index a96bc23c4..61ab66fb3 100644
--- a/testing/testing_zunglq.c
+++ b/testing/testing_zunglq.c
@@ -39,7 +39,7 @@ testing_zunglq_desc( run_arg_list_t *args, int check )
     int      K      = run_arg_get_int( args, "K", chameleon_min( M, N ) );
     int      LDA    = run_arg_get_int( args, "LDA", M );
     int      RH     = run_arg_get_int( args, "qra", 0 );
-    int      seedA  = run_arg_get_int( args, "seedA", random() );
+    int      seedA  = run_arg_get_int( args, "seedA", testing_ialea() );
     int      Q      = parameters_compute_q( P );
 
     /* Descriptors */
@@ -129,7 +129,7 @@ testing_zunglq_std( run_arg_list_t *args, int check )
     int K     = run_arg_get_int( args, "K", chameleon_min( M, N ) );
     int LDA   = run_arg_get_int( args, "LDA", M );
     int RH    = run_arg_get_int( args, "qra", 0 );
-    int seedA = run_arg_get_int( args, "seedA", random() );
+    int seedA = run_arg_get_int( args, "seedA", testing_ialea() );
     int Q     = parameters_compute_q( P );
 
     /* Descriptors */
diff --git a/testing/testing_zunglq_hqr.c b/testing/testing_zunglq_hqr.c
index 981cd4d74..cdbf6b31d 100644
--- a/testing/testing_zunglq_hqr.c
+++ b/testing/testing_zunglq_hqr.c
@@ -43,7 +43,7 @@ testing_zunglq_hqr_desc( run_arg_list_t *args, int check )
     int      llvl   = run_arg_get_int( args, "llvl", -1 );
     int      hlvl   = run_arg_get_int( args, "hlvl", -1 );
     int      domino = run_arg_get_int( args, "domino", -1 );
-    int      seedA  = run_arg_get_int( args, "seedA", random() );
+    int      seedA  = run_arg_get_int( args, "seedA", testing_ialea() );
     int      Q      = parameters_compute_q( P );
 
     /* Descriptors */
@@ -143,7 +143,7 @@ testing_zunglq_hqr_std( run_arg_list_t *args, int check )
     int llvl   = run_arg_get_int( args, "llvl", -1 );
     int hlvl   = run_arg_get_int( args, "hlvl", -1 );
     int domino = run_arg_get_int( args, "domino", -1 );
-    int seedA  = run_arg_get_int( args, "seedA", random() );
+    int seedA  = run_arg_get_int( args, "seedA", testing_ialea() );
     int Q      = parameters_compute_q( P );
 
     /* Descriptors */
diff --git a/testing/testing_zungqr.c b/testing/testing_zungqr.c
index a2a22b968..30b12ce22 100644
--- a/testing/testing_zungqr.c
+++ b/testing/testing_zungqr.c
@@ -39,7 +39,7 @@ testing_zungqr_desc( run_arg_list_t *args, int check )
     int      K      = run_arg_get_int( args, "K", chameleon_min( M, N ) );
     int      LDA    = run_arg_get_int( args, "LDA", M );
     int      RH     = run_arg_get_int( args, "qra", 0 );
-    int      seedA  = run_arg_get_int( args, "seedA", random() );
+    int      seedA  = run_arg_get_int( args, "seedA", testing_ialea() );
     int      Q      = parameters_compute_q( P );
 
     /* Descriptors */
@@ -129,7 +129,7 @@ testing_zungqr_std( run_arg_list_t *args, int check )
     int K     = run_arg_get_int( args, "K", chameleon_min( M, N ) );
     int LDA   = run_arg_get_int( args, "LDA", M );
     int RH    = run_arg_get_int( args, "qra", 0 );
-    int seedA = run_arg_get_int( args, "seedA", random() );
+    int seedA = run_arg_get_int( args, "seedA", testing_ialea() );
     int Q     = parameters_compute_q( P );
 
     /* Descriptors */
diff --git a/testing/testing_zungqr_hqr.c b/testing/testing_zungqr_hqr.c
index 40b16a1e0..fb491235c 100644
--- a/testing/testing_zungqr_hqr.c
+++ b/testing/testing_zungqr_hqr.c
@@ -43,7 +43,7 @@ testing_zungqr_hqr_desc( run_arg_list_t *args, int check )
     int      llvl   = run_arg_get_int( args, "llvl", -1 );
     int      hlvl   = run_arg_get_int( args, "hlvl", -1 );
     int      domino = run_arg_get_int( args, "domino", -1 );
-    int      seedA  = run_arg_get_int( args, "seedA", random() );
+    int      seedA  = run_arg_get_int( args, "seedA", testing_ialea() );
     int      Q      = parameters_compute_q( P );
 
     /* Descriptors */
@@ -143,7 +143,7 @@ testing_zungqr_hqr_std( run_arg_list_t *args, int check )
     int llvl   = run_arg_get_int( args, "llvl", -1 );
     int hlvl   = run_arg_get_int( args, "hlvl", -1 );
     int domino = run_arg_get_int( args, "domino", -1 );
-    int seedA  = run_arg_get_int( args, "seedA", random() );
+    int seedA  = run_arg_get_int( args, "seedA", testing_ialea() );
     int Q      = parameters_compute_q( P );
 
     /* Descriptors */
diff --git a/testing/testing_zunmlq.c b/testing/testing_zunmlq.c
index 7506473b9..e9edb1139 100644
--- a/testing/testing_zunmlq.c
+++ b/testing/testing_zunmlq.c
@@ -43,8 +43,8 @@ testing_zunmlq_desc( run_arg_list_t *args, int check )
     int          LDA    = run_arg_get_int( args, "LDA", K );
     int          LDC    = run_arg_get_int( args, "LDC", M );
     int          RH     = run_arg_get_int( args, "qra", 4 );
-    int          seedA  = run_arg_get_int( args, "seedA", random() );
-    int          seedC  = run_arg_get_int( args, "seedC", random() );
+    int          seedA  = run_arg_get_int( args, "seedA", testing_ialea() );
+    int          seedC  = run_arg_get_int( args, "seedC", testing_ialea() );
     int          Q      = parameters_compute_q( P );
 
     /* Descriptors */
@@ -137,8 +137,8 @@ testing_zunmlq_std( run_arg_list_t *args, int check )
     int          LDA   = run_arg_get_int( args, "LDA", K );
     int          LDC   = run_arg_get_int( args, "LDC", M );
     int          RH    = run_arg_get_int( args, "qra", 4 );
-    int          seedA = run_arg_get_int( args, "seedA", random() );
-    int          seedC = run_arg_get_int( args, "seedC", random() );
+    int          seedA = run_arg_get_int( args, "seedA", testing_ialea() );
+    int          seedC = run_arg_get_int( args, "seedC", testing_ialea() );
     int          Q     = parameters_compute_q( P );
 
     /* Descriptors */
diff --git a/testing/testing_zunmlq_hqr.c b/testing/testing_zunmlq_hqr.c
index 06289c010..9a4f9b16b 100644
--- a/testing/testing_zunmlq_hqr.c
+++ b/testing/testing_zunmlq_hqr.c
@@ -47,8 +47,8 @@ testing_zunmlq_hqr_desc( run_arg_list_t *args, int check )
     int          llvl   = run_arg_get_int( args, "llvl", -1 );
     int          hlvl   = run_arg_get_int( args, "hlvl", -1 );
     int          domino = run_arg_get_int( args, "domino", -1 );
-    int          seedA  = run_arg_get_int( args, "seedA", random() );
-    int          seedC  = run_arg_get_int( args, "seedC", random() );
+    int          seedA  = run_arg_get_int( args, "seedA", testing_ialea() );
+    int          seedC  = run_arg_get_int( args, "seedC", testing_ialea() );
     int          Q      = parameters_compute_q( P );
 
     /* Descriptors */
@@ -151,8 +151,8 @@ testing_zunmlq_hqr_std( run_arg_list_t *args, int check )
     int          llvl   = run_arg_get_int( args, "llvl", -1 );
     int          hlvl   = run_arg_get_int( args, "hlvl", -1 );
     int          domino = run_arg_get_int( args, "domino", -1 );
-    int          seedA  = run_arg_get_int( args, "seedA", random() );
-    int          seedC  = run_arg_get_int( args, "seedC", random() );
+    int          seedA  = run_arg_get_int( args, "seedA", testing_ialea() );
+    int          seedC  = run_arg_get_int( args, "seedC", testing_ialea() );
     int          Q      = parameters_compute_q( P );
 
     /* Descriptors */
diff --git a/testing/testing_zunmqr.c b/testing/testing_zunmqr.c
index 7c0e9efac..63cad8335 100644
--- a/testing/testing_zunmqr.c
+++ b/testing/testing_zunmqr.c
@@ -43,8 +43,8 @@ testing_zunmqr_desc( run_arg_list_t *args, int check )
     int          LDA    = run_arg_get_int( args, "LDA", ( side == ChamLeft ) ? M : N );
     int          LDC    = run_arg_get_int( args, "LDC", M );
     int          RH     = run_arg_get_int( args, "qra", 4 );
-    int          seedA  = run_arg_get_int( args, "seedA", random() );
-    int          seedC  = run_arg_get_int( args, "seedC", random() );
+    int          seedA  = run_arg_get_int( args, "seedA", testing_ialea() );
+    int          seedC  = run_arg_get_int( args, "seedC", testing_ialea() );
     int          Q      = parameters_compute_q( P );
 
     /* Descriptors */
@@ -137,8 +137,8 @@ testing_zunmqr_std( run_arg_list_t *args, int check )
     int          LDA   = run_arg_get_int( args, "LDA", ( side == ChamLeft ) ? M : N );
     int          LDC   = run_arg_get_int( args, "LDC", M );
     int          RH    = run_arg_get_int( args, "qra", 4 );
-    int          seedA = run_arg_get_int( args, "seedA", random() );
-    int          seedC = run_arg_get_int( args, "seedC", random() );
+    int          seedA = run_arg_get_int( args, "seedA", testing_ialea() );
+    int          seedC = run_arg_get_int( args, "seedC", testing_ialea() );
     int          Q     = parameters_compute_q( P );
 
     /* Descriptors */
diff --git a/testing/testing_zunmqr_hqr.c b/testing/testing_zunmqr_hqr.c
index ce77e0b41..ffc4ead01 100644
--- a/testing/testing_zunmqr_hqr.c
+++ b/testing/testing_zunmqr_hqr.c
@@ -47,8 +47,8 @@ testing_zunmqr_hqr_desc( run_arg_list_t *args, int check )
     int          llvl   = run_arg_get_int( args, "llvl", -1 );
     int          hlvl   = run_arg_get_int( args, "hlvl", -1 );
     int          domino = run_arg_get_int( args, "domino", -1 );
-    int          seedA  = run_arg_get_int( args, "seedA", random() );
-    int          seedC  = run_arg_get_int( args, "seedC", random() );
+    int          seedA  = run_arg_get_int( args, "seedA", testing_ialea() );
+    int          seedC  = run_arg_get_int( args, "seedC", testing_ialea() );
     int          Q      = parameters_compute_q( P );
 
     /* Descriptors */
@@ -151,8 +151,8 @@ testing_zunmqr_hqr_std( run_arg_list_t *args, int check )
     int          llvl   = run_arg_get_int( args, "llvl", -1 );
     int          hlvl   = run_arg_get_int( args, "hlvl", -1 );
     int          domino = run_arg_get_int( args, "domino", -1 );
-    int          seedA  = run_arg_get_int( args, "seedA", random() );
-    int          seedC  = run_arg_get_int( args, "seedC", random() );
+    int          seedA  = run_arg_get_int( args, "seedA", testing_ialea() );
+    int          seedC  = run_arg_get_int( args, "seedC", testing_ialea() );
     int          Q      = parameters_compute_q( P );
 
     /* Descriptors */
diff --git a/testing/testings.h b/testing/testings.h
index 0b57e9249..860d002ff 100644
--- a/testing/testings.h
+++ b/testing/testings.h
@@ -191,6 +191,7 @@ char *sprint_check    ( val_t val, int human, int nbchar, char *str_in );
 
 #define sprint_fixdbl sprint_double
 
+long                  testing_ialea();
 float                 testing_salea();
 double                testing_dalea();
 CHAMELEON_Complex32_t testing_calea();
diff --git a/testing/values.c b/testing/values.c
index 678b9e31c..8d6f8549c 100644
--- a/testing/values.c
+++ b/testing/values.c
@@ -723,6 +723,15 @@ testing_salea()
     return val;
 }
 
+/**
+ * @brief Generate a random integer
+ */
+long
+testing_ialea()
+{
+    return random();
+}
+
 /**
  * @brief Generate a random double
  */
-- 
GitLab