diff --git a/runtime/starpu/CMakeLists.txt b/runtime/starpu/CMakeLists.txt
index 7f2eab94cd34acadf580ed42f5c858562d927ae4..f01a36b14433bdac07cd795fe24cb865ee0cd228 100644
--- a/runtime/starpu/CMakeLists.txt
+++ b/runtime/starpu/CMakeLists.txt
@@ -33,6 +33,7 @@ cmake_minimum_required(VERSION 3.5)
 
 include(CheckSymbolExists)
 include(CheckStructHasMember)
+include(CheckCSourceRuns)
 
 set(CHAMELEON_STARPU_VERSION "1.3" CACHE STRING "necessary STARPU API version")
 
@@ -90,6 +91,25 @@ if ( STARPU_FOUND )
     message("-- ${Blue}Add definition HAVE_STARPU_REUSE_DATA_ON_NODE${ColourReset}")
   endif()
 
+  # Check if STARPU_NONE equals 0 or not
+  set(C_STARPU_NONE_NONZERO "
+#include <stdio.h>
+#include <stdint.h>
+#include <starpu.h>
+int main() {
+  if (STARPU_NONE == 0)
+    return 1;
+  else
+    return 0;
+}
+")
+
+  unset(HAVE_STARPU_NONE_NONZERO CACHE)
+  check_c_source_runs("${C_STARPU_NONE_NONZERO}" HAVE_STARPU_NONE_NONZERO)
+  if ( HAVE_STARPU_NONE_NONZERO )
+    message("-- ${Blue}Add definition HAVE_STARPU_NONE_NONZERO${ColourReset}")
+  endif()
+
   if (CHAMELEON_USE_MPI)
     # Add MPI in case StarPU don't have a public dependency on it
     check_function_exists(starpu_mpi_init_conf HAVE_STARPU_MPI_INIT_CONF)
diff --git a/runtime/starpu/codelets/codelet_zgetrf_batched.c b/runtime/starpu/codelets/codelet_zgetrf_batched.c
index ab9b96020febfd21331679e8b29444471df7ba1e..d9c55d76cd3fa290ab004ebc854e3d5f4638cf93 100644
--- a/runtime/starpu/codelets/codelet_zgetrf_batched.c
+++ b/runtime/starpu/codelets/codelet_zgetrf_batched.c
@@ -82,7 +82,7 @@ INSERT_TASK_zgetrf_panel_offdiag_batched( const RUNTIME_option_t *options,
     if ( rankA != A->myrank ) {
         return;
     }
-#if !defined ( HAVE_STARPU_NONE_NONZERO )
+#if !defined(HAVE_STARPU_NONE_NONZERO)
     /* STARPU_NONE can't be equal to 0 */
     fprintf( stderr, "INSERT_TASK_zgetrf_percol_diag: STARPU_NONE can not be equal to 0\n" );
     assert( 0 );
@@ -146,7 +146,7 @@ INSERT_TASK_zgetrf_panel_offdiag_batched_flush( const RUNTIME_option_t *options,
     void (*callback)(void*) = NULL;
     struct cl_getrf_batched_args_t *clargs = *clargs_ptr;
     int rankA = A->myrank;
-#if !defined ( HAVE_STARPU_NONE_NONZERO )
+#if !defined(HAVE_STARPU_NONE_NONZERO)
     /* STARPU_NONE can't be equal to 0 */
     fprintf( stderr, "INSERT_TASK_zgetrf_percol_diag: STARPU_NONE can not be equal to 0\n" );
     assert( 0 );
@@ -254,7 +254,7 @@ INSERT_TASK_zgetrf_panel_blocked_batched( const RUNTIME_option_t *options,
     int accessU, access_npiv, access_ipiv, access_ppiv;
     struct cl_getrf_batched_args_t *clargs = *clargs_ptr;
     int rankA = A->get_rankof(A, Am, An);
-#if !defined ( HAVE_STARPU_NONE_NONZERO )
+#if !defined(HAVE_STARPU_NONE_NONZERO)
     /* STARPU_NONE can't be equal to 0 */
     fprintf( stderr, "INSERT_TASK_zgetrf_percol_diag: STARPU_NONE can not be equal to 0\n" );
     assert( 0 );
@@ -359,7 +359,7 @@ INSERT_TASK_zgetrf_panel_blocked_batched_flush( const RUNTIME_option_t *options,
     void (*callback)(void*) = NULL;
     struct cl_getrf_batched_args_t *clargs = *clargs_ptr;
     int rankA = A->myrank;
-#if !defined ( HAVE_STARPU_NONE_NONZERO )
+#if !defined(HAVE_STARPU_NONE_NONZERO)
     /* STARPU_NONE can't be equal to 0 */
     fprintf( stderr, "INSERT_TASK_zgetrf_percol_diag: STARPU_NONE can not be equal to 0\n" );
     assert( 0 );
diff --git a/runtime/starpu/codelets/codelet_zgetrf_blocked.c b/runtime/starpu/codelets/codelet_zgetrf_blocked.c
index fff1d0723bfe40e9db704baf760c4eb7f9a2a4dd..8739f27deb22f8ba019fa85338c4fdcbc0a0d789 100644
--- a/runtime/starpu/codelets/codelet_zgetrf_blocked.c
+++ b/runtime/starpu/codelets/codelet_zgetrf_blocked.c
@@ -98,7 +98,7 @@ void INSERT_TASK_zgetrf_blocked_diag( const RUNTIME_option_t *options,
     void (*callback)(void*) = options->profiling ? cl_zgetrf_blocked_diag_callback : NULL;
     const char *cl_name = "zgetrf_blocked_diag";
     int rankA           = A->get_rankof(A, Am, An);
-#if !defined ( HAVE_STARPU_NONE_NONZERO )
+#if !defined(HAVE_STARPU_NONE_NONZERO)
     /* STARPU_NONE can't be equal to 0 */
     fprintf( stderr, "INSERT_TASK_zgetrf_percol_diag: STARPU_NONE can not be equal to 0\n" );
     assert( 0 );
@@ -228,7 +228,7 @@ void INSERT_TASK_zgetrf_blocked_offdiag( const RUNTIME_option_t *options,
     int access_ppiv = ( h == 0 )       ? STARPU_NONE : STARPU_R;
     int accessU     = ((h%ib == 0) && (h > 0)) ? STARPU_R : STARPU_NONE;
     int rankA       = A->get_rankof(A, Am, An);
-#if !defined ( HAVE_STARPU_NONE_NONZERO )
+#if !defined(HAVE_STARPU_NONE_NONZERO)
     /* STARPU_NONE can't be equal to 0 */
     fprintf( stderr, "INSERT_TASK_zgetrf_percol_diag: STARPU_NONE can not be equal to 0\n" );
     assert( 0 );
diff --git a/runtime/starpu/codelets/codelet_zgetrf_percol.c b/runtime/starpu/codelets/codelet_zgetrf_percol.c
index c8ff33aff13adb61d6282ef71bca27a8164ea6a4..0b556f81605a9cc78faea6fa6e312ffc0e643631 100644
--- a/runtime/starpu/codelets/codelet_zgetrf_percol.c
+++ b/runtime/starpu/codelets/codelet_zgetrf_percol.c
@@ -86,7 +86,8 @@ void INSERT_TASK_zgetrf_percol_diag( const RUNTIME_option_t *options,
     void (*callback)(void*) = options->profiling ? cl_zgetrf_percol_diag_callback : NULL;
     const char *cl_name = "zgetrf_percol_diag";
     int rankA           = A->get_rankof(A, Am, An);
-#if !defined ( HAVE_STARPU_NONE_NONZERO )
+
+#if !defined(HAVE_STARPU_NONE_NONZERO)
     /* STARPU_NONE can't be equal to 0 */
     fprintf( stderr, "INSERT_TASK_zgetrf_percol_diag: STARPU_NONE can not be equal to 0\n" );
     assert( 0 );
@@ -172,7 +173,7 @@ void INSERT_TASK_zgetrf_percol_offdiag( const RUNTIME_option_t *options,
     int access_npiv = ( h == ipiv->n ) ? STARPU_R    : STARPU_REDUX;
     int access_ppiv = ( h == 0 )       ? STARPU_NONE : STARPU_R;
     int rankA       = A->get_rankof(A, Am, An);
-#if !defined ( HAVE_STARPU_NONE_NONZERO )
+#if !defined(HAVE_STARPU_NONE_NONZERO)
     /* STARPU_NONE can't be equal to 0 */
     fprintf( stderr, "INSERT_TASK_zgetrf_percol_diag: STARPU_NONE can not be equal to 0\n" );
     assert( 0 );
diff --git a/runtime/starpu/include/chameleon_starpu.h.in b/runtime/starpu/include/chameleon_starpu.h.in
index 41949dfbb7c345050a5260b47646276c7af57002..6c4632da84520449a2e2c9f96fedef2209d196e9 100644
--- a/runtime/starpu/include/chameleon_starpu.h.in
+++ b/runtime/starpu/include/chameleon_starpu.h.in
@@ -40,6 +40,7 @@
 #cmakedefine HAVE_STARPU_SET_LIMIT_SUBMITTED_TASKS
 #cmakedefine HAVE_STARPU_REUSE_DATA_ON_NODE
 #cmakedefine HAVE_STARPU_PARALLEL_WORKER
+#cmakedefine HAVE_STARPU_NONE_NONZERO
 
 #cmakedefine HAVE_STARPU_MPI_DATA_MIGRATE
 #cmakedefine HAVE_STARPU_MPI_DATA_REGISTER
diff --git a/testing/CTestLists.cmake b/testing/CTestLists.cmake
index a1b637f681ed0bb82a981e65cd26310b03b514b7..c185e50b525c719a7b62422f89d5d5b9a259c435 100644
--- a/testing/CTestLists.cmake
+++ b/testing/CTestLists.cmake
@@ -88,28 +88,25 @@ if (NOT CHAMELEON_SIMULATION)
         if ( CHAMELEON_SCHED_STARPU )
             add_test( test_${cat}_${prec}getrf_nopivpercol ${PREFIX} ${CMD} -c -t ${THREADS} -g ${gpus} -P 1 --diag=ChamUnit -f input/getrf_nopiv.in )
             set_tests_properties( test_${cat}_${prec}getrf_nopivpercol
-                                PROPERTIES ENVIRONMENT "CHAMELEON_GETRF_ALGO=nopivpercolumn;CHAMELEON_GETRF_BATCH_SIZE=1" )
+                                  PROPERTIES ENVIRONMENT "CHAMELEON_GETRF_ALGO=nopivpercolumn;CHAMELEON_GETRF_BATCH_SIZE=0" )
 
-            add_test( test_${cat}_${prec}getrf_ppivpercol ${PREFIX} ${CMD} -c -t ${THREADS} -g ${gpus} -P 1 -f input/getrf_nopiv.in )
-            set_tests_properties( test_${cat}_${prec}getrf_ppivpercol
-                                PROPERTIES ENVIRONMENT "CHAMELEON_GETRF_ALGO=ppivpercolumn;CHAMELEON_GETRF_BATCH_SIZE=1" )
+            if ( HAVE_STARPU_NONE_NONZERO )
+                add_test( test_${cat}_${prec}getrf_ppivpercol ${PREFIX} ${CMD} -c -t ${THREADS} -g ${gpus} -P 1 -f input/getrf_nopiv.in )
+                set_tests_properties( test_${cat}_${prec}getrf_ppivpercol
+                                    PROPERTIES ENVIRONMENT "CHAMELEON_GETRF_ALGO=ppivpercolumn;CHAMELEON_GETRF_BATCH_SIZE=0" )
 
-            if ( ${cat} STREQUAL "shm" )
                 add_test( test_${cat}_${prec}getrf_ppivpercol_batch ${PREFIX} ${CMD} -c -t ${THREADS} -g ${gpus} -P 1 -f input/getrf_nopiv.in )
                 set_tests_properties( test_${cat}_${prec}getrf_ppivpercol_batch
                                     PROPERTIES ENVIRONMENT "CHAMELEON_GETRF_ALGO=ppivpercolumn;CHAMELEON_GETRF_BATCH_SIZE=6" )
-            endif()
 
-            add_test( test_${cat}_${prec}getrf_ppiv ${PREFIX} ${CMD} -c -t ${THREADS} -g ${gpus} -P 1 -f input/getrf.in )
-            set_tests_properties( test_${cat}_${prec}getrf_ppiv
-                                PROPERTIES ENVIRONMENT "CHAMELEON_GETRF_ALGO=ppiv;CHAMELEON_GETRF_BATCH_SIZE=1" )
+                add_test( test_${cat}_${prec}getrf_ppiv ${PREFIX} ${CMD} -c -t ${THREADS} -g ${gpus} -P 1 -f input/getrf.in )
+                set_tests_properties( test_${cat}_${prec}getrf_ppiv
+                                    PROPERTIES ENVIRONMENT "CHAMELEON_GETRF_ALGO=ppiv;CHAMELEON_GETRF_BATCH_SIZE=0" )
 
-            if ( ${cat} STREQUAL "shm" )
                 add_test( test_${cat}_${prec}getrf_ppiv_batch ${PREFIX} ${CMD} -c -t ${THREADS} -g ${gpus} -P 1 -f input/getrf.in )
                 set_tests_properties( test_${cat}_${prec}getrf_ppiv_batch
-                                      PROPERTIES ENVIRONMENT "CHAMELEON_GETRF_ALGO=ppiv;CHAMELEON_GETRF_BATCH_SIZE=6" )
+                                    PROPERTIES ENVIRONMENT "CHAMELEON_GETRF_ALGO=ppiv;CHAMELEON_GETRF_BATCH_SIZE=6" )
             endif()
-
         endif()
 
         list( REMOVE_ITEM TESTSTMP print gepdf_qr )