diff --git a/alien/ArcaneInterface/cmake/LoadAlienTest.cmake b/alien/ArcaneInterface/cmake/LoadAlienTest.cmake index 11a117f54..719a54eb0 100644 --- a/alien/ArcaneInterface/cmake/LoadAlienTest.cmake +++ b/alien/ArcaneInterface/cmake/LoadAlienTest.cmake @@ -34,7 +34,7 @@ endmacro() macro(alien_test) - set(options PARALLEL_ONLY) + set(options PARALLEL_ONLY UNIQUE_OUTPUT_DIR) set(oneValueArgs BENCH NAME COMMAND WORKING_DIRECTORY) set(multiValueArgs OPTIONS PROCS) @@ -65,9 +65,16 @@ macro(alien_test) ${ARGS_OPTIONS} ) else () + if(ARGS_UNIQUE_OUTPUT_DIR) + set(ALIEN_TEST_OUTDIR ${CMAKE_BINARY_DIR}/${ARGS_WORKING_DIRECTORY}/alien.${ARGS_BENCH}.${ARGS_NAME}) + set(ALIEN_TEST_PARAM_OUTDIR -A,OutputDirectory=${ALIEN_TEST_OUTDIR}) + file(MAKE_DIRECTORY ${ALIEN_TEST_OUTDIR}) + else () + set(ALIEN_TEST_PARAM_OUTDIR "") + endif() add_test( NAME alien.${ARGS_BENCH}.${ARGS_NAME} - COMMAND ${ARGS_COMMAND} + COMMAND ${ARGS_COMMAND} ${ALIEN_TEST_PARAM_OUTDIR} ${ARGS_OPTIONS} WORKING_DIRECTORY ${CMAKE_BINARY_DIR}/${ARGS_WORKING_DIRECTORY} ) @@ -105,9 +112,16 @@ macro(alien_test) ${ARGS_OPTIONS} ) else () + if(ARGS_UNIQUE_OUTPUT_DIR) + set(ALIEN_TEST_OUTDIR ${CMAKE_BINARY_DIR}/${ARGS_WORKING_DIRECTORY}/alien.${ARGS_BENCH}.${ARGS_NAME}.mpi-${mpi}) + set(ALIEN_TEST_PARAM_OUTDIR -A,OutputDirectory=${ALIEN_TEST_OUTDIR}) + file(MAKE_DIRECTORY ${ALIEN_TEST_OUTDIR}) + else () + set(ALIEN_TEST_PARAM_OUTDIR "") + endif () add_test( NAME alien.${ARGS_BENCH}.${ARGS_NAME}.mpi-${mpi} - COMMAND ${MPIEXEC_EXECUTABLE} ${MPIEXEC_NUMPROC_FLAG} ${mpi} ${MPIEXEC_PREFLAGS}$ ${MPIEXEC_POSTFLAGS} + COMMAND ${MPIEXEC_EXECUTABLE} ${MPIEXEC_NUMPROC_FLAG} ${mpi} ${MPIEXEC_PREFLAGS}$ ${MPIEXEC_POSTFLAGS} ${ALIEN_TEST_PARAM_OUTDIR} ${ARGS_OPTIONS} WORKING_DIRECTORY ${CMAKE_BINARY_DIR}/${ARGS_WORKING_DIRECTORY} ) diff --git a/alien/ArcaneInterface/test/AlienBench/CMakeLists.txt b/alien/ArcaneInterface/test/AlienBench/CMakeLists.txt index 6ee4f6a2c..5194fb0bb 100644 --- a/alien/ArcaneInterface/test/AlienBench/CMakeLists.txt +++ b/alien/ArcaneInterface/test/AlienBench/CMakeLists.txt @@ -248,6 +248,7 @@ alien_test( PROCS 1 COMMAND alien_bench.exe OPTIONS AlienBench-aliensolver.arc + UNIQUE_OUTPUT_DIR WORKING_DIRECTORY ${ALIEN_ARCANE_INTERFACE_DIR}/test/AlienBench) if (TARGET petsc) @@ -258,6 +259,7 @@ if (TARGET petsc) PROCS 1 COMMAND alien_bench.exe OPTIONS AlienBench.arc + UNIQUE_OUTPUT_DIR WORKING_DIRECTORY ${ALIEN_ARCANE_INTERFACE_DIR}/test/AlienBench) alien_test( @@ -266,6 +268,7 @@ if (TARGET petsc) PROCS 4 COMMAND alien_bench.exe OPTIONS AlienBench-4P.arc + UNIQUE_OUTPUT_DIR WORKING_DIRECTORY ${ALIEN_ARCANE_INTERFACE_DIR}/test/AlienBench) if(TARGET petsc::spai) @@ -275,6 +278,7 @@ if (TARGET petsc) PROCS 1 COMMAND alien_bench.exe OPTIONS AlienBench-petsc-spai.arc + UNIQUE_OUTPUT_DIR WORKING_DIRECTORY ${ALIEN_ARCANE_INTERFACE_DIR}/test/AlienBench) alien_test( @@ -283,6 +287,7 @@ if (TARGET petsc) PROCS 4 COMMAND alien_bench.exe OPTIONS AlienBench-petsc-spai-4P.arc + UNIQUE_OUTPUT_DIR WORKING_DIRECTORY ${ALIEN_ARCANE_INTERFACE_DIR}/test/AlienBench) endif() @@ -296,6 +301,7 @@ if (TARGET hypre) PROCS 1 COMMAND alien_bench.exe OPTIONS AlienBench-hypre.arc + UNIQUE_OUTPUT_DIR WORKING_DIRECTORY ${ALIEN_ARCANE_INTERFACE_DIR}/test/AlienBench) alien_test( @@ -304,6 +310,7 @@ if (TARGET hypre) PROCS 2 COMMAND alien_bench.exe OPTIONS AlienBench-hypre-2P.arc + UNIQUE_OUTPUT_DIR WORKING_DIRECTORY ${ALIEN_ARCANE_INTERFACE_DIR}/test/AlienBench) if(ALIEN_USE_SYCL) @@ -313,6 +320,7 @@ if(ALIEN_USE_SYCL) PROCS 1 COMMAND alien_bench.exe OPTIONS AlienBench-hypreilu.arc + UNIQUE_OUTPUT_DIR WORKING_DIRECTORY ${ALIEN_ARCANE_INTERFACE_DIR}/test/AlienBench) alien_test( @@ -321,6 +329,7 @@ if(ALIEN_USE_SYCL) PROCS 1 COMMAND alien_bench.exe OPTIONS AlienBench-hyprefsai.arc + UNIQUE_OUTPUT_DIR WORKING_DIRECTORY ${ALIEN_ARCANE_INTERFACE_DIR}/test/AlienBench) if(TARGET CUDA::cudart) @@ -330,6 +339,7 @@ if(ALIEN_USE_SYCL) PROCS 1 COMMAND alien_bench.exe OPTIONS AlienBench-hypreilu-sycl.arc + UNIQUE_OUTPUT_DIR WORKING_DIRECTORY ${ALIEN_ARCANE_INTERFACE_DIR}/test/AlienBench) alien_test( @@ -338,6 +348,7 @@ if(ALIEN_USE_SYCL) PROCS 1 COMMAND alien_bench.exe OPTIONS AlienBench-hyprefsai-sycl.arc + UNIQUE_OUTPUT_DIR WORKING_DIRECTORY ${ALIEN_ARCANE_INTERFACE_DIR}/test/AlienBench) endif() endif(ALIEN_USE_SYCL) @@ -352,6 +363,7 @@ if (TARGET trilinos) PROCS 1 COMMAND alien_bench.exe OPTIONS AlienBench-trilinos.arc + UNIQUE_OUTPUT_DIR WORKING_DIRECTORY ${ALIEN_ARCANE_INTERFACE_DIR}/test/AlienBench) alien_test( @@ -360,6 +372,7 @@ if (TARGET trilinos) PROCS 1 COMMAND alien_bench.exe OPTIONS AlienBench-trilinosmuelu.arc + UNIQUE_OUTPUT_DIR WORKING_DIRECTORY ${ALIEN_ARCANE_INTERFACE_DIR}/test/AlienBench) alien_test( @@ -368,6 +381,7 @@ if (TARGET trilinos) PROCS 2 COMMAND alien_bench.exe OPTIONS AlienBench-trilinos-2P.arc + UNIQUE_OUTPUT_DIR WORKING_DIRECTORY ${ALIEN_ARCANE_INTERFACE_DIR}/test/AlienBench) alien_test( @@ -376,5 +390,6 @@ if (TARGET trilinos) PROCS 4 COMMAND alien_bench.exe OPTIONS AlienBench-trilinosmuelu-4P.arc + UNIQUE_OUTPUT_DIR WORKING_DIRECTORY ${ALIEN_ARCANE_INTERFACE_DIR}/test/AlienBench) endif () diff --git a/alien/ArcaneInterface/test/AlienTest/CMakeLists.txt b/alien/ArcaneInterface/test/AlienTest/CMakeLists.txt index 34e1537be..5b6942a01 100644 --- a/alien/ArcaneInterface/test/AlienTest/CMakeLists.txt +++ b/alien/ArcaneInterface/test/AlienTest/CMakeLists.txt @@ -100,6 +100,7 @@ if (TARGET petsc) PROCS 4 COMMAND alien_arcane_test.exe OPTIONS AlienTest.arc + UNIQUE_OUTPUT_DIR WORKING_DIRECTORY ${ALIEN_ARCANE_INTERFACE_DIR}/test/AlienTest) alien_test( @@ -108,6 +109,7 @@ if (TARGET petsc) PROCS 4 COMMAND alien_arcane_test.exe OPTIONS AlienTest-FBS.arc + UNIQUE_OUTPUT_DIR WORKING_DIRECTORY ${ALIEN_ARCANE_INTERFACE_DIR}/test/AlienTest) alien_test( @@ -116,6 +118,7 @@ if (TARGET petsc) PROCS 4 COMMAND alien_arcane_test.exe OPTIONS AlienTest-VBS.arc + UNIQUE_OUTPUT_DIR WORKING_DIRECTORY ${ALIEN_ARCANE_INTERFACE_DIR}/test/AlienTest) endif ()