Index: OS/dev/dev_trunk_omp/GENERIC_TESTCASE/CMakeLists.txt
===================================================================
--- /XIOS/dev/dev_trunk_omp/GENERIC_TESTCASE/CMakeLists.txt	(revision 1736)
+++ 	(revision )
@@ -1,35 +1,0 @@
-##############################
-# file generated by setup.py #
-#      DO NOT modify         #
-##############################
-
-cmake_minimum_required(VERSION 2.8.12.2)
-
-project(generic_testcase)
-
-enable_testing()
-
-add_subdirectory(test_domain_algo)
-add_subdirectory(test_scalar_algo)
-add_subdirectory(test_function)
-add_subdirectory(test_axis_algo)
-add_subdirectory(test_grid_algo)
-
-add_custom_target("report")
-
-add_custom_command(TARGET "report" 
-                   POST_BUILD
-                   COMMAND rm -f report.txt
-                   COMMAND rm -f report.html
-                   COMMAND cat test_domain_algo/report.txt >> report.txt
-                   COMMAND cat test_domain_algo/report.html >> report.html
-                   COMMAND cat test_scalar_algo/report.txt >> report.txt
-                   COMMAND cat test_scalar_algo/report.html >> report.html
-                   COMMAND cat test_function/report.txt >> report.txt
-                   COMMAND cat test_function/report.html >> report.html
-                   COMMAND cat test_axis_algo/report.txt >> report.txt
-                   COMMAND cat test_axis_algo/report.html >> report.html
-                   COMMAND cat test_grid_algo/report.txt >> report.txt
-                   COMMAND cat test_grid_algo/report.html >> report.html
-                   )
-
Index: /XIOS/dev/dev_trunk_omp/GENERIC_TESTCASE/check.py
===================================================================
--- /XIOS/dev/dev_trunk_omp/GENERIC_TESTCASE/check.py	(revision 1736)
+++ /XIOS/dev/dev_trunk_omp/GENERIC_TESTCASE/check.py	(revision 1737)
@@ -8,15 +8,13 @@
 
 def OSinfo(runthis):
+	red = lambda text: '\033[0;31m' + text + '\033[0m'
 	osstdout = subprocess.Popen(runthis, shell=True, stdin=subprocess.PIPE, stdout=subprocess.PIPE, stderr=subprocess.STDOUT, close_fds=True)
 	theInfo = osstdout.communicate()[0].strip()
-	# print(theInfo)
-	# print(osstdout.returncode)
-	# return (osstdout.returncode)
-
 	if osstdout.returncode!=0:
+		print(red(runthis+" FAILED"))
 		print >> sys.stderr, osstdout.returncode
 		sys.exit()
-	else:
-		print(runthis+" OK")
+	# else:
+		# print(runthis+" OK")
 
 
@@ -62,4 +60,5 @@
 		
 	
+
 	configName = "config"
 	defaultConfig = True
@@ -83,18 +82,17 @@
 		print blue("    ****************************************************************\n")
 
-		# os.mkdir(configName+'/setup')
-		os.system("mkdir "+configName+'/setup')
-		os.mkdir(configName+'/tmp_reference')
-		os.mkdir(configName+'/xios_output')
-		
-		os.system('mv param.def '+configName+'/setup/')
-		os.system('mv all_param.def '+configName+'/setup/')
-		os.system('mv user_param.py '+configName+'/setup/')
-		os.system('mv iodef.xml '+configName+'/setup/')
-		os.system('cp context_atm.xml '+configName+'/setup/')
-		os.system('cp context_grid_dynamico.xml '+configName+'/setup/')
-		os.system('cp dynamico_grid.nc '+configName+'/setup/')
-		os.system('mv xios_*.out '+configName+'/xios_output/')
-		os.system('mv xios_*.err '+configName+'/xios_output/')
+		OSinfo("mkdir "+configName+'/setup')
+		OSinfo('mkdir '+configName+'/tmp_reference')
+		OSinfo('mkdir '+configName+'/xios_output')
+		
+		OSinfo('mv param.def '+configName+'/setup/')
+		OSinfo('mv all_param.def '+configName+'/setup/')
+		OSinfo('mv user_param.py '+configName+'/setup/')
+		OSinfo('mv iodef.xml '+configName+'/setup/')
+		OSinfo('cp context_atm.xml '+configName+'/setup/')
+		OSinfo('cp context_grid_dynamico.xml '+configName+'/setup/')
+		OSinfo('cp dynamico_grid.nc '+configName+'/setup/')
+		OSinfo('mv xios_*.out '+configName+'/xios_output/')
+		OSinfo('mv xios_*.err '+configName+'/xios_output/')
 		
 
@@ -114,5 +112,5 @@
 					if thisfile.endswith(".nc") and thisfile!="dynamico_grid.nc":
 						cmd = 'mv '+thisfile + ' '+configName+'/tmp_reference/'
-						os.system(cmd)	
+						OSinfo(cmd)	
 				
 				h.write("test for "+lpurple("all NC files")+"     \t"+yellow('INITIALIZED')+"\n")		
@@ -126,5 +124,5 @@
 			if not line.startswith("#") and len(line) != 0:
 				cmd = 'mv '+line + ' '+configName+'/tmp_reference/'
-				os.system(cmd)
+				OSinfo(cmd)
 
 				h.write("test for "+lpurple(line)+"     \t"+yellow('INITIALIZED')+"\n")		
@@ -239,18 +237,19 @@
 
 		if not os.path.exists('current_run'):
-			os.mkdir('current_run')
+			OSinfo('mkdir current_run')
 
 		if not os.path.exists('current_run/'+configName):
-			os.mkdir('current_run/'+configName)
-		os.system('mv -f param.def current_run/'+configName)
-		os.system('mv -f all_param.def current_run/'+configName)
-		os.system('mv -f user_param.py current_run/'+configName)
-		os.system('mv -f iodef.xml current_run/'+configName)
-		os.system('rm -f current_run/'+configName+'/context_atm.xml')
-		os.system('cp -n context_atm.xml current_run/'+configName)
-		os.system('cp -f context_grid_dynamico.xml current_run/'+configName)
-		os.system('cp -f dynamico_grid.nc current_run/'+configName)
-		os.system('mv -f xios_*.out current_run/'+configName)
-		os.system('mv -f xios_*.err current_run/'+configName)
+			OSinfo('mkdir current_run/'+configName)
+
+		OSinfo('mv -f param.def current_run/'+configName)
+		OSinfo('mv -f all_param.def current_run/'+configName)
+		OSinfo('mv -f user_param.py current_run/'+configName)
+		OSinfo('mv -f iodef.xml current_run/'+configName)
+		OSinfo('rm -f current_run/'+configName+'/context_atm.xml')
+		OSinfo('cp -n context_atm.xml current_run/'+configName)
+		OSinfo('cp -f context_grid_dynamico.xml current_run/'+configName)
+		OSinfo('cp -f dynamico_grid.nc current_run/'+configName)
+		OSinfo('mv -f xios_*.out current_run/'+configName)
+		OSinfo('mv -f xios_*.err current_run/'+configName)
 
 
Index: /XIOS/dev/dev_trunk_omp/GENERIC_TESTCASE/job_jz.sh
===================================================================
--- /XIOS/dev/dev_trunk_omp/GENERIC_TESTCASE/job_jz.sh	(revision 1736)
+++ /XIOS/dev/dev_trunk_omp/GENERIC_TESTCASE/job_jz.sh	(revision 1737)
@@ -34,4 +34,16 @@
 
 # python user_config.py
+
+rm -f setup.sh
+touch setup.sh
+>setup.sh
+for i in $(ls -d test_*/)
+do
+  cp setup.py ${i%%/}      
+  cp run_sub_test.sh ${i%%/}      
+  echo "bash -c \"cd " ${i%%/} " && python setup.py\" ">> setup.sh
+  echo "echo \"setup.py called from " ${i%%/} "\"">> setup.sh
+done
+
 export output=$(python user_config.py 2>&1 >/dev/null)
 
@@ -44,7 +56,16 @@
 fi
 
+
 cmake .
-ctest -V 
+# ctest -V 
+ctest --output-on-failure
 make report
+
+
+rm -f test_*/setup.py
+rm -f test_*/run_sub_test.sh
+rm -f test_*/run_test_*.py
+rm -f test_*/CMakeLists.txt
+
 
 #srun --mpi=pmi2 -K1 --multi-prog -m cyclic ./srun.conf
Index: /XIOS/dev/dev_trunk_omp/GENERIC_TESTCASE/run_sub_test.sh
===================================================================
--- /XIOS/dev/dev_trunk_omp/GENERIC_TESTCASE/run_sub_test.sh	(revision 1737)
+++ /XIOS/dev/dev_trunk_omp/GENERIC_TESTCASE/run_sub_test.sh	(revision 1737)
@@ -0,0 +1,75 @@
+#!/bin/bash
+
+cp ../context_grid_dynamico.xml ./
+cp ../dynamico_grid.nc ./
+cp ../config.py sub_config.py
+cp ../check.py sub_check.py
+cp ../default_param.py default_param.py
+
+
+# Black        0;30     Dark Gray     1;30
+# Red          0;31     Light Red     1;31
+# Green        0;32     Light Green   1;32
+# Brown/Orange 0;33     Yellow        1;33
+# Blue         0;34     Light Blue    1;34
+# Purple       0;35     Light Purple  1;35
+# Cyan         0;36     Light Cyan    1;36
+# Light Gray   0;37     White         1;37
+
+
+{ nb_proc=$(python sub_config.py 2>&1 1>&3-) ;} 3>&1
+# nb_proc=$(python sub_config.py 2>&1) 
+
+machine_name=jeanzay
+
+# echo $nb_proc
+if [[ ($machine_name == irene) ]]
+then
+    echo "Testing on Irene"
+    ccc_mprun -n $nb_proc ../../build_prod/bin/generic_testcase.exe
+elif [[($machine_name == ada)]]
+then
+    echo "Testing on ADA"
+    mpirun -np $nb_proc ../../build_prod/bin/generic_testcase.exe
+elif [[($machine_name == jeanzay)]]
+then
+    echo "Testing on Jean-Zay" 
+    srun -n $nb_proc --mpi=pmi2 ../../build_prod/bin/generic_testcase.exe
+    if [ $? -ne 0 ]
+        then
+            echo "execution failed"
+            rm -f iodef.xml
+            rm -f user_param.py
+            rm -f default_param.py
+            rm -f sub_config.py
+            rm -f sub_check.py
+            exit 1234
+    fi
+else
+    echo "other machine"
+    exit 1234
+fi
+
+
+{ check_stderr=$(python sub_check.py 2>&1 1>&3-) ;} 3>&1  #captures stderr, letting stdout through
+# check_stderr=$(python sub_check.py 2>&1 >/dev/null)
+
+if [[ "$check_stderr" -ne 0 ]]
+then
+    echo "check.py failed"
+    rm -f iodef.xml
+    rm -f user_param.py
+    rm -f default_param.py
+    rm -f sub_config.py
+    rm -f sub_check.py
+    exit 1234
+# else
+#     echo "check.py OK"
+fi
+
+
+rm -f iodef.xml
+rm -f user_param.py
+rm -f default_param.py
+rm -f sub_config.py
+rm -f sub_check.py
Index: /XIOS/dev/dev_trunk_omp/GENERIC_TESTCASE/setup.py
===================================================================
--- /XIOS/dev/dev_trunk_omp/GENERIC_TESTCASE/setup.py	(revision 1737)
+++ /XIOS/dev/dev_trunk_omp/GENERIC_TESTCASE/setup.py	(revision 1737)
@@ -0,0 +1,171 @@
+import os
+import sys
+
+
+def main():
+
+	black = lambda text: '\033[0;30m' + text + '\033[0m'
+	red = lambda text: '\033[0;31m' + text + '\033[0m'
+	green = lambda text: '\033[0;32m' + text + '\033[0m'
+	yellow = lambda text: '\033[0;33m' + text + '\033[0m'
+	blue = lambda text: '\033[0;34m' + text + '\033[0m'
+	magenta = lambda text: '\033[0;35m' + text + '\033[0m'
+	cyan = lambda text: '\033[0;36m' + text + '\033[0m'
+	lgray = lambda text: '\033[0;37m' + text + '\033[0m'
+	dgray = lambda text: '\033[1;30m' + text + '\033[0m'
+	lred = lambda text: '\033[1;32m' + text + '\033[0m'
+	lgreen = lambda text: '\033[1;32m' + text + '\033[0m'
+	lyellow = lambda text: '\033[1;33m' + text + '\033[0m'
+	lblue = lambda text: '\033[1;34m' + text + '\033[0m'
+	lpurple = lambda text: '\033[1;35m' + text + '\033[0m'
+	lcyan = lambda text: '\033[1;36m' + text + '\033[0m'
+	white = lambda text: '\033[1;37m' + text + '\033[0m'
+
+	default_nb_config = 7
+
+	nb_config = 1;
+	configs = [0]*default_nb_config
+	 
+	configs_arg = [[], [], [], [], [], [], []] 
+
+	f=open("user_params.def", "r")
+	for line in f:
+		line = line.strip()
+		if len(line) != 0:
+			if not line.startswith("#"):
+				nb_config = nb_config * (line.count(",")+1)
+				line = line.replace(",", "")
+				line = line.replace("=", "")
+				if line.startswith("UsingServer2"):
+					line = line.replace("UsingServer2", "")
+					for word in line.split():
+						configs[0] += 1
+						configs_arg[0].append('UsingServer2 = '+word)
+				elif line.startswith("RatioServer2"):
+					line = line.replace("RatioServer2", "")
+					for word in line.split():
+						configs[1] += 1
+						configs_arg[1].append('RatioServer2 = '+word)
+				elif line.startswith("NumberPoolsServer2"):
+					line = line.replace("NumberPoolsServer2", "")
+					for word in line.split():
+						configs[2] += 1
+						configs_arg[2].append('NumberPoolsServer2 = '+word)
+				elif line.startswith("NumberClients"):
+					line = line.replace("NumberClients", "")
+					for word in line.split():
+						configs[3] += 1
+						configs_arg[3].append('NumberClients = '+word)
+				elif line.startswith("NumberServers"):
+					line = line.replace("NumberServers", "")
+					for word in line.split():
+						configs[4] += 1
+						configs_arg[4].append('NumberServers = '+word)
+				elif line.startswith("Duration"):
+					line = line.replace("Duration", "")
+					for word in line.split():
+						configs[5] += 1
+						configs_arg[5].append('Duration = '+word)
+				elif line.startswith("ATMdomain"):
+					line = line.replace("ATMdomain", "")
+					for word in line.split():
+						configs[6] += 1
+						configs_arg[6].append('ATMdomain = '+word)
+
+				
+	for x in range(default_nb_config):
+		if configs[x]==0:
+			configs[x] =1
+
+	config_id=0
+	for i0 in range(configs[0]):
+		hasContent0 = len(configs_arg[0])>0
+		for i1 in range(configs[1]):
+			hasContent1 = len(configs_arg[1])>0
+			for i2 in range(configs[2]):
+				hasContent2 = len(configs_arg[2])>0
+				for i3 in range(configs[3]):
+					hasContent3 = len(configs_arg[3])>0
+					for i4 in range(configs[4]):
+						hasContent4 = len(configs_arg[4])>0
+						for i5 in range(configs[5]):
+							hasContent5 = len(configs_arg[5])>0
+							for i6 in range(configs[6]):
+								hasContent6 = len(configs_arg[6])>0
+
+								filename = "user_param.py."+repr(config_id)
+								g = open(filename, "w")
+
+								if hasContent0: g.write(configs_arg[0][i0]+'\n')
+								if hasContent1: g.write(configs_arg[1][i1]+'\n')
+								if hasContent2: g.write(configs_arg[2][i2]+'\n')
+								if hasContent3: g.write(configs_arg[3][i3]+'\n')
+								if hasContent4: g.write(configs_arg[4][i4]+'\n')
+								if hasContent5: g.write(configs_arg[5][i5]+'\n')
+								if hasContent6: g.write(configs_arg[6][i6]+'\n')
+							
+								config_id +=1
+								g.close
+
+
+
+	f=open("CMakeLists.txt", "w")
+	f.write("##############################\n")
+	f.write("# file generated by setup.py #\n")
+	f.write("#      DO NOT modify         #\n")
+	f.write("##############################\n\n")
+	f.write("cmake_minimum_required(VERSION 2.8.12.2)\n\n")
+	f.write("project(generic_testcase)\n\n")
+	f.write("find_package(PythonInterp REQUIRED)\n\n")
+	f.write("enable_testing()\n\n")
+	dirpath = os.getcwd()
+	foldername = os.path.basename(os.getcwd())
+
+
+	for x in range(nb_config):
+		f.write("add_test( NAME "+foldername+"_config"+repr(x)+'\n')
+		f.write("          COMMAND ${PYTHON_EXECUTABLE}\n")
+		f.write("          ${CMAKE_CURRENT_BINARY_DIR}/run_test_"+repr(x)+".py\n")
+		f.write("          "+foldername+"_config"+repr(x)+")\n\n")
+
+		f.write("set_tests_properties("+foldername+"_config"+repr(x)+" PROPERTIES\n")
+		f.write("                      FAIL_REGULAR_EXPRESSION \"check.py failed;execution failed;failed;setup.sh failed\")\n\n")
+
+		g=open("run_test_"+repr(x)+".py", "w")
+		g.write("##############################\n")
+		g.write("# file generated by setup.py #\n")
+		g.write("#      DO NOT modify         #\n")
+		g.write("##############################\n\n")
+		g.write("import os\n")
+		g.write("import sys\n")
+		g.write("import subprocess\n")
+		# g.write("\ndef OSinfo(runthis):\n")
+		# g.write("	osstdout = subprocess.Popen(runthis, shell=True, stdin=subprocess.PIPE, stdout=subprocess.PIPE, stderr=subprocess.STDOUT, close_fds=True)\n")
+		# g.write("	theInfo = osstdout.communicate()[0].strip()\n")
+		# g.write("	if osstdout.returncode!=0:\n")
+		# g.write("		print(runthis+\" failed\")\n")
+		# g.write("		print >> sys.stderr, osstdout.returncode\n")
+		# g.write("		sys.exit()\n")
+		# g.write("	else:\n")
+		# g.write("		print(runthis+\" OK\")\n")
+
+		g.write("\ndef main():\n")
+		g.write("	os.system(\'rm -f user_param.py\')\n")
+		g.write("	os.system(\'cp user_param.py."+repr(x)+" user_param.py\')\n")
+		g.write("	os.system(\'./run_sub_test.sh\')\n")
+		g.write("if __name__== \"__main__\":\n")
+		g.write("	main()\n")
+		g.close
+		 
+	f.close
+
+	f=open("report.txt", "w")
+	g=open("report.html", "w")
+	f.write("\n\n\nin "+cyan(foldername)+" ...\n\n")
+	g.write("<br><br><br><p>in <font color=\"blue\">"+foldername+"</font> ...</p><br><br>")
+	f.close
+	g.close
+
+
+if __name__== "__main__":
+  main()
Index: OS/dev/dev_trunk_omp/GENERIC_TESTCASE/test_axis_algo/CMakeLists.txt
===================================================================
--- /XIOS/dev/dev_trunk_omp/GENERIC_TESTCASE/test_axis_algo/CMakeLists.txt	(revision 1736)
+++ 	(revision )
@@ -1,23 +1,0 @@
-##############################
-# file generated by setup.py #
-#      DO NOT modify         #
-##############################
-
-cmake_minimum_required(VERSION 2.8.12.2)
-
-project(generic_testcase)
-
-find_package(PythonInterp REQUIRED)
-
-enable_testing()
-
-add_test( NAME test_axis_algo_config0
-          COMMAND ${PYTHON_EXECUTABLE}
-          ${CMAKE_CURRENT_BINARY_DIR}/run_test_0.py
-          test_axis_algo_config0)
-
-add_test( NAME test_axis_algo_config1
-          COMMAND ${PYTHON_EXECUTABLE}
-          ${CMAKE_CURRENT_BINARY_DIR}/run_test_1.py
-          test_axis_algo_config1)
-
Index: /XIOS/dev/dev_trunk_omp/GENERIC_TESTCASE/test_axis_algo/job_jz.sh
===================================================================
--- /XIOS/dev/dev_trunk_omp/GENERIC_TESTCASE/test_axis_algo/job_jz.sh	(revision 1736)
+++ /XIOS/dev/dev_trunk_omp/GENERIC_TESTCASE/test_axis_algo/job_jz.sh	(revision 1737)
@@ -33,13 +33,16 @@
 export machine_name=jeanzay
 
+cp ../setup.py ./
+cp ../run_sub_test.sh ./
+
 python setup.py
 
 cmake .
-ctest -V
 
-#./run_sub_test.sh
+#ctest --output-on-failure #enable output only when test failed
 
-#srun --mpi=pmi2 -K1 --multi-prog -m cyclic ./srun.conf
-#srun --mpi=pmi2 ../bin/test_client.exe
+ctest -V #enable all output
 
-
+rm -f setup.py run_sub_test.sh
+rm -f run_test_*.py
+rm -f user_param.py.*
Index: OS/dev/dev_trunk_omp/GENERIC_TESTCASE/test_axis_algo/run_sub_test.sh
===================================================================
--- /XIOS/dev/dev_trunk_omp/GENERIC_TESTCASE/test_axis_algo/run_sub_test.sh	(revision 1736)
+++ 	(revision )
@@ -1,76 +1,0 @@
-#!/bin/bash
-
-
-
-cp ../context_grid_dynamico.xml ./
-cp ../dynamico_grid.nc ./
-
-cp ../config.py sub_config.py
-cp ../check.py sub_check.py
-
-cp ../default_param.py default_param.py
-
-
-# Black        0;30     Dark Gray     1;30
-# Red          0;31     Light Red     1;31
-# Green        0;32     Light Green   1;32
-# Brown/Orange 0;33     Yellow        1;33
-# Blue         0;34     Light Blue    1;34
-# Purple       0;35     Light Purple  1;35
-# Cyan         0;36     Light Cyan    1;36
-# Light Gray   0;37     White         1;37
-
-
-
-nb_proc=$(python sub_config.py 2>&1) 
-
-machine_name=jeanzay
-
-# echo $nb_proc
-if [[ ($machine_name == irene) ]]
-then
-    echo "Testing on Irene"
-    ccc_mprun -n $nb_proc ../../build_prod/bin/generic_testcase.exe
-elif [[($machine_name == ada)]]
-then
-    echo "Testing on ADA"
-    mpirun -np $nb_proc ../../build_prod/bin/generic_testcase.exe
-elif [[($machine_name == jeanzay)]]
-then
-    echo "Testing on Jean-Zay" 
-    srun -n $nb_proc --mpi=pmi2 ../../build_prod/bin/generic_testcase.exe
-    if [ $? -ne 0 ]
-        then
-            echo "execution failed"
-            rm -f iodef.xml
-            rm -f user_param.py
-            rm -f default_param.py
-            rm -f sub_config.py
-            rm -f sub_check.py
-            exit 1234
-    fi
-else
-    echo "other machine"
-    exit 1234
-fi
-
-check_output=$(python sub_check.py 2>&1 >/dev/null)
-if [[ "$check_output" -ne 0 ]]
-then
-    echo "check.py failed"
-    rm -f iodef.xml
-    rm -f user_param.py
-    rm -f default_param.py
-    rm -f sub_config.py
-    rm -f sub_check.py
-    exit 1
-else
-    echo "check.py OK"
-fi
-
-
-rm -f iodef.xml
-rm -f user_param.py
-rm -f default_param.py
-rm -f sub_config.py
-rm -f sub_check.py
Index: OS/dev/dev_trunk_omp/GENERIC_TESTCASE/test_axis_algo/setup.py
===================================================================
--- /XIOS/dev/dev_trunk_omp/GENERIC_TESTCASE/test_axis_algo/setup.py	(revision 1736)
+++ 	(revision )
@@ -1,158 +1,0 @@
-import os
-import sys
-
-
-def main():
-
-	black = lambda text: '\033[0;30m' + text + '\033[0m'
-	red = lambda text: '\033[0;31m' + text + '\033[0m'
-	green = lambda text: '\033[0;32m' + text + '\033[0m'
-	yellow = lambda text: '\033[0;33m' + text + '\033[0m'
-	blue = lambda text: '\033[0;34m' + text + '\033[0m'
-	magenta = lambda text: '\033[0;35m' + text + '\033[0m'
-	cyan = lambda text: '\033[0;36m' + text + '\033[0m'
-	lgray = lambda text: '\033[0;37m' + text + '\033[0m'
-	dgray = lambda text: '\033[1;30m' + text + '\033[0m'
-	lred = lambda text: '\033[1;32m' + text + '\033[0m'
-	lgreen = lambda text: '\033[1;32m' + text + '\033[0m'
-	lyellow = lambda text: '\033[1;33m' + text + '\033[0m'
-	lblue = lambda text: '\033[1;34m' + text + '\033[0m'
-	lpurple = lambda text: '\033[1;35m' + text + '\033[0m'
-	lcyan = lambda text: '\033[1;36m' + text + '\033[0m'
-	white = lambda text: '\033[1;37m' + text + '\033[0m'
-
-	default_nb_config = 7
-
-	nb_config = 1;
-	configs = [0]*default_nb_config
-	 
-	configs_arg = [[], [], [], [], [], [], []] 
-
-	f=open("user_params.def", "r")
-	for line in f:
-		line = line.strip()
-		if len(line) != 0:
-			if not line.startswith("#"):
-				nb_config = nb_config * (line.count(",")+1)
-				line = line.replace(",", "")
-				line = line.replace("=", "")
-				if line.startswith("UsingServer2"):
-					line = line.replace("UsingServer2", "")
-					for word in line.split():
-						configs[0] += 1
-						configs_arg[0].append('UsingServer2 = '+word)
-				elif line.startswith("RatioServer2"):
-					line = line.replace("RatioServer2", "")
-					for word in line.split():
-						configs[1] += 1
-						configs_arg[1].append('RatioServer2 = '+word)
-				elif line.startswith("NumberPoolsServer2"):
-					line = line.replace("NumberPoolsServer2", "")
-					for word in line.split():
-						configs[2] += 1
-						configs_arg[2].append('NumberPoolsServer2 = '+word)
-				elif line.startswith("NumberClients"):
-					line = line.replace("NumberClients", "")
-					for word in line.split():
-						configs[3] += 1
-						configs_arg[3].append('NumberClients = '+word)
-				elif line.startswith("NumberServers"):
-					line = line.replace("NumberServers", "")
-					for word in line.split():
-						configs[4] += 1
-						configs_arg[4].append('NumberServers = '+word)
-				elif line.startswith("Duration"):
-					line = line.replace("Duration", "")
-					for word in line.split():
-						configs[5] += 1
-						configs_arg[5].append('Duration = '+word)
-				elif line.startswith("ATMdomain"):
-					line = line.replace("ATMdomain", "")
-					for word in line.split():
-						configs[6] += 1
-						configs_arg[6].append('ATMdomain = '+word)
-
-				
-	for x in range(default_nb_config):
-		if configs[x]==0:
-			configs[x] =1
-
-	config_id=0
-	for i0 in range(configs[0]):
-		hasContent0 = len(configs_arg[0])>0
-		for i1 in range(configs[1]):
-			hasContent1 = len(configs_arg[1])>0
-			for i2 in range(configs[2]):
-				hasContent2 = len(configs_arg[2])>0
-				for i3 in range(configs[3]):
-					hasContent3 = len(configs_arg[3])>0
-					for i4 in range(configs[4]):
-						hasContent4 = len(configs_arg[4])>0
-						for i5 in range(configs[5]):
-							hasContent5 = len(configs_arg[5])>0
-							for i6 in range(configs[6]):
-								hasContent6 = len(configs_arg[6])>0
-
-								filename = "user_param.py."+repr(config_id)
-								g = open(filename, "w")
-
-								if hasContent0: g.write(configs_arg[0][i0]+'\n')
-								if hasContent1: g.write(configs_arg[1][i1]+'\n')
-								if hasContent2: g.write(configs_arg[2][i2]+'\n')
-								if hasContent3: g.write(configs_arg[3][i3]+'\n')
-								if hasContent4: g.write(configs_arg[4][i4]+'\n')
-								if hasContent5: g.write(configs_arg[5][i5]+'\n')
-								if hasContent6: g.write(configs_arg[6][i6]+'\n')
-							
-								config_id +=1
-								g.close
-
-
-
-	f=open("CMakeLists.txt", "w")
-	f.write("##############################\n")
-	f.write("# file generated by setup.py #\n")
-	f.write("#      DO NOT modify         #\n")
-	f.write("##############################\n\n")
-	f.write("cmake_minimum_required(VERSION 2.8.12.2)\n\n")
-	f.write("project(generic_testcase)\n\n")
-	f.write("find_package(PythonInterp REQUIRED)\n\n")
-	f.write("enable_testing()\n\n")
-	dirpath = os.getcwd()
-	foldername = os.path.basename(os.getcwd())
-
-
-	for x in range(nb_config):
-		f.write("add_test( NAME "+foldername+"_config"+repr(x)+'\n')
-		f.write("          COMMAND ${PYTHON_EXECUTABLE}\n")
-		f.write("          ${CMAKE_CURRENT_BINARY_DIR}/run_test_"+repr(x)+".py\n")
-		f.write("          "+foldername+"_config"+repr(x)+")\n\n")
-
-		g=open("run_test_"+repr(x)+".py", "w")
-		g.write("##############################\n")
-		g.write("# file generated by setup.py #\n")
-		g.write("#      DO NOT modify         #\n")
-		g.write("##############################\n\n")
-		g.write("import os\n")
-		g.write("import sys\n")
-		g.write("import subprocess\n")
-		g.write("def main():\n")
-		g.write("	os.system(\'rm -f user_param.py\')\n")
-		g.write("	os.system(\'cp user_param.py."+repr(x)+" user_param.py\')\n")
-		g.write("	os.system(\'./run_sub_test.sh\')\n")
-		g.write("if __name__== \"__main__\":\n")
-		g.write("	main()\n")
-		g.close
-		 
-	f.close
-
-	f=open("report.txt", "w")
-	g=open("report.html", "w")
-	f.write("\n\n\nin "+cyan(foldername)+" ...\n\n")
-	g.write("<br><br><br><p>in <font color=\"blue\">"+foldername+"</font> ...</p><br><br>")
-	f.close
-	g.close
-
-
-if __name__== "__main__":
-  main()
Index: OS/dev/dev_trunk_omp/GENERIC_TESTCASE/test_domain_algo/CMakeLists.txt
===================================================================
--- /XIOS/dev/dev_trunk_omp/GENERIC_TESTCASE/test_domain_algo/CMakeLists.txt	(revision 1736)
+++ 	(revision )
@@ -1,33 +1,0 @@
-##############################
-# file generated by setup.py #
-#      DO NOT modify         #
-##############################
-
-cmake_minimum_required(VERSION 2.8.12.2)
-
-project(generic_testcase)
-
-find_package(PythonInterp REQUIRED)
-
-enable_testing()
-
-add_test( NAME test_domain_algo_config0
-          COMMAND ${PYTHON_EXECUTABLE}
-          ${CMAKE_CURRENT_BINARY_DIR}/run_test_0.py
-          test_domain_algo_config0)
-
-add_test( NAME test_domain_algo_config1
-          COMMAND ${PYTHON_EXECUTABLE}
-          ${CMAKE_CURRENT_BINARY_DIR}/run_test_1.py
-          test_domain_algo_config1)
-
-add_test( NAME test_domain_algo_config2
-          COMMAND ${PYTHON_EXECUTABLE}
-          ${CMAKE_CURRENT_BINARY_DIR}/run_test_2.py
-          test_domain_algo_config2)
-
-add_test( NAME test_domain_algo_config3
-          COMMAND ${PYTHON_EXECUTABLE}
-          ${CMAKE_CURRENT_BINARY_DIR}/run_test_3.py
-          test_domain_algo_config3)
-
Index: /XIOS/dev/dev_trunk_omp/GENERIC_TESTCASE/test_domain_algo/job_jz.sh
===================================================================
--- /XIOS/dev/dev_trunk_omp/GENERIC_TESTCASE/test_domain_algo/job_jz.sh	(revision 1736)
+++ /XIOS/dev/dev_trunk_omp/GENERIC_TESTCASE/test_domain_algo/job_jz.sh	(revision 1737)
@@ -33,12 +33,17 @@
 export machine_name=jeanzay
 
+cp ../setup.py ./
+cp ../run_sub_test.sh ./
+
 python setup.py
 
 cmake .
-ctest -V
-#./run_sub_test.sh
 
-#srun --mpi=pmi2 -K1 --multi-prog -m cyclic ./srun.conf
-#srun --mpi=pmi2 ../bin/test_client.exe
+ctest --output-on-failure #enable output only when test failed
 
+#ctest -V #enable all output
 
+rm -f setup.py run_sub_test.sh
+rm -f run_test_*.py
+rm -f user_param.py.*
+
Index: OS/dev/dev_trunk_omp/GENERIC_TESTCASE/test_domain_algo/run_sub_test.sh
===================================================================
--- /XIOS/dev/dev_trunk_omp/GENERIC_TESTCASE/test_domain_algo/run_sub_test.sh	(revision 1736)
+++ 	(revision )
@@ -1,64 +1,0 @@
-#!/bin/bash
-
-
-
-cp ../context_grid_dynamico.xml ./
-cp ../dynamico_grid.nc ./
-
-cp ../config.py sub_config.py
-cp ../check.py sub_check.py
-
-cp ../default_param.py default_param.py
-
-
-
-# Black        0;30     Dark Gray     1;30
-# Red          0;31     Light Red     1;31
-# Green        0;32     Light Green   1;32
-# Brown/Orange 0;33     Yellow        1;33
-# Blue         0;34     Light Blue    1;34
-# Purple       0;35     Light Purple  1;35
-# Cyan         0;36     Light Cyan    1;36
-# Light Gray   0;37     White         1;37
-
-
-
-nb_proc=$(python sub_config.py 2>&1) 
-
-machine_name=jeanzay
-
-# echo $nb_proc
-if [[ ($machine_name == irene) ]]
-then
-    echo "Testing on Irene"
-    ccc_mprun -n $nb_proc ../../build_prod/bin/generic_testcase.exe
-elif [[($machine_name == ada)]]
-then
-    echo "Testing on ADA"
-    mpirun -np $nb_proc ../../build_prod/bin/generic_testcase.exe
-elif [[($machine_name == jeanzay)]]
-then
-    echo "Testing on Jean-Zay" 
-    srun -n $nb_proc --mpi=pmi2 ../../build_prod/bin/generic_testcase.exe
-    if [ $? -ne 0 ]
-        then
-            echo "execution failed"
-            rm -f iodef.xml
-            rm -f user_param.py
-            rm -f default_param.py
-            rm -f sub_config.py
-            rm -f sub_check.py
-            exit 1234
-    fi
-else
-    echo "other machine"
-    exit 1234
-fi
-
-python sub_check.py
-
-rm -f iodef.xml
-rm -f user_param.py
-rm -f default_param.py
-rm -f sub_config.py
-rm -f sub_check.py
Index: OS/dev/dev_trunk_omp/GENERIC_TESTCASE/test_domain_algo/setup.py
===================================================================
--- /XIOS/dev/dev_trunk_omp/GENERIC_TESTCASE/test_domain_algo/setup.py	(revision 1736)
+++ 	(revision )
@@ -1,156 +1,0 @@
-import os
-import sys
-
-def main():
-
-	black = lambda text: '\033[0;30m' + text + '\033[0m'
-	red = lambda text: '\033[0;31m' + text + '\033[0m'
-	green = lambda text: '\033[0;32m' + text + '\033[0m'
-	yellow = lambda text: '\033[0;33m' + text + '\033[0m'
-	blue = lambda text: '\033[0;34m' + text + '\033[0m'
-	magenta = lambda text: '\033[0;35m' + text + '\033[0m'
-	cyan = lambda text: '\033[0;36m' + text + '\033[0m'
-	lgray = lambda text: '\033[0;37m' + text + '\033[0m'
-	dgray = lambda text: '\033[1;30m' + text + '\033[0m'
-	lred = lambda text: '\033[1;32m' + text + '\033[0m'
-	lgreen = lambda text: '\033[1;32m' + text + '\033[0m'
-	lyellow = lambda text: '\033[1;33m' + text + '\033[0m'
-	lblue = lambda text: '\033[1;34m' + text + '\033[0m'
-	lpurple = lambda text: '\033[1;35m' + text + '\033[0m'
-	lcyan = lambda text: '\033[1;36m' + text + '\033[0m'
-	white = lambda text: '\033[1;37m' + text + '\033[0m'
-
-	default_nb_config = 7
-
-	nb_config = 1;
-	configs = [0]*default_nb_config
-	 
-	configs_arg = [[], [], [], [], [], [], []] 
-
-	f=open("user_params.def", "r")
-	for line in f:
-		line = line.strip()
-		if len(line) != 0:
-			if not line.startswith("#"):
-				nb_config = nb_config * (line.count(",")+1)
-				line = line.replace(",", "")
-				line = line.replace("=", "")
-				if line.startswith("UsingServer2"):
-					line = line.replace("UsingServer2", "")
-					for word in line.split():
-						configs[0] += 1
-						configs_arg[0].append('UsingServer2 = '+word)
-				elif line.startswith("RatioServer2"):
-					line = line.replace("RatioServer2", "")
-					for word in line.split():
-						configs[1] += 1
-						configs_arg[1].append('RatioServer2 = '+word)
-				elif line.startswith("NumberPoolsServer2"):
-					line = line.replace("NumberPoolsServer2", "")
-					for word in line.split():
-						configs[2] += 1
-						configs_arg[2].append('NumberPoolsServer2 = '+word)
-				elif line.startswith("NumberClients"):
-					line = line.replace("NumberClients", "")
-					for word in line.split():
-						configs[3] += 1
-						configs_arg[3].append('NumberClients = '+word)
-				elif line.startswith("NumberServers"):
-					line = line.replace("NumberServers", "")
-					for word in line.split():
-						configs[4] += 1
-						configs_arg[4].append('NumberServers = '+word)
-				elif line.startswith("Duration"):
-					line = line.replace("Duration", "")
-					for word in line.split():
-						configs[5] += 1
-						configs_arg[5].append('Duration = '+word)
-				elif line.startswith("ATMdomain"):
-					line = line.replace("ATMdomain", "")
-					for word in line.split():
-						configs[6] += 1
-						configs_arg[6].append('ATMdomain = '+word)
-
-				
-	for x in range(default_nb_config):
-		if configs[x]==0:
-			configs[x] =1
-
-	config_id=0
-	for i0 in range(configs[0]):
-		hasContent0 = len(configs_arg[0])>0
-		for i1 in range(configs[1]):
-			hasContent1 = len(configs_arg[1])>0
-			for i2 in range(configs[2]):
-				hasContent2 = len(configs_arg[2])>0
-				for i3 in range(configs[3]):
-					hasContent3 = len(configs_arg[3])>0
-					for i4 in range(configs[4]):
-						hasContent4 = len(configs_arg[4])>0
-						for i5 in range(configs[5]):
-							hasContent5 = len(configs_arg[5])>0
-							for i6 in range(configs[6]):
-								hasContent6 = len(configs_arg[6])>0
-
-								filename = "user_param.py."+repr(config_id)
-								g = open(filename, "w")
-
-								if hasContent0: g.write(configs_arg[0][i0]+'\n')
-								if hasContent1: g.write(configs_arg[1][i1]+'\n')
-								if hasContent2: g.write(configs_arg[2][i2]+'\n')
-								if hasContent3: g.write(configs_arg[3][i3]+'\n')
-								if hasContent4: g.write(configs_arg[4][i4]+'\n')
-								if hasContent5: g.write(configs_arg[5][i5]+'\n')
-								if hasContent6: g.write(configs_arg[6][i6]+'\n')
-							
-								config_id +=1
-								g.close
-
-
-	f=open("CMakeLists.txt", "w")
-	f.write("##############################\n")
-	f.write("# file generated by setup.py #\n")
-	f.write("#      DO NOT modify         #\n")
-	f.write("##############################\n\n")
-	f.write("cmake_minimum_required(VERSION 2.8.12.2)\n\n")
-	f.write("project(generic_testcase)\n\n")
-	f.write("find_package(PythonInterp REQUIRED)\n\n")
-	f.write("enable_testing()\n\n")
-	dirpath = os.getcwd()
-	foldername = os.path.basename(os.getcwd())
-	print(foldername)
-
-
-	for x in range(nb_config):
-		f.write("add_test( NAME "+foldername+"_config"+repr(x)+'\n')
-		f.write("          COMMAND ${PYTHON_EXECUTABLE}\n")
-		f.write("          ${CMAKE_CURRENT_BINARY_DIR}/run_test_"+repr(x)+".py\n")
-		f.write("          "+foldername+"_config"+repr(x)+")\n\n")
-
-		g=open("run_test_"+repr(x)+".py", "w")
-		g.write("##############################\n")
-		g.write("# file generated by setup.py #\n")
-		g.write("#      DO NOT modify         #\n")
-		g.write("##############################\n\n")
-		g.write("import os\n")
-		g.write("import sys\n")
-		g.write("def main():\n")
-		g.write("	os.system(\'rm -f user_param.py\')\n")
-		g.write("	os.system(\'cp user_param.py."+repr(x)+" user_param.py\')\n")
-		g.write("	os.system(\'./run_sub_test.sh\')\n")
-		g.write("if __name__== \"__main__\":\n")
-		g.write("	main()\n")
-		g.close
-		 
-	f.close
-
-	f=open("report.txt", "w")
-	g=open("report.html", "w")
-	f.write("\n\n\nin "+cyan(foldername)+" ...\n\n")
-	g.write("<br><br><br><p>in <font color=\"blue\">"+foldername+"</font> ...</p><br><br>")
-	f.close
-	g.close
-
-
-if __name__== "__main__":
-  main()
Index: OS/dev/dev_trunk_omp/GENERIC_TESTCASE/test_function/CMakeLists.txt
===================================================================
--- /XIOS/dev/dev_trunk_omp/GENERIC_TESTCASE/test_function/CMakeLists.txt	(revision 1736)
+++ 	(revision )
@@ -1,33 +1,0 @@
-##############################
-# file generated by setup.py #
-#      DO NOT modify         #
-##############################
-
-cmake_minimum_required(VERSION 2.8.12.2)
-
-project(generic_testcase)
-
-find_package(PythonInterp REQUIRED)
-
-enable_testing()
-
-add_test( NAME test_function_config0
-          COMMAND ${PYTHON_EXECUTABLE}
-          ${CMAKE_CURRENT_BINARY_DIR}/run_test_0.py
-          test_function_config0)
-
-add_test( NAME test_function_config1
-          COMMAND ${PYTHON_EXECUTABLE}
-          ${CMAKE_CURRENT_BINARY_DIR}/run_test_1.py
-          test_function_config1)
-
-add_test( NAME test_function_config2
-          COMMAND ${PYTHON_EXECUTABLE}
-          ${CMAKE_CURRENT_BINARY_DIR}/run_test_2.py
-          test_function_config2)
-
-add_test( NAME test_function_config3
-          COMMAND ${PYTHON_EXECUTABLE}
-          ${CMAKE_CURRENT_BINARY_DIR}/run_test_3.py
-          test_function_config3)
-
Index: /XIOS/dev/dev_trunk_omp/GENERIC_TESTCASE/test_function/job_jz.sh
===================================================================
--- /XIOS/dev/dev_trunk_omp/GENERIC_TESTCASE/test_function/job_jz.sh	(revision 1736)
+++ /XIOS/dev/dev_trunk_omp/GENERIC_TESTCASE/test_function/job_jz.sh	(revision 1737)
@@ -33,13 +33,17 @@
 export machine_name=jeanzay
 
+cp ../setup.py ./
+cp ../run_sub_test.sh ./
+
 python setup.py
 
 cmake .
-ctest -V
 
-#./run_sub_test.sh
+ctest --output-on-failure #enable output only when test failed
 
-#srun --mpi=pmi2 -K1 --multi-prog -m cyclic ./srun.conf
-#srun --mpi=pmi2 ../bin/test_client.exe
+#ctest -V #enable all output
 
+rm -f setup.py run_sub_test.sh
+rm -f run_test_*.py
+rm -f user_param.py.*
 
Index: OS/dev/dev_trunk_omp/GENERIC_TESTCASE/test_function/run_sub_test.sh
===================================================================
--- /XIOS/dev/dev_trunk_omp/GENERIC_TESTCASE/test_function/run_sub_test.sh	(revision 1736)
+++ 	(revision )
@@ -1,63 +1,0 @@
-#!/bin/bash
-
-
-
-cp ../context_grid_dynamico.xml ./
-cp ../dynamico_grid.nc ./
-
-cp ../config.py sub_config.py
-cp ../check.py sub_check.py
-
-cp ../default_param.py default_param.py
-
-
-# Black        0;30     Dark Gray     1;30
-# Red          0;31     Light Red     1;31
-# Green        0;32     Light Green   1;32
-# Brown/Orange 0;33     Yellow        1;33
-# Blue         0;34     Light Blue    1;34
-# Purple       0;35     Light Purple  1;35
-# Cyan         0;36     Light Cyan    1;36
-# Light Gray   0;37     White         1;37
-
-
-
-nb_proc=$(python sub_config.py 2>&1) 
-
-machine_name=jeanzay
-
-# echo $nb_proc
-if [[ ($machine_name == irene) ]]
-then
-    echo "Testing on Irene"
-    ccc_mprun -n $nb_proc ../../build_prod/bin/generic_testcase.exe
-elif [[($machine_name == ada)]]
-then
-    echo "Testing on ADA"
-    mpirun -np $nb_proc ../../build_prod/bin/generic_testcase.exe
-elif [[($machine_name == jeanzay)]]
-then
-    echo "Testing on Jean-Zay" 
-    srun -n $nb_proc --mpi=pmi2 ../../build_prod/bin/generic_testcase.exe
-    if [ $? -ne 0 ]
-        then
-            echo "execution failed"
-            rm -f iodef.xml
-            rm -f user_param.py
-            rm -f default_param.py
-            rm -f sub_config.py
-            rm -f sub_check.py
-            exit 1234
-    fi
-else
-    echo "other machine"
-    exit 1234
-fi
-
-python sub_check.py
-
-rm -f iodef.xml
-rm -f user_param.py
-rm -f default_param.py
-rm -f sub_config.py
-rm -f sub_check.py
Index: OS/dev/dev_trunk_omp/GENERIC_TESTCASE/test_function/setup.py
===================================================================
--- /XIOS/dev/dev_trunk_omp/GENERIC_TESTCASE/test_function/setup.py	(revision 1736)
+++ 	(revision )
@@ -1,158 +1,0 @@
-import os
-import sys
-
-
-def main():
-
-	black = lambda text: '\033[0;30m' + text + '\033[0m'
-	red = lambda text: '\033[0;31m' + text + '\033[0m'
-	green = lambda text: '\033[0;32m' + text + '\033[0m'
-	yellow = lambda text: '\033[0;33m' + text + '\033[0m'
-	blue = lambda text: '\033[0;34m' + text + '\033[0m'
-	magenta = lambda text: '\033[0;35m' + text + '\033[0m'
-	cyan = lambda text: '\033[0;36m' + text + '\033[0m'
-	lgray = lambda text: '\033[0;37m' + text + '\033[0m'
-	dgray = lambda text: '\033[1;30m' + text + '\033[0m'
-	lred = lambda text: '\033[1;32m' + text + '\033[0m'
-	lgreen = lambda text: '\033[1;32m' + text + '\033[0m'
-	lyellow = lambda text: '\033[1;33m' + text + '\033[0m'
-	lblue = lambda text: '\033[1;34m' + text + '\033[0m'
-	lpurple = lambda text: '\033[1;35m' + text + '\033[0m'
-	lcyan = lambda text: '\033[1;36m' + text + '\033[0m'
-	white = lambda text: '\033[1;37m' + text + '\033[0m'
-
-	default_nb_config = 7
-
-	nb_config = 1;
-	configs = [0]*default_nb_config
-	 
-	configs_arg = [[], [], [], [], [], [], []] 
-
-	f=open("user_params.def", "r")
-	for line in f:
-		line = line.strip()
-		if len(line) != 0:
-			if not line.startswith("#"):
-				nb_config = nb_config * (line.count(",")+1)
-				line = line.replace(",", "")
-				line = line.replace("=", "")
-				if line.startswith("UsingServer2"):
-					line = line.replace("UsingServer2", "")
-					for word in line.split():
-						configs[0] += 1
-						configs_arg[0].append('UsingServer2 = '+word)
-				elif line.startswith("RatioServer2"):
-					line = line.replace("RatioServer2", "")
-					for word in line.split():
-						configs[1] += 1
-						configs_arg[1].append('RatioServer2 = '+word)
-				elif line.startswith("NumberPoolsServer2"):
-					line = line.replace("NumberPoolsServer2", "")
-					for word in line.split():
-						configs[2] += 1
-						configs_arg[2].append('NumberPoolsServer2 = '+word)
-				elif line.startswith("NumberClients"):
-					line = line.replace("NumberClients", "")
-					for word in line.split():
-						configs[3] += 1
-						configs_arg[3].append('NumberClients = '+word)
-				elif line.startswith("NumberServers"):
-					line = line.replace("NumberServers", "")
-					for word in line.split():
-						configs[4] += 1
-						configs_arg[4].append('NumberServers = '+word)
-				elif line.startswith("Duration"):
-					line = line.replace("Duration", "")
-					for word in line.split():
-						configs[5] += 1
-						configs_arg[5].append('Duration = '+word)
-				elif line.startswith("ATMdomain"):
-					line = line.replace("ATMdomain", "")
-					for word in line.split():
-						configs[6] += 1
-						configs_arg[6].append('ATMdomain = '+word)
-
-				
-	for x in range(default_nb_config):
-		if configs[x]==0:
-			configs[x] =1
-
-	config_id=0
-	for i0 in range(configs[0]):
-		hasContent0 = len(configs_arg[0])>0
-		for i1 in range(configs[1]):
-			hasContent1 = len(configs_arg[1])>0
-			for i2 in range(configs[2]):
-				hasContent2 = len(configs_arg[2])>0
-				for i3 in range(configs[3]):
-					hasContent3 = len(configs_arg[3])>0
-					for i4 in range(configs[4]):
-						hasContent4 = len(configs_arg[4])>0
-						for i5 in range(configs[5]):
-							hasContent5 = len(configs_arg[5])>0
-							for i6 in range(configs[6]):
-								hasContent6 = len(configs_arg[6])>0
-
-								filename = "user_param.py."+repr(config_id)
-								g = open(filename, "w")
-
-								if hasContent0: g.write(configs_arg[0][i0]+'\n')
-								if hasContent1: g.write(configs_arg[1][i1]+'\n')
-								if hasContent2: g.write(configs_arg[2][i2]+'\n')
-								if hasContent3: g.write(configs_arg[3][i3]+'\n')
-								if hasContent4: g.write(configs_arg[4][i4]+'\n')
-								if hasContent5: g.write(configs_arg[5][i5]+'\n')
-								if hasContent6: g.write(configs_arg[6][i6]+'\n')
-							
-								config_id +=1
-								g.close
-
-
-
-	f=open("CMakeLists.txt", "w")
-	f.write("##############################\n")
-	f.write("# file generated by setup.py #\n")
-	f.write("#      DO NOT modify         #\n")
-	f.write("##############################\n\n")
-	f.write("cmake_minimum_required(VERSION 2.8.12.2)\n\n")
-	f.write("project(generic_testcase)\n\n")
-	f.write("find_package(PythonInterp REQUIRED)\n\n")
-	f.write("enable_testing()\n\n")
-	dirpath = os.getcwd()
-	foldername = os.path.basename(os.getcwd())
-	print(foldername)
-
-
-	for x in range(nb_config):
-		f.write("add_test( NAME "+foldername+"_config"+repr(x)+'\n')
-		f.write("          COMMAND ${PYTHON_EXECUTABLE}\n")
-		f.write("          ${CMAKE_CURRENT_BINARY_DIR}/run_test_"+repr(x)+".py\n")
-		f.write("          "+foldername+"_config"+repr(x)+")\n\n")
-
-		g=open("run_test_"+repr(x)+".py", "w")
-		g.write("##############################\n")
-		g.write("# file generated by setup.py #\n")
-		g.write("#      DO NOT modify         #\n")
-		g.write("##############################\n\n")
-		g.write("import os\n")
-		g.write("import sys\n")
-		g.write("def main():\n")
-		g.write("	os.system(\'rm -f user_param.py\')\n")
-		g.write("	os.system(\'cp user_param.py."+repr(x)+" user_param.py\')\n")
-		g.write("	os.system(\'./run_sub_test.sh\')\n")
-		g.write("if __name__== \"__main__\":\n")
-		g.write("	main()\n")
-		g.close
-		 
-	f.close
-
-	f=open("report.txt", "w")
-	g=open("report.html", "w")
-	f.write("\n\n\nin "+cyan(foldername)+" ...\n\n")
-	g.write("<br><br><br><p>in <font color=\"blue\">"+foldername+"</font> ...</p><br><br>")
-	f.close
-	g.close
-
-
-if __name__== "__main__":
-  main()
Index: OS/dev/dev_trunk_omp/GENERIC_TESTCASE/test_grid_algo/CMakeLists.txt
===================================================================
--- /XIOS/dev/dev_trunk_omp/GENERIC_TESTCASE/test_grid_algo/CMakeLists.txt	(revision 1736)
+++ 	(revision )
@@ -1,23 +1,0 @@
-##############################
-# file generated by setup.py #
-#      DO NOT modify         #
-##############################
-
-cmake_minimum_required(VERSION 2.8.12.2)
-
-project(generic_testcase)
-
-find_package(PythonInterp REQUIRED)
-
-enable_testing()
-
-add_test( NAME test_grid_algo_config0
-          COMMAND ${PYTHON_EXECUTABLE}
-          ${CMAKE_CURRENT_BINARY_DIR}/run_test_0.py
-          test_grid_algo_config0)
-
-add_test( NAME test_grid_algo_config1
-          COMMAND ${PYTHON_EXECUTABLE}
-          ${CMAKE_CURRENT_BINARY_DIR}/run_test_1.py
-          test_grid_algo_config1)
-
Index: /XIOS/dev/dev_trunk_omp/GENERIC_TESTCASE/test_grid_algo/job_jz.sh
===================================================================
--- /XIOS/dev/dev_trunk_omp/GENERIC_TESTCASE/test_grid_algo/job_jz.sh	(revision 1736)
+++ /XIOS/dev/dev_trunk_omp/GENERIC_TESTCASE/test_grid_algo/job_jz.sh	(revision 1737)
@@ -6,6 +6,6 @@
 #SBATCH --hint=nomultithread
 #SBATCH -t 00:10:00              # Temps elapsed maximum d'exÃ©cution
-#SBATCH -o test_client%j.out     # Nom du fichier de sortie
-#SBATCH -e test_client%j.err     # Nom du fichier d'erreur
+#SBATCH -o test_client.out     # Nom du fichier de sortie
+#SBATCH -e test_client.err     # Nom du fichier d'erreur
 ##SBATCH -p cpu_port             # Nom de la partition d'exÃ©cution
 ##SBATCH -A sos@cpu
@@ -33,12 +33,17 @@
 export machine_name=jeanzay
 
+cp ../setup.py ./
+cp ../run_sub_test.sh ./
+
 python setup.py
+
 cmake .
-ctest -V
 
-#./run_sub_test.sh
+ctest --output-on-failure #enable output only when test failed
 
-#srun --mpi=pmi2 -K1 --multi-prog -m cyclic ./srun.conf
-#srun --mpi=pmi2 ../bin/test_client.exe
+#ctest -V #enable all output
 
+rm -f setup.py run_sub_test.sh
+rm -f run_test_*.py
+rm -f user_param.py.*
 
Index: OS/dev/dev_trunk_omp/GENERIC_TESTCASE/test_grid_algo/run_sub_test.sh
===================================================================
--- /XIOS/dev/dev_trunk_omp/GENERIC_TESTCASE/test_grid_algo/run_sub_test.sh	(revision 1736)
+++ 	(revision )
@@ -1,64 +1,0 @@
-#!/bin/bash
-
-
-
-cp ../context_grid_dynamico.xml ./
-cp ../dynamico_grid.nc ./
-
-cp ../config.py sub_config.py
-cp ../check.py sub_check.py
-
-cp ../default_param.py default_param.py
-
-
-
-# Black        0;30     Dark Gray     1;30
-# Red          0;31     Light Red     1;31
-# Green        0;32     Light Green   1;32
-# Brown/Orange 0;33     Yellow        1;33
-# Blue         0;34     Light Blue    1;34
-# Purple       0;35     Light Purple  1;35
-# Cyan         0;36     Light Cyan    1;36
-# Light Gray   0;37     White         1;37
-
-
-
-nb_proc=$(python sub_config.py 2>&1) 
-
-machine_name=jeanzay
-
-# echo $nb_proc
-if [[ ($machine_name == irene) ]]
-then
-    echo "Testing on Irene"
-    ccc_mprun -n $nb_proc ../../build_prod/bin/generic_testcase.exe
-elif [[($machine_name == ada)]]
-then
-    echo "Testing on ADA"
-    mpirun -np $nb_proc ../../build_prod/bin/generic_testcase.exe
-elif [[($machine_name == jeanzay)]]
-then
-    echo "Testing on Jean-Zay" 
-    srun -n $nb_proc --mpi=pmi2 ../../build_prod/bin/generic_testcase.exe
-    if [ $? -ne 0 ]
-        then
-            echo "execution failed"
-            rm -f iodef.xml
-            rm -f user_param.py
-            rm -f default_param.py
-            rm -f sub_config.py
-            rm -f sub_check.py
-            exit 1234
-    fi
-else
-    echo "other machine"
-    exit 1234
-fi
-
-python sub_check.py
-
-rm -f iodef.xml
-rm -f user_param.py
-rm -f default_param.py
-rm -f sub_config.py
-rm -f sub_check.py
Index: OS/dev/dev_trunk_omp/GENERIC_TESTCASE/test_grid_algo/setup.py
===================================================================
--- /XIOS/dev/dev_trunk_omp/GENERIC_TESTCASE/test_grid_algo/setup.py	(revision 1736)
+++ 	(revision )
@@ -1,158 +1,0 @@
-import os
-import sys
-
-
-def main():
-
-
-	black = lambda text: '\033[0;30m' + text + '\033[0m'
-	red = lambda text: '\033[0;31m' + text + '\033[0m'
-	green = lambda text: '\033[0;32m' + text + '\033[0m'
-	yellow = lambda text: '\033[0;33m' + text + '\033[0m'
-	blue = lambda text: '\033[0;34m' + text + '\033[0m'
-	magenta = lambda text: '\033[0;35m' + text + '\033[0m'
-	cyan = lambda text: '\033[0;36m' + text + '\033[0m'
-	lgray = lambda text: '\033[0;37m' + text + '\033[0m'
-	dgray = lambda text: '\033[1;30m' + text + '\033[0m'
-	lred = lambda text: '\033[1;32m' + text + '\033[0m'
-	lgreen = lambda text: '\033[1;32m' + text + '\033[0m'
-	lyellow = lambda text: '\033[1;33m' + text + '\033[0m'
-	lblue = lambda text: '\033[1;34m' + text + '\033[0m'
-	lpurple = lambda text: '\033[1;35m' + text + '\033[0m'
-	lcyan = lambda text: '\033[1;36m' + text + '\033[0m'
-	white = lambda text: '\033[1;37m' + text + '\033[0m'
-
-	default_nb_config = 7
-
-	nb_config = 1;
-	configs = [0]*default_nb_config
-	 
-	configs_arg = [[], [], [], [], [], [], []] 
-
-	f=open("user_params.def", "r")
-	for line in f:
-		line = line.strip()
-		if len(line) != 0:
-			if not line.startswith("#"):
-				nb_config = nb_config * (line.count(",")+1)
-				line = line.replace(",", "")
-				line = line.replace("=", "")
-				if line.startswith("UsingServer2"):
-					line = line.replace("UsingServer2", "")
-					for word in line.split():
-						configs[0] += 1
-						configs_arg[0].append('UsingServer2 = '+word)
-				elif line.startswith("RatioServer2"):
-					line = line.replace("RatioServer2", "")
-					for word in line.split():
-						configs[1] += 1
-						configs_arg[1].append('RatioServer2 = '+word)
-				elif line.startswith("NumberPoolsServer2"):
-					line = line.replace("NumberPoolsServer2", "")
-					for word in line.split():
-						configs[2] += 1
-						configs_arg[2].append('NumberPoolsServer2 = '+word)
-				elif line.startswith("NumberClients"):
-					line = line.replace("NumberClients", "")
-					for word in line.split():
-						configs[3] += 1
-						configs_arg[3].append('NumberClients = '+word)
-				elif line.startswith("NumberServers"):
-					line = line.replace("NumberServers", "")
-					for word in line.split():
-						configs[4] += 1
-						configs_arg[4].append('NumberServers = '+word)
-				elif line.startswith("Duration"):
-					line = line.replace("Duration", "")
-					for word in line.split():
-						configs[5] += 1
-						configs_arg[5].append('Duration = '+word)
-				elif line.startswith("ATMdomain"):
-					line = line.replace("ATMdomain", "")
-					for word in line.split():
-						configs[6] += 1
-						configs_arg[6].append('ATMdomain = '+word)
-
-				
-	for x in range(default_nb_config):
-		if configs[x]==0:
-			configs[x] =1
-
-	config_id=0
-	for i0 in range(configs[0]):
-		hasContent0 = len(configs_arg[0])>0
-		for i1 in range(configs[1]):
-			hasContent1 = len(configs_arg[1])>0
-			for i2 in range(configs[2]):
-				hasContent2 = len(configs_arg[2])>0
-				for i3 in range(configs[3]):
-					hasContent3 = len(configs_arg[3])>0
-					for i4 in range(configs[4]):
-						hasContent4 = len(configs_arg[4])>0
-						for i5 in range(configs[5]):
-							hasContent5 = len(configs_arg[5])>0
-							for i6 in range(configs[6]):
-								hasContent6 = len(configs_arg[6])>0
-
-								filename = "user_param.py."+repr(config_id)
-								g = open(filename, "w")
-
-								if hasContent0: g.write(configs_arg[0][i0]+'\n')
-								if hasContent1: g.write(configs_arg[1][i1]+'\n')
-								if hasContent2: g.write(configs_arg[2][i2]+'\n')
-								if hasContent3: g.write(configs_arg[3][i3]+'\n')
-								if hasContent4: g.write(configs_arg[4][i4]+'\n')
-								if hasContent5: g.write(configs_arg[5][i5]+'\n')
-								if hasContent6: g.write(configs_arg[6][i6]+'\n')
-							
-								config_id +=1
-								g.close
-
-
-	f=open("CMakeLists.txt", "w")
-	f.write("##############################\n")
-	f.write("# file generated by setup.py #\n")
-	f.write("#      DO NOT modify         #\n")
-	f.write("##############################\n\n")
-	f.write("cmake_minimum_required(VERSION 2.8.12.2)\n\n")
-	f.write("project(generic_testcase)\n\n")
-	f.write("find_package(PythonInterp REQUIRED)\n\n")
-	f.write("enable_testing()\n\n")
-	dirpath = os.getcwd()
-	foldername = os.path.basename(os.getcwd())
-	print(foldername)
-
-
-	for x in range(nb_config):
-		f.write("add_test( NAME "+foldername+"_config"+repr(x)+'\n')
-		f.write("          COMMAND ${PYTHON_EXECUTABLE}\n")
-		f.write("          ${CMAKE_CURRENT_BINARY_DIR}/run_test_"+repr(x)+".py\n")
-		f.write("          "+foldername+"_config"+repr(x)+")\n\n")
-
-		g=open("run_test_"+repr(x)+".py", "w")
-		g.write("##############################\n")
-		g.write("# file generated by setup.py #\n")
-		g.write("#      DO NOT modify         #\n")
-		g.write("##############################\n\n")
-		g.write("import os\n")
-		g.write("import sys\n")
-		g.write("def main():\n")
-		g.write("	os.system(\'rm -f user_param.py\')\n")
-		g.write("	os.system(\'cp user_param.py."+repr(x)+" user_param.py\')\n")
-		g.write("	os.system(\'./run_sub_test.sh\')\n")
-		g.write("if __name__== \"__main__\":\n")
-		g.write("	main()\n")
-		g.close
-		 
-	f.close
-
-	f=open("report.txt", "w")
-	g=open("report.html", "w")
-	f.write("\n\n\nin "+cyan(foldername)+" ...\n\n")
-	g.write("<br><br><br><p>in <font color=\"blue\">"+foldername+"</font> ...</p><br><br>")
-	f.close
-	g.close
-
-
-if __name__== "__main__":
-  main()
Index: OS/dev/dev_trunk_omp/GENERIC_TESTCASE/test_scalar_algo/CMakeLists.txt
===================================================================
--- /XIOS/dev/dev_trunk_omp/GENERIC_TESTCASE/test_scalar_algo/CMakeLists.txt	(revision 1736)
+++ 	(revision )
@@ -1,33 +1,0 @@
-##############################
-# file generated by setup.py #
-#      DO NOT modify         #
-##############################
-
-cmake_minimum_required(VERSION 2.8.12.2)
-
-project(generic_testcase)
-
-find_package(PythonInterp REQUIRED)
-
-enable_testing()
-
-add_test( NAME test_scalar_algo_config0
-          COMMAND ${PYTHON_EXECUTABLE}
-          ${CMAKE_CURRENT_BINARY_DIR}/run_test_0.py
-          test_scalar_algo_config0)
-
-add_test( NAME test_scalar_algo_config1
-          COMMAND ${PYTHON_EXECUTABLE}
-          ${CMAKE_CURRENT_BINARY_DIR}/run_test_1.py
-          test_scalar_algo_config1)
-
-add_test( NAME test_scalar_algo_config2
-          COMMAND ${PYTHON_EXECUTABLE}
-          ${CMAKE_CURRENT_BINARY_DIR}/run_test_2.py
-          test_scalar_algo_config2)
-
-add_test( NAME test_scalar_algo_config3
-          COMMAND ${PYTHON_EXECUTABLE}
-          ${CMAKE_CURRENT_BINARY_DIR}/run_test_3.py
-          test_scalar_algo_config3)
-
Index: /XIOS/dev/dev_trunk_omp/GENERIC_TESTCASE/test_scalar_algo/job_jz.sh
===================================================================
--- /XIOS/dev/dev_trunk_omp/GENERIC_TESTCASE/test_scalar_algo/job_jz.sh	(revision 1736)
+++ /XIOS/dev/dev_trunk_omp/GENERIC_TESTCASE/test_scalar_algo/job_jz.sh	(revision 1737)
@@ -6,6 +6,6 @@
 #SBATCH --hint=nomultithread
 #SBATCH -t 00:10:00              # Temps elapsed maximum d'exÃ©cution
-#SBATCH -o test_client%j.out     # Nom du fichier de sortie
-#SBATCH -e test_client%j.err     # Nom du fichier d'erreur
+#SBATCH -o test_client.out     # Nom du fichier de sortie
+#SBATCH -e test_client.err     # Nom du fichier d'erreur
 ##SBATCH -p cpu_port             # Nom de la partition d'exÃ©cution
 ##SBATCH -A sos@cpu
@@ -33,11 +33,16 @@
 export machine_name=jeanzay
 
+cp ../setup.py ./
+cp ../run_sub_test.sh ./
+
 python setup.py
+
 cmake .
-ctest -V
-#./run_sub_test.sh
 
-#srun --mpi=pmi2 -K1 --multi-prog -m cyclic ./srun.conf
-#srun --mpi=pmi2 ../bin/test_client.exe
+ctest --output-on-failure #enable output only when test failed
 
+#ctest -V #enable all output
 
+rm -f setup.py run_sub_test.sh
+rm -f run_test_*.py
+rm -f user_param.py.*
Index: OS/dev/dev_trunk_omp/GENERIC_TESTCASE/test_scalar_algo/run_sub_test.sh
===================================================================
--- /XIOS/dev/dev_trunk_omp/GENERIC_TESTCASE/test_scalar_algo/run_sub_test.sh	(revision 1736)
+++ 	(revision )
@@ -1,64 +1,0 @@
-#!/bin/bash
-
-
-
-cp ../context_grid_dynamico.xml ./
-cp ../dynamico_grid.nc ./
-
-cp ../config.py sub_config.py
-cp ../check.py sub_check.py
-
-cp ../default_param.py default_param.py
-
-
-
-# Black        0;30     Dark Gray     1;30
-# Red          0;31     Light Red     1;31
-# Green        0;32     Light Green   1;32
-# Brown/Orange 0;33     Yellow        1;33
-# Blue         0;34     Light Blue    1;34
-# Purple       0;35     Light Purple  1;35
-# Cyan         0;36     Light Cyan    1;36
-# Light Gray   0;37     White         1;37
-
-
-
-nb_proc=$(python sub_config.py 2>&1) 
-
-machine_name=jeanzay
-
-# echo $nb_proc
-if [[ ($machine_name == irene) ]]
-then
-    echo "Testing on Irene"
-    ccc_mprun -n $nb_proc ../../build_prod/bin/generic_testcase.exe
-elif [[($machine_name == ada)]]
-then
-    echo "Testing on ADA"
-    mpirun -np $nb_proc ../../build_prod/bin/generic_testcase.exe
-elif [[($machine_name == jeanzay)]]
-then
-    echo "Testing on Jean-Zay" 
-    srun -n $nb_proc --mpi=pmi2 ../../build_prod/bin/generic_testcase.exe
-    if [ $? -ne 0 ]
-        then
-            echo "execution failed"
-            rm -f iodef.xml
-            rm -f user_param.py
-            rm -f default_param.py
-            rm -f sub_config.py
-            rm -f sub_check.py
-            exit 1234
-    fi
-else
-    echo "other machine"
-    exit 1234
-fi
-
-python sub_check.py
-
-rm -f iodef.xml
-rm -f user_param.py
-rm -f default_param.py
-rm -f sub_config.py
-rm -f sub_check.py
Index: OS/dev/dev_trunk_omp/GENERIC_TESTCASE/test_scalar_algo/setup.py
===================================================================
--- /XIOS/dev/dev_trunk_omp/GENERIC_TESTCASE/test_scalar_algo/setup.py	(revision 1736)
+++ 	(revision )
@@ -1,158 +1,0 @@
-import os
-import sys
-
-def main():
-
-	black = lambda text: '\033[0;30m' + text + '\033[0m'
-	red = lambda text: '\033[0;31m' + text + '\033[0m'
-	green = lambda text: '\033[0;32m' + text + '\033[0m'
-	yellow = lambda text: '\033[0;33m' + text + '\033[0m'
-	blue = lambda text: '\033[0;34m' + text + '\033[0m'
-	magenta = lambda text: '\033[0;35m' + text + '\033[0m'
-	cyan = lambda text: '\033[0;36m' + text + '\033[0m'
-	lgray = lambda text: '\033[0;37m' + text + '\033[0m'
-	dgray = lambda text: '\033[1;30m' + text + '\033[0m'
-	lred = lambda text: '\033[1;32m' + text + '\033[0m'
-	lgreen = lambda text: '\033[1;32m' + text + '\033[0m'
-	lyellow = lambda text: '\033[1;33m' + text + '\033[0m'
-	lblue = lambda text: '\033[1;34m' + text + '\033[0m'
-	lpurple = lambda text: '\033[1;35m' + text + '\033[0m'
-	lcyan = lambda text: '\033[1;36m' + text + '\033[0m'
-	white = lambda text: '\033[1;37m' + text + '\033[0m'
-
-	default_nb_config = 7
-
-	nb_config = 1;
-	configs = [0]*default_nb_config
-	 
-	configs_arg = [[], [], [], [], [], [], []] 
-
-	f=open("user_params.def", "r")
-	for line in f:
-		line = line.strip()
-		if len(line) != 0:
-			if not line.startswith("#"):
-				nb_config = nb_config * (line.count(",")+1)
-				line = line.replace(",", "")
-				line = line.replace("=", "")
-				if line.startswith("UsingServer2"):
-					line = line.replace("UsingServer2", "")
-					for word in line.split():
-						configs[0] += 1
-						configs_arg[0].append('UsingServer2 = '+word)
-				elif line.startswith("RatioServer2"):
-					line = line.replace("RatioServer2", "")
-					for word in line.split():
-						configs[1] += 1
-						configs_arg[1].append('RatioServer2 = '+word)
-				elif line.startswith("NumberPoolsServer2"):
-					line = line.replace("NumberPoolsServer2", "")
-					for word in line.split():
-						configs[2] += 1
-						configs_arg[2].append('NumberPoolsServer2 = '+word)
-				elif line.startswith("NumberClients"):
-					line = line.replace("NumberClients", "")
-					for word in line.split():
-						configs[3] += 1
-						configs_arg[3].append('NumberClients = '+word)
-				elif line.startswith("NumberServers"):
-					line = line.replace("NumberServers", "")
-					for word in line.split():
-						configs[4] += 1
-						configs_arg[4].append('NumberServers = '+word)
-				elif line.startswith("Duration"):
-					line = line.replace("Duration", "")
-					for word in line.split():
-						configs[5] += 1
-						configs_arg[5].append('Duration = '+word)
-				elif line.startswith("ATMdomain"):
-					line = line.replace("ATMdomain", "")
-					for word in line.split():
-						configs[6] += 1
-						configs_arg[6].append('ATMdomain = '+word)
-
-				
-	for x in range(default_nb_config):
-		if configs[x]==0:
-			configs[x] =1
-
-	config_id=0
-	for i0 in range(configs[0]):
-		hasContent0 = len(configs_arg[0])>0
-		for i1 in range(configs[1]):
-			hasContent1 = len(configs_arg[1])>0
-			for i2 in range(configs[2]):
-				hasContent2 = len(configs_arg[2])>0
-				for i3 in range(configs[3]):
-					hasContent3 = len(configs_arg[3])>0
-					for i4 in range(configs[4]):
-						hasContent4 = len(configs_arg[4])>0
-						for i5 in range(configs[5]):
-							hasContent5 = len(configs_arg[5])>0
-							for i6 in range(configs[6]):
-								hasContent6 = len(configs_arg[6])>0
-
-								filename = "user_param.py."+repr(config_id)
-								g = open(filename, "w")
-
-								if hasContent0: g.write(configs_arg[0][i0]+'\n')
-								if hasContent1: g.write(configs_arg[1][i1]+'\n')
-								if hasContent2: g.write(configs_arg[2][i2]+'\n')
-								if hasContent3: g.write(configs_arg[3][i3]+'\n')
-								if hasContent4: g.write(configs_arg[4][i4]+'\n')
-								if hasContent5: g.write(configs_arg[5][i5]+'\n')
-								if hasContent6: g.write(configs_arg[6][i6]+'\n')
-							
-								config_id +=1
-								g.close
-
-
-	# print >>sys.stderr, nb_config
-
-	f=open("CMakeLists.txt", "w")
-	f.write("##############################\n")
-	f.write("# file generated by setup.py #\n")
-	f.write("#      DO NOT modify         #\n")
-	f.write("##############################\n\n")
-	f.write("cmake_minimum_required(VERSION 2.8.12.2)\n\n")
-	f.write("project(generic_testcase)\n\n")
-	f.write("find_package(PythonInterp REQUIRED)\n\n")
-	f.write("enable_testing()\n\n")
-	dirpath = os.getcwd()
-	foldername = os.path.basename(os.getcwd())
-	print(foldername)
-
-
-	for x in range(nb_config):
-		f.write("add_test( NAME "+foldername+"_config"+repr(x)+'\n')
-		f.write("          COMMAND ${PYTHON_EXECUTABLE}\n")
-		f.write("          ${CMAKE_CURRENT_BINARY_DIR}/run_test_"+repr(x)+".py\n")
-		f.write("          "+foldername+"_config"+repr(x)+")\n\n")
-
-		g=open("run_test_"+repr(x)+".py", "w")
-		g.write("##############################\n")
-		g.write("# file generated by setup.py #\n")
-		g.write("#      DO NOT modify         #\n")
-		g.write("##############################\n\n")
-		g.write("import os\n")
-		g.write("import sys\n")
-		g.write("def main():\n")
-		g.write("	os.system(\'rm -f user_param.py\')\n")
-		g.write("	os.system(\'cp user_param.py."+repr(x)+" user_param.py\')\n")
-		g.write("	os.system(\'./run_sub_test.sh\')\n")
-		g.write("if __name__== \"__main__\":\n")
-		g.write("	main()\n")
-		g.close
-		 
-	f.close
-
-	f=open("report.txt", "w")
-	g=open("report.html", "w")
-	f.write("\n\n\nin "+cyan(foldername)+" ...\n\n")
-	g.write("<br><br><br><p>in <font color=\"blue\">"+foldername+"</font> ...</p><br><br>")
-	f.close
-	g.close
-
-
-if __name__== "__main__":
-  main()
Index: /XIOS/dev/dev_trunk_omp/GENERIC_TESTCASE/user_config.py
===================================================================
--- /XIOS/dev/dev_trunk_omp/GENERIC_TESTCASE/user_config.py	(revision 1736)
+++ /XIOS/dev/dev_trunk_omp/GENERIC_TESTCASE/user_config.py	(revision 1737)
@@ -13,21 +13,18 @@
 		if folder.startswith("test_"):
 			test_list.append(folder)
-			# os.system('cd '+folder+' && python setup.py')
-			FNULL = open(os.devnull, 'w')
-			retcode = subprocess.call(['cd', folder, ' && python setup.py'],
-                          stdout=FNULL,
-                          stderr=subprocess.STDOUT)
-			
-			if retcode!=0:	
-				print >> sys.stderr, retcode
-				sys.exit()
+	FNULL = open(os.devnull, 'w')
+	retcode = subprocess.call(['bash', 'setup.sh'], stdout=FNULL, stderr=subprocess.STDOUT)
+	if retcode!=0:	
+		print("setup.sh failed")
+		print >> sys.stderr, retcode
+		sys.exit()
 	
 
 	f=open("CMakeLists.txt", "w")
 
-	f.write("##############################\n")
-	f.write("# file generated by setup.py #\n")
-	f.write("#      DO NOT modify         #\n")
-	f.write("##############################\n\n")
+	f.write("####################################\n")
+	f.write("# file generated by user_config.py #\n")
+	f.write("#      DO NOT modify               #\n")
+	f.write("####################################\n\n")
 	
 	f.write("cmake_minimum_required(VERSION 2.8.12.2)\n\n")
