From 69a0b27722639d11580266c3598105dddbe6b7b0 Mon Sep 17 00:00:00 2001
From: Lars Bilke <lars.bilke@ufz.de>
Date: Fri, 29 Jan 2016 14:21:03 +0100
Subject: [PATCH] MPI test wrapper works, diff tester not.

---
 SimpleTests/MeshTests/MPI/CMakeLists.txt | 71 +++++++++++++++++-------
 scripts/cmake/test/AddTest.cmake         |  3 +-
 scripts/cmake/test/AddTestWrapper.cmake  |  3 +-
 3 files changed, 54 insertions(+), 23 deletions(-)

diff --git a/SimpleTests/MeshTests/MPI/CMakeLists.txt b/SimpleTests/MeshTests/MPI/CMakeLists.txt
index 46831d7dea9..6ba0f5d7ce4 100644
--- a/SimpleTests/MeshTests/MPI/CMakeLists.txt
+++ b/SimpleTests/MeshTests/MPI/CMakeLists.txt
@@ -19,36 +19,65 @@ if(OGS_USE_MPI)
 	target_link_libraries(test_node_partitioned_mesh ${MPI_CXX_LIBRARIES})
 endif()
 
-set(FilePath "DATA{${ExternalData_SOURCE_ROOT}/NodePartitionedMesh/ASCII/,REGEX:.*}")
-set(MPITestParameters -np 3 "${PROJECT_BINARY_DIR}/bin/test_node_partitioned_mesh" "${FilePath}/mesh_3d")
-Add_Test(
+AddTest(
 	NAME NodePartitionedMeshTestASCII
-	COMMAND "mpirun" ${MPITestParameters}
+	PATH NodePartitionedMesh/ASCII
+	EXECUTABLE test_node_partitioned_mesh
+	EXECUTABLE_ARGS mesh_3d
+	WRAPPER mpirun
+	WRAPPER_ARGS "-np 3"
+	TESTER diff
+	DIFF_DATA mesh_3d_partition_0.msh mesh_3d_partition_1.msh mesh_3d_partition_2.msh
 )
 
-set(FilePath "DATA{${ExternalData_SOURCE_ROOT}/NodePartitionedMesh/Binary/,REGEX:.*}")
-set(MPITestParameters -np 3 "${PROJECT_BINARY_DIR}/bin/test_node_partitioned_mesh" "${FilePath}/mesh_3d")
-Add_Test(
+AddTest(
 	NAME NodePartitionedMeshTestBinary
-	COMMAND  "mpirun" ${MPITestParameters}
+	PATH NodePartitionedMesh/Binary
+	EXECUTABLE test_node_partitioned_mesh
+	EXECUTABLE_ARGS mesh_3d
+	WRAPPER mpirun
+	WRAPPER_ARGS "-np 3"
+	TESTER diff
+	DIFF_DATA mesh_3d_partition_0.msh mesh_3d_partition_1.msh mesh_3d_partition_2.msh
 )
 
 ## FEM#PETSc solver tests
-set(FilePath "DATA{${ExternalData_SOURCE_ROOT}/EllipticPETSc/,REGEX:.*}")
-set(MPITestParameters -np 3 "${PROJECT_BINARY_DIR}/bin/ogs" "${FilePath}/quad_20x10_GroundWaterFlow.prj" --  -gw_ksp_type bcgs -gw_pc_type bjacobi -gw_ksp_atol 1.e-10)
-Add_Test(
-    NAME ParallelFEM_GroundWaterFlow2D
-    COMMAND  "mpirun" ${MPITestParameters} ${SolverType}
+AddTest(
+	NAME ParallelFEM_GroundWaterFlow2D
+	PATH EllipticPETSc/
+	EXECUTABLE_ARGS quad_20x10_GroundWaterFlow.prj -gw_ksp_type bcgs -gw_pc_type bjacobi -gw_ksp_atol 1.e-10
+	WRAPPER mpirun
+	WRAPPER_ARGS "-np 3"
+	TESTER diff
+	DIFF_DATA
+		quad_20x10_GroundWaterFlow_result_pcs_0_ts_1_0.vtu
+		quad_20x10_GroundWaterFlow_result_pcs_0_ts_1_1.vtu
+		quad_20x10_GroundWaterFlow_result_pcs_0_ts_1_2.vtu
 )
 
-set(MPITestParameters -np 3 "${PROJECT_BINARY_DIR}/bin/ogs" "${FilePath}/cube_1e3.prj" --  -gw_ksp_type bcgs -gw_pc_type bjacobi -gw_ksp_atol 1.e-10)
-Add_Test(
-    NAME ParallelFEM_GroundWaterFlow3D_DirichletBC
-    COMMAND  "mpirun" ${MPITestParameters} ${SolverType}
+AddTest(
+	NAME ParallelFEM_GroundWaterFlow3D_DirichletBC
+	PATH EllipticPETSc/
+	EXECUTABLE_ARGS cube_1e3.prj -gw_ksp_type bcgs -gw_pc_type bjacobi -gw_ksp_atol 1.e-10
+	WRAPPER mpirun
+	WRAPPER_ARGS "-np 3"
+	TESTER diff
+	DIFF_DATA
+		cube_1e3_result_pcs_0_ts_1_0.vtu
+		cube_1e3_result_pcs_0_ts_1_1.vtu
+		cube_1e3_result_pcs_0_ts_1_2.vtu
 )
 
-set(MPITestParameters -np 3 "${PROJECT_BINARY_DIR}/bin/ogs" "${FilePath}/cube_1e3_neumann.prj" --  -gw_ksp_type bcgs -gw_pc_type bjacobi -gw_ksp_atol 1.e-10)
-Add_Test(
-    NAME ParallelFEM_GroundWaterFlow3D_NeumannBC
-    COMMAND  "mpirun" ${MPITestParameters} ${SolverType}
+AddTest(
+	NAME ParallelFEM_GroundWaterFlow3D_NeumannBC
+	PATH EllipticPETSc/
+	EXECUTABLE_ARGS cube_1e3_neumann.prj -gw_ksp_type bcgs -gw_pc_type bjacobi -gw_ksp_atol 1.e-10
+	WRAPPER mpirun
+	WRAPPER_ARGS "-np 3"
+	TESTER diff
+	DIFF_DATA
+		cube_1e3_neumann_result_pcs_0_ts_1_0.vtu
+		cube_1e3_neumann_result_pcs_0_ts_1_1.vtu
+		cube_1e3_neumann_result_pcs_0_ts_1_2.vtu
 )
+
diff --git a/scripts/cmake/test/AddTest.cmake b/scripts/cmake/test/AddTest.cmake
index 96c1123882e..b3948ae53c0 100644
--- a/scripts/cmake/test/AddTest.cmake
+++ b/scripts/cmake/test/AddTest.cmake
@@ -78,7 +78,7 @@ function (AddTest)
 		set(WRAPPER_COMMAND "${VALGRIND_TOOL_PATH} --tool=callgrind --branch-sim=yes --cache-sim=yes --dump-instr=yes --collect-jumps=yes")
 		unset(tester)
 	elseif(AddTest_WRAPPER STREQUAL "mpirun")
-		set(WRAPPER_COMMAND "${MPIRUN_TOOL_PATH} ${AddTest_WRAPPER_ARGS}")
+		set(WRAPPER_COMMAND ${MPIRUN_TOOL_PATH})
 	endif()
 
 	# --- Implement testers ---
@@ -160,6 +160,7 @@ function (AddTest)
 		-DEXECUTABLE_ARGS=${AddTest_EXECUTABLE_ARGS}
 		-Dcase_path=${AddTest_SOURCE_PATH}
 		-DWRAPPER_COMMAND=${WRAPPER_COMMAND}
+		-DWRAPPER_ARGS=${AddTest_WRAPPER_ARGS}
 		-P ${PROJECT_SOURCE_DIR}/scripts/cmake/test/AddTestWrapper.cmake
 	)
 
diff --git a/scripts/cmake/test/AddTestWrapper.cmake b/scripts/cmake/test/AddTestWrapper.cmake
index fe52d89083a..17c1fd7e626 100644
--- a/scripts/cmake/test/AddTestWrapper.cmake
+++ b/scripts/cmake/test/AddTestWrapper.cmake
@@ -1,7 +1,8 @@
 string(REPLACE " " ";" WRAPPER_COMMAND ${WRAPPER_COMMAND})
+string(REPLACE " " ";" WRAPPER_ARGS ${WRAPPER_ARGS})
 string(REPLACE " " ";" EXECUTABLE_ARGS ${EXECUTABLE_ARGS})
 execute_process(
-	COMMAND ${WRAPPER_COMMAND} ${EXECUTABLE} ${EXECUTABLE_ARGS}
+	COMMAND ${WRAPPER_COMMAND} ${WRAPPER_ARGS} ${EXECUTABLE} ${EXECUTABLE_ARGS}
 	WORKING_DIRECTORY ${case_path}
 	RESULT_VARIABLE EXIT_CODE
 )
-- 
GitLab