diff --git a/new-testing/parameters.c b/new-testing/parameters.c
index c1d437223acffcac60befdccb8284dc8e6215d15..5e8e1ff2ee8324d9c557da9a1e7ecd2ef690087e 100644
--- a/new-testing/parameters.c
+++ b/new-testing/parameters.c
@@ -79,8 +79,6 @@ parameters_read_list( parameter_t *param,
         current  = current->next;
     }
 
-    fprintf( stderr, "%s (list): ", param->name );
-
     token = strtok_r( str, delim, &saveptr );
     while ( token != NULL ) {
         assert( current == NULL );
@@ -105,7 +103,6 @@ parameters_read_list( parameter_t *param,
         token = strtok_r( NULL, delim, &saveptr );
     }
 
-    fprintf( stderr, "\n" );
     free( str );
 }
 
@@ -183,14 +180,12 @@ parameters_read_intrange( parameter_t *param,
         current  = current->next;
     }
 
-    fprintf( stderr, "%s (range): ", param->name );
     while ( start <= end ) {
         assert( current == NULL );
         current = calloc( 1, sizeof(vallist_t) );
 
         /* Read the value */
         current->value.ival = start;
-        fprintf( stderr, " %d", start );
 
         /* Insert at the end of the list */
         if ( previous != NULL ) {
@@ -206,7 +201,6 @@ parameters_read_intrange( parameter_t *param,
 
         start += step;
     }
-    fprintf( stderr, "\n" );
 }
 
 /**
@@ -286,7 +280,6 @@ parameters_addvalues( parameter_t *param,
                       const char  *values )
 {
     if ( param->has_arg == 0 ) {
-        fprintf( stderr, "%s: enabled\n", param->name );
         param->value.ival = 1;
     }
     else if ( param->has_arg == 1 ) {
@@ -358,7 +351,6 @@ parameters_read_file( const char  *filename )
             values++;
         }
 
-        //fprintf( stderr, "%s: %s", name, values );
         param = parameters_getbyname( name );
         if ( param == NULL ) {
             fprintf( stderr, "Parameter %s is not know. We skip it\n", name );
diff --git a/new-testing/testing_zauxiliary.c b/new-testing/testing_zauxiliary.c
index 76d69f43e942e92ea19c96a4acaf97010b45ae9a..dacbad2713aaf5a96e3ea788cd389920df5627e7 100644
--- a/new-testing/testing_zauxiliary.c
+++ b/new-testing/testing_zauxiliary.c
@@ -96,6 +96,7 @@ static parameter_t parameters[] = {
     { "||b||",         "Norm of the vector b",                  1008, PARAM_OUTPUT, 2, 12, TestValDouble, {0}, NULL, pread_double, sprint_double },
     { "||x||",         "Norm of the vector x",                  1009, PARAM_OUTPUT, 2, 12, TestValDouble, {0}, NULL, pread_double, sprint_double },
     { "||Ax-b||/N/eps/(||A||||x||+||b||", "",                   1010, PARAM_OUTPUT, 2, 22, TestValDouble, {0}, NULL, pread_double, sprint_double },
+    { "||I-QQ'||",     "Orthonormality of Q",                   1011, PARAM_OUTPUT, 2, 13, TestValDouble, {0}, NULL, pread_double, sprint_double },
 };
 
 #define STR_MAX_LENGTH 256
diff --git a/new-testing/testing_zcheck.c b/new-testing/testing_zcheck.c
index 43fc59187fceb3db1d0ee90b7368af2db0b8ffde..52fc9f396d5b2945a961a89fcf20dc27e560d51e 100644
--- a/new-testing/testing_zcheck.c
+++ b/new-testing/testing_zcheck.c
@@ -57,7 +57,7 @@
  *
  *******************************************************************************
  */
-int check_zmatrices( cham_uplo_t uplo, CHAM_desc_t *descA, CHAM_desc_t *descB )
+int check_zmatrices( run_arg_list_t *args, cham_uplo_t uplo, CHAM_desc_t *descA, CHAM_desc_t *descB )
 {
     int info_solution = 0;
     int M = descA->m;
@@ -155,7 +155,7 @@ int check_zmatrices( cham_uplo_t uplo, CHAM_desc_t *descA, CHAM_desc_t *descB )
  *
  *******************************************************************************
  */
-int check_znorm( cham_mtxtype_t matrix_type, cham_normtype_t norm_type, cham_uplo_t uplo,
+int check_znorm( run_arg_list_t *args, cham_mtxtype_t matrix_type, cham_normtype_t norm_type, cham_uplo_t uplo,
                  cham_diag_t diag, double norm_cham, CHAM_desc_t *descA )
 {
     int info_solution = 0;
@@ -271,11 +271,11 @@ int check_znorm( cham_mtxtype_t matrix_type, cham_normtype_t norm_type, cham_upl
  *
  *******************************************************************************
  */
-int check_zsum ( cham_uplo_t uplo, cham_trans_t trans,
+int check_zsum ( run_arg_list_t *args, cham_uplo_t uplo, cham_trans_t trans,
                  CHAMELEON_Complex64_t alpha, CHAM_desc_t *descA,
                  CHAMELEON_Complex64_t beta, CHAM_desc_t *descBref, CHAM_desc_t *descBcham )
 {
-    int info_solution;
+    int info_solution = 0;
     int M = descBref->m;
     int N = descBref->n;
     int Am = (trans == ChamNoTrans)? M : N;
@@ -390,7 +390,7 @@ int check_zsum ( cham_uplo_t uplo, cham_trans_t trans,
  *
  *******************************************************************************
  */
-int check_zscale( cham_uplo_t uplo, CHAMELEON_Complex64_t alpha, CHAM_desc_t *descA1, CHAM_desc_t *descA2 )
+int check_zscale( run_arg_list_t *args, cham_uplo_t uplo, CHAMELEON_Complex64_t alpha, CHAM_desc_t *descA1, CHAM_desc_t *descA2 )
 {
     int info_solution;
     int M = descA1->m;
@@ -416,7 +416,7 @@ int check_zscale( cham_uplo_t uplo, CHAMELEON_Complex64_t alpha, CHAM_desc_t *de
     CHAMELEON_Lapack_to_Tile( Ainit, M, descBlas );
 
     /* Compares the two matrices */
-    info_solution = check_zmatrices( uplo, descA2, descBlas );
+    info_solution = check_zmatrices( args, uplo, descA2, descBlas );
 
     if ( rank == 0 ) {
         free( Ainit );
@@ -464,10 +464,11 @@ int check_zscale( cham_uplo_t uplo, CHAMELEON_Complex64_t alpha, CHAM_desc_t *de
  *
  *******************************************************************************
  */
-int check_zgemm( cham_trans_t transA, cham_trans_t transB, CHAMELEON_Complex64_t alpha, CHAM_desc_t *descA,
+int check_zgemm( run_arg_list_t *args, cham_trans_t transA, cham_trans_t transB, CHAMELEON_Complex64_t alpha, CHAM_desc_t *descA,
                  CHAM_desc_t *descB, CHAMELEON_Complex64_t beta, CHAM_desc_t *descCref, CHAM_desc_t *descC )
 {
-    int An, LDA, Bn, LDB, info_solution;
+    int An, LDA, Bn, LDB;
+    int info_solution = 0;
     int M = descC->m;
     int N = descC->n;
     int K = (transA != ChamNoTrans)? descA->m : descA->n;
@@ -518,7 +519,6 @@ int check_zgemm( cham_trans_t transA, cham_trans_t transB, CHAMELEON_Complex64_t
 
     if ( rank == 0 ) {
         double eps = LAPACKE_dlamch_work('e');
-        double *work = (double *)malloc(chameleon_max(M, N)* sizeof(double));
 
         /* Makes the multiplication with the core function */
         cblas_zgemm( CblasColMajor, (CBLAS_TRANSPOSE)transA, (CBLAS_TRANSPOSE)transB, M, N, K,
@@ -538,7 +538,6 @@ int check_zgemm( cham_trans_t transA, cham_trans_t transB, CHAMELEON_Complex64_t
             info_solution = 0;
         }
 
-        free(work);
         free(A);
         free(B);
         free(C);
@@ -590,7 +589,7 @@ int check_zgemm( cham_trans_t transA, cham_trans_t transB, CHAMELEON_Complex64_t
  *
  *******************************************************************************
  */
-int check_zsymm( cham_mtxtype_t matrix_type, cham_side_t side, cham_uplo_t uplo,
+int check_zsymm( run_arg_list_t *args, cham_mtxtype_t matrix_type, cham_side_t side, cham_uplo_t uplo,
                  CHAMELEON_Complex64_t alpha, CHAM_desc_t *descA, CHAM_desc_t *descB,
                  CHAMELEON_Complex64_t beta, CHAM_desc_t *descCref, CHAM_desc_t *descC )
 {
@@ -730,7 +729,7 @@ int check_zsymm( cham_mtxtype_t matrix_type, cham_side_t side, cham_uplo_t uplo,
  *
  *******************************************************************************
  */
-int check_zsyrk( cham_mtxtype_t matrix_type, cham_uplo_t uplo, cham_trans_t trans,
+int check_zsyrk( run_arg_list_t *args, cham_mtxtype_t matrix_type, cham_uplo_t uplo, cham_trans_t trans,
                  CHAMELEON_Complex64_t alpha, CHAM_desc_t *descA, CHAM_desc_t *descB,
                  CHAMELEON_Complex64_t beta, CHAM_desc_t *descCref, CHAM_desc_t *descC )
 {
@@ -908,7 +907,7 @@ int check_zsyrk( cham_mtxtype_t matrix_type, cham_uplo_t uplo, cham_trans_t tran
  *
  *******************************************************************************
  */
-int check_ztrmm( int check_func, cham_side_t side, cham_uplo_t uplo, cham_trans_t trans, cham_diag_t diag,
+int check_ztrmm( run_arg_list_t *args, int check_func, cham_side_t side, cham_uplo_t uplo, cham_trans_t trans, cham_diag_t diag,
                  CHAMELEON_Complex64_t alpha, CHAM_desc_t *descA, CHAM_desc_t *descB, CHAM_desc_t *descBref )
 {
     int info_solution = 0;
@@ -1017,7 +1016,7 @@ int check_ztrmm( int check_func, cham_side_t side, cham_uplo_t uplo, cham_trans_
  *
  *******************************************************************************
  */
-int check_zlauum( cham_uplo_t uplo, CHAM_desc_t *descA, CHAM_desc_t *descAAt )
+int check_zlauum( run_arg_list_t *args, cham_uplo_t uplo, CHAM_desc_t *descA, CHAM_desc_t *descAAt )
 {
     int info_local, info_global;
     int N = descA->n;
@@ -1226,7 +1225,7 @@ int check_zxxtrf( run_arg_list_t *args, cham_mtxtype_t mtxtype, cham_uplo_t uplo
  *
  *******************************************************************************
  */
-int check_zsolve( cham_mtxtype_t mtxtype, cham_trans_t trans, cham_uplo_t uplo,
+int check_zsolve( run_arg_list_t *args, cham_mtxtype_t mtxtype, cham_trans_t trans, cham_uplo_t uplo,
                   CHAM_desc_t *descA, CHAM_desc_t *descX, CHAM_desc_t *descB )
 {
     int info_local, info_global;
@@ -1312,7 +1311,7 @@ int check_zsolve( cham_mtxtype_t mtxtype, cham_trans_t trans, cham_uplo_t uplo,
  *
  *******************************************************************************
  */
-int check_ztrtri( cham_mtxtype_t matrix_type, cham_uplo_t uplo, cham_diag_t diag,
+int check_ztrtri( run_arg_list_t *args, cham_mtxtype_t matrix_type, cham_uplo_t uplo, cham_diag_t diag,
                   CHAM_desc_t *descA0, CHAM_desc_t *descAi )
 {
     int info_local, info_global;
@@ -1437,7 +1436,7 @@ int check_ztrtri( cham_mtxtype_t matrix_type, cham_uplo_t uplo, cham_diag_t diag
     return info_global;
 }
 
-int check_zortho( CHAM_desc_t *descQ )
+int check_zortho( run_arg_list_t *args, CHAM_desc_t *descQ )
 {
     int info_local, info_global;
     int M = descQ->m;
@@ -1464,6 +1463,8 @@ int check_zortho( CHAM_desc_t *descQ )
     normR = CHAMELEON_zlansy_Tile( ChamOneNorm, ChamUpper, subI );
     result = normR / ( (double)minMN * eps );
 
+    run_arg_add_double( args, "||I-QQ'||", normR );
+
     if ( isnan(result) || isinf(result) || (result > 60.0) ) {
         info_local = 1;
     }
@@ -1507,7 +1508,7 @@ int check_zortho( CHAM_desc_t *descQ )
  *
  *******************************************************************************
  */
-int check_zgelqf( CHAM_desc_t *descA, CHAM_desc_t *descAF, CHAM_desc_t *descQ )
+int check_zgelqf( run_arg_list_t *args, CHAM_desc_t *descA, CHAM_desc_t *descAF, CHAM_desc_t *descQ )
 {
     int info_local, info_global;
     int M = descQ->m;
@@ -1560,6 +1561,9 @@ int check_zgelqf( CHAM_desc_t *descA, CHAM_desc_t *descAF, CHAM_desc_t *descQ )
     Anorm = CHAMELEON_zlange_Tile( ChamOneNorm, descA );
     result = Rnorm / ( (double)N * Anorm * eps );
 
+    run_arg_add_double( args, "||A||", Anorm );
+    run_arg_add_double( args, "||A-fact(A)||", Rnorm );
+
     if ( isnan(result) || isinf(result) || (result > 60.0) ) {
         info_local = 1;
     }
@@ -1600,7 +1604,7 @@ int check_zgelqf( CHAM_desc_t *descA, CHAM_desc_t *descAF, CHAM_desc_t *descQ )
  *
  *******************************************************************************
  */
-int check_zgeqrf( CHAM_desc_t *descA, CHAM_desc_t *descAF, CHAM_desc_t *descQ )
+int check_zgeqrf( run_arg_list_t *args, CHAM_desc_t *descA, CHAM_desc_t *descAF, CHAM_desc_t *descQ )
 {
     int info_local, info_global;
     int M = descQ->m;
@@ -1653,6 +1657,9 @@ int check_zgeqrf( CHAM_desc_t *descA, CHAM_desc_t *descAF, CHAM_desc_t *descQ )
     Anorm = CHAMELEON_zlange_Tile( ChamOneNorm, descA );
     result = Rnorm / ( (double)M * Anorm * eps );
 
+    run_arg_add_double( args, "||A||", Anorm );
+    run_arg_add_double( args, "||A-fact(A)||", Rnorm );
+
     if ( isnan(result) || isinf(result) || (result > 60.0) ) {
         info_local = 1;
     }
@@ -1670,7 +1677,7 @@ int check_zgeqrf( CHAM_desc_t *descA, CHAM_desc_t *descAF, CHAM_desc_t *descQ )
     return info_global;
 }
 
-int check_zqc( cham_side_t side, cham_trans_t trans,
+int check_zqc( run_arg_list_t *args, cham_side_t side, cham_trans_t trans,
                CHAM_desc_t *descC, CHAM_desc_t *descQ, CHAM_desc_t *descCC )
 {
     int info_local, info_global;
@@ -1710,7 +1717,7 @@ int check_zqc( cham_side_t side, cham_trans_t trans,
     return info_global;
 }
 
-int check_zgeqrs( cham_trans_t trans, CHAM_desc_t *descA, double Bnorm, CHAM_desc_t *descR )
+int check_zgeqrs( run_arg_list_t *args, cham_trans_t trans, CHAM_desc_t *descA, double Bnorm, CHAM_desc_t *descR )
 {
     int info_local, info_global, nb;
     int M = descA->m;
@@ -1770,7 +1777,7 @@ int check_zgeqrs( cham_trans_t trans, CHAM_desc_t *descA, double Bnorm, CHAM_des
     return info_global;
 }
 
-int check_zgelqs( cham_trans_t trans, CHAM_desc_t *descA, double Bnorm, CHAM_desc_t *descR )
+int check_zgelqs( run_arg_list_t *args, cham_trans_t trans, CHAM_desc_t *descA, double Bnorm, CHAM_desc_t *descR )
 {
     int info_local, info_global, nb;
     int M = descA->m;
@@ -1830,21 +1837,21 @@ int check_zgelqs( cham_trans_t trans, CHAM_desc_t *descA, double Bnorm, CHAM_des
     return info_global;
 }
 
-int check_zgels( cham_trans_t trans, CHAM_desc_t *descA, CHAM_desc_t *descX, CHAM_desc_t *descB )
+int check_zgels( run_arg_list_t *args, cham_trans_t trans, CHAM_desc_t *descA, CHAM_desc_t *descX, CHAM_desc_t *descB )
 {
     int info_solution;
     int M = descA->m;
     int N = descA->n;
     double Bnorm = CHAMELEON_zlange_Tile( ChamInfNorm, descB );
 
-    info_solution = check_zsolve( ChamGeneral, trans, ChamUpperLower,
+    info_solution = check_zsolve( args, ChamGeneral, trans, ChamUpperLower,
                                   descA, descX, descB );
 
     if ( M >= N ) {
-        info_solution = check_zgeqrs( trans, descA, Bnorm, descB );
+        info_solution = check_zgeqrs( args, trans, descA, Bnorm, descB );
     }
     else {
-        info_solution = check_zgelqs( trans, descA, Bnorm, descB );
+        info_solution = check_zgelqs( args, trans, descA, Bnorm, descB );
     }
 
 #if defined(CHAMELEON_USE_MPI)
diff --git a/new-testing/testing_zcheck.h b/new-testing/testing_zcheck.h
index 08e98f2e30e578186ffb64fdd9732b08fa4330b0..0afd9af28235c839b8d96fbfa8222a23aefa45e8 100644
--- a/new-testing/testing_zcheck.h
+++ b/new-testing/testing_zcheck.h
@@ -30,40 +30,35 @@
 #define CHECK_TRMM 3
 #define CHECK_TRSM 4
 
-void print_zmatrix      ( int M, int N, CHAMELEON_Complex64_t *A, int LDA );
-void print_zdesc_matrix ( CHAM_desc_t *descA );
-void zsabotage          ( CHAM_desc_t *descA );
-void potri_product      ( cham_uplo_t uplo, CHAM_desc_t *descA1, CHAM_desc_t *descA2 );
-
-int check_zmatrices     ( cham_uplo_t uplo, CHAM_desc_t *descA, CHAM_desc_t *descB );
-int check_znorm         ( cham_mtxtype_t mtxtype, cham_normtype_t norm_type, cham_uplo_t uplo,
+int check_zmatrices     ( run_arg_list_t *args, cham_uplo_t uplo, CHAM_desc_t *descA, CHAM_desc_t *descB );
+int check_znorm         ( run_arg_list_t *args, cham_mtxtype_t mtxtype, cham_normtype_t norm_type, cham_uplo_t uplo,
                           cham_diag_t diag, double norm_cham, CHAM_desc_t *descA );
-int check_zsum          ( cham_uplo_t uplo, cham_trans_t trans, CHAMELEON_Complex64_t alpha, CHAM_desc_t *descA,
+int check_zsum          ( run_arg_list_t *args, cham_uplo_t uplo, cham_trans_t trans, CHAMELEON_Complex64_t alpha, CHAM_desc_t *descA,
                           CHAMELEON_Complex64_t beta, CHAM_desc_t *descBref, CHAM_desc_t *descBcham );
-int check_zscale        ( cham_uplo_t uplo, CHAMELEON_Complex64_t alpha, CHAM_desc_t *descA1, CHAM_desc_t *descA2 );
-int check_zgemm         ( cham_trans_t transA, cham_trans_t transB, CHAMELEON_Complex64_t alpha, CHAM_desc_t *descA,
+int check_zscale        ( run_arg_list_t *args, cham_uplo_t uplo, CHAMELEON_Complex64_t alpha, CHAM_desc_t *descA1, CHAM_desc_t *descA2 );
+int check_zgemm         ( run_arg_list_t *args, cham_trans_t transA, cham_trans_t transB, CHAMELEON_Complex64_t alpha, CHAM_desc_t *descA,
                           CHAM_desc_t *descB, CHAMELEON_Complex64_t beta, CHAM_desc_t *descCref, CHAM_desc_t *descC );
-int check_zsymm         ( cham_mtxtype_t mtxtype, cham_side_t side, cham_uplo_t uplo, CHAMELEON_Complex64_t alpha, CHAM_desc_t *descA, CHAM_desc_t *descB,
+int check_zsymm         ( run_arg_list_t *args, cham_mtxtype_t mtxtype, cham_side_t side, cham_uplo_t uplo, CHAMELEON_Complex64_t alpha, CHAM_desc_t *descA, CHAM_desc_t *descB,
                           CHAMELEON_Complex64_t beta, CHAM_desc_t *descCref, CHAM_desc_t *descC );
-int check_zsyrk         ( cham_mtxtype_t mtxtype, cham_uplo_t uplo, cham_trans_t trans, CHAMELEON_Complex64_t alpha, CHAM_desc_t *descA,
+int check_zsyrk         ( run_arg_list_t *args, cham_mtxtype_t mtxtype, cham_uplo_t uplo, cham_trans_t trans, CHAMELEON_Complex64_t alpha, CHAM_desc_t *descA,
                           CHAM_desc_t *descB, CHAMELEON_Complex64_t beta, CHAM_desc_t *descCref, CHAM_desc_t *descC );
-int check_ztrmm         ( int check_func, cham_side_t side, cham_uplo_t uplo, cham_trans_t trans, cham_diag_t diag,
+int check_ztrmm         ( run_arg_list_t *args, int check_func, cham_side_t side, cham_uplo_t uplo, cham_trans_t trans, cham_diag_t diag,
                           CHAMELEON_Complex64_t alpha, CHAM_desc_t *descA, CHAM_desc_t *descB, CHAM_desc_t *descBref );
-int check_zlauum        ( cham_uplo_t uplo, CHAM_desc_t *descA1, CHAM_desc_t *descA2 );
+int check_zlauum        ( run_arg_list_t *args, cham_uplo_t uplo, CHAM_desc_t *descA1, CHAM_desc_t *descA2 );
 int check_zxxtrf        ( run_arg_list_t *args, cham_mtxtype_t mtxtype, cham_uplo_t uplo, CHAM_desc_t *descA1, CHAM_desc_t *descA2 );
-int check_zsolve        ( cham_mtxtype_t mtxtype, cham_trans_t trans, cham_uplo_t uplo,
+int check_zsolve        ( run_arg_list_t *args, cham_mtxtype_t mtxtype, cham_trans_t trans, cham_uplo_t uplo,
                           CHAM_desc_t *descA, CHAM_desc_t *descX, CHAM_desc_t *descB );
-int check_ztrtri        ( cham_mtxtype_t mtxtype, cham_uplo_t uplo, cham_diag_t diag,
+int check_ztrtri        ( run_arg_list_t *args, cham_mtxtype_t mtxtype, cham_uplo_t uplo, cham_diag_t diag,
                           CHAM_desc_t *descA, CHAM_desc_t *descAi );
 
 /* Using QR factorization */
-int check_zortho        ( CHAM_desc_t *descQ );
-int check_zgeqrf        ( CHAM_desc_t *descA, CHAM_desc_t *descAF, CHAM_desc_t *descQ );
-int check_zgelqf        ( CHAM_desc_t *descA, CHAM_desc_t *descAF, CHAM_desc_t *descQ );
-int check_zgels         ( cham_trans_t trans, CHAM_desc_t *descA, CHAM_desc_t *descX, CHAM_desc_t *descB );
-int check_zgeqrs        ( cham_trans_t trans, CHAM_desc_t *descA, double Bnorm, CHAM_desc_t *descR );
-int check_zgelqs        ( cham_trans_t trans, CHAM_desc_t *descA, double Bnorm, CHAM_desc_t *descR );
-int check_zqc           ( cham_side_t side, cham_trans_t trans, CHAM_desc_t *descC, CHAM_desc_t *descQ, CHAM_desc_t *descCC );
+int check_zortho        ( run_arg_list_t *args, CHAM_desc_t *descQ );
+int check_zgeqrf        ( run_arg_list_t *args, CHAM_desc_t *descA, CHAM_desc_t *descAF, CHAM_desc_t *descQ );
+int check_zgelqf        ( run_arg_list_t *args, CHAM_desc_t *descA, CHAM_desc_t *descAF, CHAM_desc_t *descQ );
+int check_zgels         ( run_arg_list_t *args, cham_trans_t trans, CHAM_desc_t *descA, CHAM_desc_t *descX, CHAM_desc_t *descB );
+int check_zgeqrs        ( run_arg_list_t *args, cham_trans_t trans, CHAM_desc_t *descA, double Bnorm, CHAM_desc_t *descR );
+int check_zgelqs        ( run_arg_list_t *args, cham_trans_t trans, CHAM_desc_t *descA, double Bnorm, CHAM_desc_t *descR );
+int check_zqc           ( run_arg_list_t *args, cham_side_t side, cham_trans_t trans, CHAM_desc_t *descC, CHAM_desc_t *descQ, CHAM_desc_t *descCC );
 
 #endif
 
diff --git a/new-testing/testing_zgeadd.c b/new-testing/testing_zgeadd.c
index 3f9cdb749c55d32e314777fab43295af1710a826..ac1146858e6de986806d52c503b7d94ad405a8a6 100644
--- a/new-testing/testing_zgeadd.c
+++ b/new-testing/testing_zgeadd.c
@@ -95,7 +95,7 @@ testing_zgeadd( run_arg_list_t *args, int check )
         CHAM_desc_t *descB0 = CHAMELEON_Desc_Copy( descB, NULL );
         CHAMELEON_zplrnt_Tile( descB0, seedB );
 
-        hres += check_zsum( ChamUpperLower, trans, alpha, descA, beta, descB0, descB );
+        hres += check_zsum( args, ChamUpperLower, trans, alpha, descA, beta, descB0, descB );
 
         CHAMELEON_Desc_Destroy( &descB0 );
     }
diff --git a/new-testing/testing_zgelqf.c b/new-testing/testing_zgelqf.c
index cf1fba3bdcfe76fcfc13f1573e3b30086a4a6e53..98aea232c032409517458e83e6160952f6bcfa1f 100644
--- a/new-testing/testing_zgelqf.c
+++ b/new-testing/testing_zgelqf.c
@@ -78,8 +78,8 @@ testing_zgelqf( run_arg_list_t *args, int check )
 
         CHAMELEON_zunglq_Tile( descA, descT, descQ );
 
-        hres += check_zgelqf( descA0, descA, descQ );
-        hres += check_zortho( descQ );
+        hres += check_zgelqf( args, descA0, descA, descQ );
+        hres += check_zortho( args, descQ );
 
         CHAMELEON_Desc_Destroy( &descA0 );
         CHAMELEON_Desc_Destroy( &descQ );
@@ -95,7 +95,7 @@ testing_zgelqf( run_arg_list_t *args, int check )
 testing_t   test_zgelqf;
 const char *zgelqf_params[] = { "nb", "ib", "m", "n", "lda", "qra", "seedA", NULL };
 const char *zgelqf_output[] = { NULL };
-const char *zgelqf_outchk[] = { "RETURN", NULL };
+const char *zgelqf_outchk[] = { "||A||", "||I-QQ'||", "||A-fact(A)||", "RETURN", NULL };
 
 /**
  * @brief Testing registration function
diff --git a/new-testing/testing_zgelqf_hqr.c b/new-testing/testing_zgelqf_hqr.c
index 10796b0611d19f5ae6fb3a7b06d4034e7b5fc0d2..b5f81b0f5bb998bd8e7a86fb29f7b5c462b412fa 100644
--- a/new-testing/testing_zgelqf_hqr.c
+++ b/new-testing/testing_zgelqf_hqr.c
@@ -86,8 +86,8 @@ testing_zgelqf_hqr( run_arg_list_t *args, int check )
 
         CHAMELEON_zunglq_param_Tile( &qrtree, descA, descTS, descTT, descQ );
 
-        hres += check_zgelqf( descA0, descA, descQ );
-        hres += check_zortho( descQ );
+        hres += check_zgelqf( args, descA0, descA, descQ );
+        hres += check_zortho( args, descQ );
 
         CHAMELEON_Desc_Destroy( &descA0 );
         CHAMELEON_Desc_Destroy( &descQ );
@@ -106,7 +106,7 @@ testing_t   test_zgelqf_hqr;
 const char *zgelqf_hqr_params[] = { "nb",  "ib",   "m",    "n",      "lda",   "qra",
                                     "qrp", "llvl", "hlvl", "domino", "seedA", NULL };
 const char *zgelqf_hqr_output[] = { NULL };
-const char *zgelqf_hqr_outchk[] = { "RETURN", NULL };
+const char *zgelqf_hqr_outchk[] = { "||A||", "||I-QQ'||", "||A-fact(A)||", "RETURN", NULL };
 
 /**
  * @brief Testing registration function
diff --git a/new-testing/testing_zgelqs.c b/new-testing/testing_zgelqs.c
index 77e70457553c17da3ff263b2d215d6131929e7a3..06eb52c437fcb4cb1e03b69ee99b94887e4e7edb 100644
--- a/new-testing/testing_zgelqs.c
+++ b/new-testing/testing_zgelqs.c
@@ -93,7 +93,7 @@ testing_zgelqs( run_arg_list_t *args, int check )
         CHAMELEON_zplrnt_Tile( descA0, seedA );
         CHAMELEON_zplrnt_Tile( descB, seedB );
 
-        hres += check_zsolve( ChamGeneral, ChamNoTrans, ChamUpperLower, descA0, subX, subB );
+        hres += check_zsolve( args, ChamGeneral, ChamNoTrans, ChamUpperLower, descA0, subX, subB );
 
         free( subB );
         free( subX );
diff --git a/new-testing/testing_zgels.c b/new-testing/testing_zgels.c
index c5f88d3d503173a5e2dd576b057881a212ff956e..2813ffe34483600760abcc82e047620886a0c03c 100644
--- a/new-testing/testing_zgels.c
+++ b/new-testing/testing_zgels.c
@@ -108,7 +108,7 @@ testing_zgels( run_arg_list_t *args, int check )
         }
 
         /* Check the factorization and the residual */
-        hres = check_zgels( trans, descA0, subX, subB );  // A(Ax-B) == 0?
+        hres = check_zgels( args, trans, descA0, subX, subB );
 
         CHAMELEON_Desc_Destroy( &descA0 );
         CHAMELEON_Desc_Destroy( &descB );
diff --git a/new-testing/testing_zgels_hqr.c b/new-testing/testing_zgels_hqr.c
index 9ae361b25f6672a6e3edfea361117cb72cd50096..30d9aa6709881ede7374282d846080ae60d39d38 100644
--- a/new-testing/testing_zgels_hqr.c
+++ b/new-testing/testing_zgels_hqr.c
@@ -114,7 +114,7 @@ testing_zgels_hqr( run_arg_list_t *args, int check )
         }
 
         /* Check the factorization and the residual */
-        hres = check_zgels( trans, descA0, subX, subB );  // A(Ax-B) == 0?
+        hres = check_zgels( args, trans, descA0, subX, subB );
 
         CHAMELEON_Desc_Destroy( &descA0 );
         CHAMELEON_Desc_Destroy( &descB );
diff --git a/new-testing/testing_zgemm.c b/new-testing/testing_zgemm.c
index 8e2aa0f598daf9e07aff610c7999d0edc3dd410b..fa36780c0948a3e68ac433c798c82cffe4336bee 100644
--- a/new-testing/testing_zgemm.c
+++ b/new-testing/testing_zgemm.c
@@ -98,7 +98,7 @@ testing_zgemm( run_arg_list_t *args, int check )
             &descCinit, NULL, ChamComplexDouble, nb, nb, nb * nb, LDC, N, 0, 0, M, N, P, Q );
         CHAMELEON_zplrnt_Tile( descCinit, seedC );
 
-        hres += check_zgemm( transA, transB, alpha, descA, descB, beta, descCinit, descC );
+        hres += check_zgemm( args, transA, transB, alpha, descA, descB, beta, descCinit, descC );
 
         CHAMELEON_Desc_Destroy( &descCinit );
     }
diff --git a/new-testing/testing_zgeqrf.c b/new-testing/testing_zgeqrf.c
index bd2e3a159a58d871b76db8d6612ebeed47bbaf4e..ae74dd91c11afb9e7f77f930786bc84934c4396d 100644
--- a/new-testing/testing_zgeqrf.c
+++ b/new-testing/testing_zgeqrf.c
@@ -78,8 +78,8 @@ testing_zgeqrf( run_arg_list_t *args, int check )
 
         CHAMELEON_zungqr_Tile( descA, descT, descQ );
 
-        hres += check_zgeqrf( descA0, descA, descQ );
-        hres += check_zortho( descQ );
+        hres += check_zgeqrf( args, descA0, descA, descQ );
+        hres += check_zortho( args, descQ );
 
         CHAMELEON_Desc_Destroy( &descA0 );
         CHAMELEON_Desc_Destroy( &descQ );
@@ -95,7 +95,7 @@ testing_zgeqrf( run_arg_list_t *args, int check )
 testing_t   test_zgeqrf;
 const char *zgeqrf_params[] = { "nb", "ib", "m", "n", "lda", "qra", "seedA", NULL };
 const char *zgeqrf_output[] = { NULL };
-const char *zgeqrf_outchk[] = { "RETURN", NULL };
+const char *zgeqrf_outchk[] = { "||A||", "||I-QQ'||", "||A-fact(A)||", "RETURN", NULL };
 
 /**
  * @brief Testing registration function
diff --git a/new-testing/testing_zgeqrf_hqr.c b/new-testing/testing_zgeqrf_hqr.c
index ffd0a4149e73ccacefd8e539e6ab2de7772d0abe..c485a5dcceb16c5df5a327f172c122be5958ed5e 100644
--- a/new-testing/testing_zgeqrf_hqr.c
+++ b/new-testing/testing_zgeqrf_hqr.c
@@ -86,8 +86,8 @@ testing_zgeqrf_hqr( run_arg_list_t *args, int check )
 
         CHAMELEON_zungqr_param_Tile( &qrtree, descA, descTS, descTT, descQ );
 
-        hres += check_zgeqrf( descA0, descA, descQ );
-        hres += check_zortho( descQ );
+        hres += check_zgeqrf( args, descA0, descA, descQ );
+        hres += check_zortho( args, descQ );
 
         CHAMELEON_Desc_Destroy( &descA0 );
         CHAMELEON_Desc_Destroy( &descQ );
@@ -106,7 +106,7 @@ testing_t   test_zgeqrf_hqr;
 const char *zgeqrf_hqr_params[] = { "nb",  "ib",   "m",    "n",      "lda",   "qra",
                                     "qrp", "llvl", "hlvl", "domino", "seedA", NULL };
 const char *zgeqrf_hqr_output[] = { NULL };
-const char *zgeqrf_hqr_outchk[] = { "RETURN", NULL };
+const char *zgeqrf_hqr_outchk[] = { "||A||", "||I-QQ'||", "||A-fact(A)||", "RETURN", NULL };
 
 /**
  * @brief Testing registration function
diff --git a/new-testing/testing_zgeqrs.c b/new-testing/testing_zgeqrs.c
index d33730f8f0999a9489423c2ec6e79c6764282477..4af8bfeea164df70fb3ec131d5c1fe395bab8fca 100644
--- a/new-testing/testing_zgeqrs.c
+++ b/new-testing/testing_zgeqrs.c
@@ -93,7 +93,7 @@ testing_zgeqrs( run_arg_list_t *args, int check )
         CHAMELEON_zplrnt_Tile( descA0, seedA );
         CHAMELEON_zplrnt_Tile( descB, seedB );
 
-        hres += check_zsolve( ChamGeneral, ChamNoTrans, ChamUpperLower, descA0, subX, subB );
+        hres += check_zsolve( args, ChamGeneral, ChamNoTrans, ChamUpperLower, descA0, subX, subB );
 
         free( subB );
         free( subX );
diff --git a/new-testing/testing_zgesv.c b/new-testing/testing_zgesv.c
index b429f40140ecbc7392bffdeb6b2ee337e8d91679..c97e2f2b2a27b5cb3a2b3f87b365f9d3d2b67126 100644
--- a/new-testing/testing_zgesv.c
+++ b/new-testing/testing_zgesv.c
@@ -82,7 +82,7 @@ testing_zgesv( run_arg_list_t *args, int check )
         CHAMELEON_zplrnt_Tile( descA0, seedA );
         CHAMELEON_zplrnt_Tile( descB, seedB );
 
-        hres += check_zsolve( ChamGeneral, ChamNoTrans, ChamUpperLower, descA0, descX, descB );
+        hres += check_zsolve( args, ChamGeneral, ChamNoTrans, ChamUpperLower, descA0, descX, descB );
 
         CHAMELEON_Desc_Destroy( &descA0 );
         CHAMELEON_Desc_Destroy( &descB );
diff --git a/new-testing/testing_zgetrs.c b/new-testing/testing_zgetrs.c
index 084b61f38ad72789e983c8810af1c82660aded2f..da1a2c03e2c096010a38cea3729fb5c1d18557b6 100644
--- a/new-testing/testing_zgetrs.c
+++ b/new-testing/testing_zgetrs.c
@@ -72,7 +72,7 @@ testing_zgetrs( run_arg_list_t *args, int check )
         CHAMELEON_zplrnt_Tile( descA0, seedA );
         CHAMELEON_zplrnt_Tile( descB, seedB );
 
-        hres += check_zsolve( ChamGeneral, ChamNoTrans, ChamUpperLower, descA0, descX, descB );
+        hres += check_zsolve( args, ChamGeneral, ChamNoTrans, ChamUpperLower, descA0, descX, descB );
 
         CHAMELEON_Desc_Destroy( &descA0 );
         CHAMELEON_Desc_Destroy( &descB );
diff --git a/new-testing/testing_zhemm.c b/new-testing/testing_zhemm.c
index 291bdc3bd6e29441f039244f32cc14bfc625206b..85daf7c272c5553424592986d045737476f06259 100644
--- a/new-testing/testing_zhemm.c
+++ b/new-testing/testing_zhemm.c
@@ -90,7 +90,7 @@ testing_zhemm( run_arg_list_t *args, int check )
         CHAMELEON_zplrnt_Tile( descCinit, seedC );
 
         hres +=
-            check_zsymm( ChamHermitian, side, uplo, alpha, descA, descB, beta, descCinit, descC );
+            check_zsymm( args, ChamHermitian, side, uplo, alpha, descA, descB, beta, descCinit, descC );
 
         CHAMELEON_Desc_Destroy( &descCinit );
     }
diff --git a/new-testing/testing_zher2k.c b/new-testing/testing_zher2k.c
index 2dc6a560c74d043b186b173f0f0932f162d7627f..d1795043d296a338e01e3704fde21927970bbabe 100644
--- a/new-testing/testing_zher2k.c
+++ b/new-testing/testing_zher2k.c
@@ -92,7 +92,7 @@ testing_zher2k( run_arg_list_t *args, int check )
         CHAMELEON_zplghe_Tile( bump, uplo, descCinit, seedC );
 
         hres +=
-            check_zsyrk( ChamHermitian, uplo, trans, alpha, descA, descB, beta, descCinit, descC );
+            check_zsyrk( args, ChamHermitian, uplo, trans, alpha, descA, descB, beta, descCinit, descC );
 
         CHAMELEON_Desc_Destroy( &descCinit );
     }
diff --git a/new-testing/testing_zherk.c b/new-testing/testing_zherk.c
index b7f650b8bd12d69351cdc4f75552f8faeb249269..dc28ac8db9abb271e97add102e678e7668c1d7fb 100644
--- a/new-testing/testing_zherk.c
+++ b/new-testing/testing_zherk.c
@@ -88,7 +88,7 @@ testing_zherk( run_arg_list_t *args, int check )
         CHAMELEON_zplghe_Tile( bump, uplo, descCinit, seedC );
 
         hres +=
-            check_zsyrk( ChamHermitian, uplo, trans, alpha, descA, NULL, beta, descCinit, descC );
+            check_zsyrk( args, ChamHermitian, uplo, trans, alpha, descA, NULL, beta, descCinit, descC );
 
         CHAMELEON_Desc_Destroy( &descCinit );
     }
diff --git a/new-testing/testing_zlacpy.c b/new-testing/testing_zlacpy.c
index 4892f2cc5e0cdb82c9480bbc9ebc892ad63cdad0..705ad4e19562df144efa1f1802ee9d36dd630bc2 100644
--- a/new-testing/testing_zlacpy.c
+++ b/new-testing/testing_zlacpy.c
@@ -94,7 +94,7 @@ testing_zlacpy( run_arg_list_t *args, int check )
 
     /* Checks their differences */
     if ( check ) {
-        hres += check_zmatrices( uplo, descA, descB );
+        hres += check_zmatrices( args, uplo, descA, descB );
     }
 
     CHAMELEON_Desc_Destroy( &descA );
diff --git a/new-testing/testing_zlange.c b/new-testing/testing_zlange.c
index fc2ff6b4e49706a7f35c3798274fa3d0a6dc4b51..1839f3e8a6725c78bf84ed5b0938a595c99c5a22 100644
--- a/new-testing/testing_zlange.c
+++ b/new-testing/testing_zlange.c
@@ -86,7 +86,7 @@ testing_zlange( run_arg_list_t *args, int check )
 
     /* Checks the solution */
     if ( check ) {
-        hres = check_znorm( ChamGeneral, norm_type, ChamUpperLower, ChamNonUnit, norm, descA );
+        hres = check_znorm( args, ChamGeneral, norm_type, ChamUpperLower, ChamNonUnit, norm, descA );
     }
 
     CHAMELEON_Desc_Destroy( &descA );
diff --git a/new-testing/testing_zlanhe.c b/new-testing/testing_zlanhe.c
index 8ca447cc84e31d4a45d8af7800b18919e6e6a5f6..11cae1848c47d3e660e830a76f0221ae9060671a 100644
--- a/new-testing/testing_zlanhe.c
+++ b/new-testing/testing_zlanhe.c
@@ -87,7 +87,7 @@ testing_zlanhe( run_arg_list_t *args, int check )
 
     /* Checks the solution */
     if ( check ) {
-        hres = check_znorm( ChamHermitian, norm_type, uplo, ChamNonUnit, norm, descA );
+        hres = check_znorm( args, ChamHermitian, norm_type, uplo, ChamNonUnit, norm, descA );
     }
 
     CHAMELEON_Desc_Destroy( &descA );
diff --git a/new-testing/testing_zlansy.c b/new-testing/testing_zlansy.c
index b55e0b761dbfa670b3472a72c6f37cb6a544fbb0..b226ae5769329948f42819879ef70e78c43fa782 100644
--- a/new-testing/testing_zlansy.c
+++ b/new-testing/testing_zlansy.c
@@ -87,7 +87,7 @@ testing_zlansy( run_arg_list_t *args, int check )
 
     /* Checks the solution */
     if ( check ) {
-        hres = check_znorm( ChamSymmetric, norm_type, uplo, ChamNonUnit, norm, descA );
+        hres = check_znorm( args, ChamSymmetric, norm_type, uplo, ChamNonUnit, norm, descA );
     }
 
     CHAMELEON_Desc_Destroy( &descA );
diff --git a/new-testing/testing_zlantr.c b/new-testing/testing_zlantr.c
index b1d0e2da371e5235d0da7e7042885ec56f3b52db..cb8962c966cff923dfc972ab7f0d13d38364fb62 100644
--- a/new-testing/testing_zlantr.c
+++ b/new-testing/testing_zlantr.c
@@ -87,7 +87,7 @@ testing_zlantr( run_arg_list_t *args, int check )
 
     /* Checks the solution */
     if ( check ) {
-        hres = check_znorm( ChamTriangular, norm_type, uplo, diag, norm, descA );
+        hres = check_znorm( args, ChamTriangular, norm_type, uplo, diag, norm, descA );
     }
 
     CHAMELEON_Desc_Destroy( &descA );
diff --git a/new-testing/testing_zlascal.c b/new-testing/testing_zlascal.c
index 21abe8987e258c954e9c34a2f7df4cdb7708de16..792f8f5d64c86d3513f0fce1f6f6688c5226a2f5 100644
--- a/new-testing/testing_zlascal.c
+++ b/new-testing/testing_zlascal.c
@@ -88,7 +88,7 @@ testing_zlascal( run_arg_list_t *args, int check )
             &descAinit, NULL, ChamComplexDouble, nb, nb, nb * nb, LDA, N, 0, 0, M, N, P, Q );
         CHAMELEON_zplrnt_Tile( descAinit, seedA );
 
-        hres += check_zscale( uplo, alpha, descAinit, descA );
+        hres += check_zscale( args, uplo, alpha, descAinit, descA );
 
         CHAMELEON_Desc_Destroy( &descAinit );
     }
diff --git a/new-testing/testing_zlauum.c b/new-testing/testing_zlauum.c
index 4a9b16557d6910ba6fd3b58fb20e8dbf5fa8d781..0f92f5f7b86b5a422aa51192b9e3f3e88890425f 100644
--- a/new-testing/testing_zlauum.c
+++ b/new-testing/testing_zlauum.c
@@ -66,7 +66,7 @@ testing_zlauum( run_arg_list_t *args, int check )
         CHAM_desc_t *descA0 = CHAMELEON_Desc_Copy( descA, NULL );
         CHAMELEON_zplghe_Tile( 0., uplo, descA0, seedA );
 
-        hres += check_zlauum( uplo, descA0, descA );
+        hres += check_zlauum( args, uplo, descA0, descA );
 
         CHAMELEON_Desc_Destroy( &descA0 );
     }
diff --git a/new-testing/testing_zposv.c b/new-testing/testing_zposv.c
index 0e1e47559f93f4a409061f6c6c98815c17415a4b..10094e3225b4782a7849d10e7d343efa208575f8 100644
--- a/new-testing/testing_zposv.c
+++ b/new-testing/testing_zposv.c
@@ -83,7 +83,7 @@ testing_zposv( run_arg_list_t *args, int check )
         CHAMELEON_zplrnt_Tile( descB, seedB );
 
         CHAMELEON_zplghe_Tile( (double)N, uplo, descA0, seedA );
-        hres += check_zsolve( ChamHermitian, ChamNoTrans, uplo, descA0, descX, descB );
+        hres += check_zsolve( args, ChamHermitian, ChamNoTrans, uplo, descA0, descX, descB );
 
         CHAMELEON_Desc_Destroy( &descA0 );
         CHAMELEON_Desc_Destroy( &descB );
diff --git a/new-testing/testing_zpotri.c b/new-testing/testing_zpotri.c
index 1372d0b65138ad3c65b22f2bc454c4fba58546b8..2274b29db9b7b21e686ae9c11d9d551127cb3859 100644
--- a/new-testing/testing_zpotri.c
+++ b/new-testing/testing_zpotri.c
@@ -63,7 +63,7 @@ testing_zpotri( run_arg_list_t *args, int check )
         CHAM_desc_t *descA0 = CHAMELEON_Desc_Copy( descA, NULL );
         CHAMELEON_zplghe_Tile( (double)N, uplo, descA0, seedA );
 
-        hres += check_ztrtri( ChamHermitian, uplo, ChamNonUnit, descA0, descA );
+        hres += check_ztrtri( args, ChamHermitian, uplo, ChamNonUnit, descA0, descA );
 
         CHAMELEON_Desc_Destroy( &descA0 );
     }
diff --git a/new-testing/testing_zpotrs.c b/new-testing/testing_zpotrs.c
index 84936b5fbb504f499699f78e56a04514346074e5..ca7c86f57da2ce47cd85476e7498cd952e3f11e3 100644
--- a/new-testing/testing_zpotrs.c
+++ b/new-testing/testing_zpotrs.c
@@ -75,7 +75,7 @@ testing_zpotrs( run_arg_list_t *args, int check )
         CHAMELEON_zplghe_Tile( (double)N, uplo, descA0, seedA );
         CHAMELEON_zplrnt_Tile( descB, seedB );
 
-        hres += check_zsolve( ChamHermitian, ChamNoTrans, uplo, descA0, descX, descB );
+        hres += check_zsolve( args, ChamHermitian, ChamNoTrans, uplo, descA0, descX, descB );
 
         CHAMELEON_Desc_Destroy( &descA0 );
         CHAMELEON_Desc_Destroy( &descB );
diff --git a/new-testing/testing_zsymm.c b/new-testing/testing_zsymm.c
index 2e43fa2f78f2eb8d83ae7c490f0b29446b2989dd..70f33ed52a6b6a4180014963f9a851f50216e760 100644
--- a/new-testing/testing_zsymm.c
+++ b/new-testing/testing_zsymm.c
@@ -90,7 +90,7 @@ testing_zsymm( run_arg_list_t *args, int check )
         CHAMELEON_zplrnt_Tile( descCinit, seedC );
 
         hres +=
-            check_zsymm( ChamSymmetric, side, uplo, alpha, descA, descB, beta, descCinit, descC );
+            check_zsymm( args, ChamSymmetric, side, uplo, alpha, descA, descB, beta, descCinit, descC );
 
         CHAMELEON_Desc_Destroy( &descCinit );
     }
diff --git a/new-testing/testing_zsyr2k.c b/new-testing/testing_zsyr2k.c
index 134452e2ce70c65602bd11602bf2f4d56190d087..508cd3dc41630182d5f6e997ef6a71fc283d276f 100644
--- a/new-testing/testing_zsyr2k.c
+++ b/new-testing/testing_zsyr2k.c
@@ -92,7 +92,7 @@ testing_zsyr2k( run_arg_list_t *args, int check )
         CHAMELEON_zplgsy_Tile( bump, uplo, descCinit, seedC );
 
         hres +=
-            check_zsyrk( ChamSymmetric, uplo, trans, alpha, descA, descB, beta, descCinit, descC );
+            check_zsyrk( args, ChamSymmetric, uplo, trans, alpha, descA, descB, beta, descCinit, descC );
 
         CHAMELEON_Desc_Destroy( &descCinit );
     }
diff --git a/new-testing/testing_zsyrk.c b/new-testing/testing_zsyrk.c
index e236637a891673eae8dcd3c5e65294cd673eb164..4c6c8838c31522324710cf668c37373392a5adf4 100644
--- a/new-testing/testing_zsyrk.c
+++ b/new-testing/testing_zsyrk.c
@@ -87,7 +87,7 @@ testing_zsyrk( run_arg_list_t *args, int check )
         CHAMELEON_zplgsy_Tile( bump, uplo, descCinit, seedC );
 
         hres +=
-            check_zsyrk( ChamSymmetric, uplo, trans, alpha, descA, NULL, beta, descCinit, descC );
+            check_zsyrk( args, ChamSymmetric, uplo, trans, alpha, descA, NULL, beta, descCinit, descC );
 
         CHAMELEON_Desc_Destroy( &descCinit );
     }
diff --git a/new-testing/testing_zsysv.c b/new-testing/testing_zsysv.c
index e05e45c682a36465436dda8d56aeab55ea4b5e45..f7358abb0184fa22791fcdc7df92a238ab169287 100644
--- a/new-testing/testing_zsysv.c
+++ b/new-testing/testing_zsysv.c
@@ -83,7 +83,7 @@ testing_zsysv( run_arg_list_t *args, int check )
         CHAMELEON_zplrnt_Tile( descB, seedB );
 
         CHAMELEON_zplgsy_Tile( (double)N, uplo, descA0, seedA );
-        hres += check_zsolve( ChamSymmetric, ChamNoTrans, uplo, descA0, descX, descB );
+        hres += check_zsolve( args, ChamSymmetric, ChamNoTrans, uplo, descA0, descX, descB );
 
         CHAMELEON_Desc_Destroy( &descA0 );
         CHAMELEON_Desc_Destroy( &descB );
diff --git a/new-testing/testing_zsytrs.c b/new-testing/testing_zsytrs.c
index 1bd4cfcddf6bc25841a03aaa46110564d24edf3e..0baa575a4600cdeafca20484c87141363354f34c 100644
--- a/new-testing/testing_zsytrs.c
+++ b/new-testing/testing_zsytrs.c
@@ -75,7 +75,7 @@ testing_zsytrs( run_arg_list_t *args, int check )
         CHAMELEON_zplgsy_Tile( (double)N, uplo, descA0, seedA );
         CHAMELEON_zplrnt_Tile( descB, seedB );
 
-        hres += check_zsolve( ChamSymmetric, ChamNoTrans, uplo, descA0, descX, descB );
+        hres += check_zsolve( args, ChamSymmetric, ChamNoTrans, uplo, descA0, descX, descB );
 
         CHAMELEON_Desc_Destroy( &descA0 );
         CHAMELEON_Desc_Destroy( &descB );
diff --git a/new-testing/testing_ztradd.c b/new-testing/testing_ztradd.c
index 761a4e0c1c65dd355912b4f0dc5692573b04ba1d..94ca773bfc86d2d958349deb2590992ca1bbad92 100644
--- a/new-testing/testing_ztradd.c
+++ b/new-testing/testing_ztradd.c
@@ -130,7 +130,7 @@ testing_ztradd( run_arg_list_t *args, int check )
         else {
             CHAMELEON_zplgsy_Tile( 0., uplo, descB0, seedB );
         }
-        hres += check_zsum( uplo, trans, alpha, descA, beta, descB0, descB );
+        hres += check_zsum( args, uplo, trans, alpha, descA, beta, descB0, descB );
 
         CHAMELEON_Desc_Destroy( &descB0 );
     }
diff --git a/new-testing/testing_ztrmm.c b/new-testing/testing_ztrmm.c
index c14d20ee094ee9f52ea9e8c28ca703312cf3d1d1..5ce48376c987a21d6a729e5512631087c921d660 100644
--- a/new-testing/testing_ztrmm.c
+++ b/new-testing/testing_ztrmm.c
@@ -84,7 +84,7 @@ testing_ztrmm( run_arg_list_t *args, int check )
             &descBinit, NULL, ChamComplexDouble, nb, nb, nb * nb, LDB, Bn, 0, 0, Bm, Bn, P, Q );
         CHAMELEON_zplrnt_Tile( descBinit, seedB );
 
-        hres += check_ztrmm( CHECK_TRMM, side, uplo, trans, diag, alpha, descA, descB, descBinit );
+        hres += check_ztrmm( args, CHECK_TRMM, side, uplo, trans, diag, alpha, descA, descB, descBinit );
 
         CHAMELEON_Desc_Destroy( &descBinit );
     }
diff --git a/new-testing/testing_ztrsm.c b/new-testing/testing_ztrsm.c
index db2e149b549d515dad5033ed0d360f0c6a828bf6..74bfa7bb6989005f0e95fedab57e04e69649af32 100644
--- a/new-testing/testing_ztrsm.c
+++ b/new-testing/testing_ztrsm.c
@@ -85,7 +85,7 @@ testing_ztrsm( run_arg_list_t *args, int check )
             &descBinit, NULL, ChamComplexDouble, nb, nb, nb * nb, LDB, Bn, 0, 0, Bm, Bn, P, Q );
         CHAMELEON_zplrnt_Tile( descBinit, seedB );
 
-        hres += check_ztrmm( CHECK_TRSM, side, uplo, trans, diag, alpha, descA, descB, descBinit );
+        hres += check_ztrmm( args, CHECK_TRSM, side, uplo, trans, diag, alpha, descA, descB, descBinit );
 
         CHAMELEON_Desc_Destroy( &descBinit );
     }
diff --git a/new-testing/testing_ztrtri.c b/new-testing/testing_ztrtri.c
index f168221e188c65d9f1db45e272dc9fa19438f3e9..34eb2092a42e5093ccd3eaf0311a1b6ce4721fc5 100644
--- a/new-testing/testing_ztrtri.c
+++ b/new-testing/testing_ztrtri.c
@@ -61,7 +61,7 @@ testing_ztrtri( run_arg_list_t *args, int check )
         CHAM_desc_t *descA0 = CHAMELEON_Desc_Copy( descA, NULL );
         CHAMELEON_zplghe_Tile( (double)N, uplo, descA0, seedA );
 
-        hres += check_ztrtri( ChamTriangular, uplo, diag, descA0, descA );
+        hres += check_ztrtri( args, ChamTriangular, uplo, diag, descA0, descA );
 
         CHAMELEON_Desc_Destroy( &descA0 );
     }
diff --git a/new-testing/testing_zunglq.c b/new-testing/testing_zunglq.c
index d1882ffc18dcb84d1de9e1c234462e28a6f28ad1..f821da810d68bd8aef3a27bcf7c78f04edeca02b 100644
--- a/new-testing/testing_zunglq.c
+++ b/new-testing/testing_zunglq.c
@@ -80,7 +80,7 @@ testing_zunglq( run_arg_list_t *args, int check )
 
     /* Checks the factorisation and orthogonality */
     if ( check ) {
-        hres += check_zortho( descQ );
+        hres += check_zortho( args, descQ );
     }
 
     CHAMELEON_Desc_Destroy( &descA );
diff --git a/new-testing/testing_zunglq_hqr.c b/new-testing/testing_zunglq_hqr.c
index 12109b3b4f3514bfb974de1e0e8b3937930d5cf4..7051bcbc9a4832e0863100c20aea0d2a73135ad9 100644
--- a/new-testing/testing_zunglq_hqr.c
+++ b/new-testing/testing_zunglq_hqr.c
@@ -88,7 +88,7 @@ testing_zunglq_hqr( run_arg_list_t *args, int check )
 
     /* Checks the factorisation and orthogonality */
     if ( check ) {
-        hres += check_zortho( descQ );
+        hres += check_zortho( args, descQ );
     }
 
     CHAMELEON_Desc_Destroy( &descA );
diff --git a/new-testing/testing_zungqr.c b/new-testing/testing_zungqr.c
index d41176458c0c5ad9214d61ec3ab04fa8b42a720f..7d177fcf0f6aea98000911b55e10305a2c9f262e 100644
--- a/new-testing/testing_zungqr.c
+++ b/new-testing/testing_zungqr.c
@@ -80,7 +80,7 @@ testing_zungqr( run_arg_list_t *args, int check )
 
     /* Checks the factorisation and orthogonality */
     if ( check ) {
-        hres += check_zortho( descQ );
+        hres += check_zortho( args, descQ );
     }
 
     CHAMELEON_Desc_Destroy( &descA );
diff --git a/new-testing/testing_zungqr_hqr.c b/new-testing/testing_zungqr_hqr.c
index bf89f256e85b08bd9c658a5f08ba94f8c1597c67..9735bdf215bfb66f16ee297d52b72cd2768ccc24 100644
--- a/new-testing/testing_zungqr_hqr.c
+++ b/new-testing/testing_zungqr_hqr.c
@@ -88,7 +88,7 @@ testing_zungqr_hqr( run_arg_list_t *args, int check )
 
     /* Checks the factorisation and orthogonality */
     if ( check ) {
-        hres += check_zortho( descQ );
+        hres += check_zortho( args, descQ );
     }
 
     CHAMELEON_Desc_Destroy( &descA );
diff --git a/new-testing/testing_zunmlq.c b/new-testing/testing_zunmlq.c
index 500110f19c0185a1eec5ffcb9bacd47b7cfdc1f9..25caf0dda779aff1795b260a9335d169875a0265 100644
--- a/new-testing/testing_zunmlq.c
+++ b/new-testing/testing_zunmlq.c
@@ -95,7 +95,7 @@ testing_zunmlq( run_arg_list_t *args, int check )
             &descQ, NULL, ChamComplexDouble, nb, nb, nb * nb, An, An, 0, 0, An, An, P, Q );
         CHAMELEON_zunglq_Tile( descA, descT, descQ );
 
-        hres = check_zqc( side, trans, descC0, descQ, descC );
+        hres = check_zqc( args, side, trans, descC0, descQ, descC );
 
         CHAMELEON_Desc_Destroy( &descC0 );
         CHAMELEON_Desc_Destroy( &descQ );
diff --git a/new-testing/testing_zunmlq_hqr.c b/new-testing/testing_zunmlq_hqr.c
index 7214546ebc6fd94ede0bf14aaccd43566892e61f..a3bd3318a5951024d12f431abf54ba641895c35e 100644
--- a/new-testing/testing_zunmlq_hqr.c
+++ b/new-testing/testing_zunmlq_hqr.c
@@ -103,7 +103,7 @@ testing_zunmlq_hqr( run_arg_list_t *args, int check )
             &descQ, NULL, ChamComplexDouble, nb, nb, nb * nb, An, An, 0, 0, An, An, P, Q );
         CHAMELEON_zunglq_param_Tile( &qrtree, descA, descTS, descTT, descQ );
 
-        hres = check_zqc( side, trans, descC0, descQ, descC );
+        hres = check_zqc( args, side, trans, descC0, descQ, descC );
 
         CHAMELEON_Desc_Destroy( &descC0 );
         CHAMELEON_Desc_Destroy( &descQ );
diff --git a/new-testing/testing_zunmqr.c b/new-testing/testing_zunmqr.c
index 3c92116006f4b1e3e4921901259ebbbb6f135cba..7b4f5304c4c4bd8a546439aa7bd4d7ced58f2ed2 100644
--- a/new-testing/testing_zunmqr.c
+++ b/new-testing/testing_zunmqr.c
@@ -95,7 +95,7 @@ testing_zunmqr( run_arg_list_t *args, int check )
             &descQ, NULL, ChamComplexDouble, nb, nb, nb * nb, Am, Am, 0, 0, Am, Am, P, Q );
         CHAMELEON_zungqr_Tile( descA, descT, descQ );
 
-        hres = check_zqc( side, trans, descC0, descQ, descC );
+        hres = check_zqc( args, side, trans, descC0, descQ, descC );
 
         CHAMELEON_Desc_Destroy( &descC0 );
         CHAMELEON_Desc_Destroy( &descQ );
diff --git a/new-testing/testing_zunmqr_hqr.c b/new-testing/testing_zunmqr_hqr.c
index 791cc9d7a993d7323917910f480d5805685dc0f7..45d4f229f9a107edffefde760076394730713073 100644
--- a/new-testing/testing_zunmqr_hqr.c
+++ b/new-testing/testing_zunmqr_hqr.c
@@ -103,7 +103,7 @@ testing_zunmqr_hqr( run_arg_list_t *args, int check )
             &descQ, NULL, ChamComplexDouble, nb, nb, nb * nb, Am, Am, 0, 0, Am, Am, P, Q );
         CHAMELEON_zungqr_param_Tile( &qrtree, descA, descTS, descTT, descQ );
 
-        hres = check_zqc( side, trans, descC0, descQ, descC );
+        hres = check_zqc( args, side, trans, descC0, descQ, descC );
 
         CHAMELEON_Desc_Destroy( &descC0 );
         CHAMELEON_Desc_Destroy( &descQ );
diff --git a/new-testing/values.c b/new-testing/values.c
index 4fe9e61417e442f8983243693b6e952898b86dbe..c07909703eaa37d6b0050570e5654560a4f4fc68 100644
--- a/new-testing/values.c
+++ b/new-testing/values.c
@@ -27,7 +27,6 @@ val_t pread_int( const char *str )
 {
     val_t val;
     val.ival = atoi( str );
-    fprintf( stderr, " %d", val.ival );
     return val;
 }
 
@@ -41,7 +40,6 @@ val_t pread_float( const char *str )
 {
     val_t val;
     val.sval = strtof( str, NULL );
-    fprintf( stderr, " %e", val.sval );
     return val;
 }
 
@@ -55,7 +53,6 @@ val_t pread_double( const char *str )
 {
     val_t val;
     val.dval = strtod( str, NULL );
-    fprintf( stderr, " %le", val.dval );
     return val;
 }
 
@@ -83,7 +80,6 @@ val_t pread_complex32( const char *str )
         val.cval = nan("NaN");
     }
 
-    fprintf( stderr, " (%le,%le)", crealf(val.cval), cimagf(val.cval) );
     return val;
 }
 
@@ -111,7 +107,6 @@ val_t pread_complex64( const char *str )
         val.zval = nan("NaN");
     }
 
-    fprintf( stderr, " (%le,%le)", crealf(val.zval), cimagf(val.zval) );
     return val;
 }
 
@@ -153,7 +148,6 @@ val_t pread_trans( const char *str )
             val.trans = ChamNoTrans;
         }
     }
-    fprintf( stderr, " %d", val.trans );
     return val;
 }
 
@@ -196,7 +190,6 @@ val_t pread_uplo( const char *str )
             val.uplo = ChamUpperLower;
         }
     }
-    fprintf( stderr, " %d", val.uplo );
     return val;
 }
 
@@ -230,7 +223,6 @@ val_t pread_diag( const char *str )
             val.diag = ChamNonUnit;
         }
     }
-    fprintf( stderr, " %d", val.diag );
     return val;
 }
 
@@ -264,7 +256,6 @@ val_t pread_side( const char *str )
             val.side = ChamLeft;
         }
     }
-    fprintf( stderr, " %d", val.side );
     return val;
 }
 
@@ -314,7 +305,6 @@ val_t pread_norm( const char *str )
             val.ntype = ChamOneNorm;
         }
     }
-    fprintf( stderr, " %d", val.ntype );
     return val;
 }
 
@@ -328,7 +318,6 @@ val_t pread_string( const char *str )
 {
     val_t val;
     val.str = strdup( str );
-    fprintf( stderr, " %s", val.str );
     return val;
 }