add new regression test class: parallel

this compares the output of a serial and a parallel
run for a simulation
This commit is contained in:
Arne Morten Kvarving 2016-11-23 10:59:48 +01:00
parent 31d5d2824c
commit d8a829db46
2 changed files with 60 additions and 2 deletions

View File

@ -14,7 +14,7 @@ set(BASE_RESULT_PATH ${PROJECT_BINARY_DIR}/tests/results)
#
macro (add_test_compareECLFiles casename filename simulator)
set(RESULT_PATH ${BASE_RESULT_PATH}/${casename}+${simulator})
set(RESULT_PATH ${BASE_RESULT_PATH}/${simulator}+${casename})
# Add test that runs flow and outputs the results to file
opm_add_test(compareECLFiles_${simulator}+${filename} NO_COMPILE
EXE_NAME ${simulator}
@ -36,7 +36,7 @@ endmacro (add_test_compareECLFiles)
#
macro (add_test_compareECLRestartFiles casename filename simulator)
set(RESULT_PATH ${BASE_RESULT_PATH}/restart/${casename})
set(RESULT_PATH ${BASE_RESULT_PATH}/restart/${simulator}+${casename})
# Add test that runs flow and outputs the results to file
opm_add_test(compareECLRestartFiles_${simulator}+${filename} NO_COMPILE
EXE_NAME ${simulator}
@ -49,6 +49,29 @@ macro (add_test_compareECLRestartFiles casename filename simulator)
TEST_ARGS ${OPM_DATA_ROOT}/${casename}/${filename})
endmacro (add_test_compareECLRestartFiles)
###########################################################################
# TEST: parallelECLFiles
###########################################################################
# Input:
# - casename: basename (no extension)
#
macro (add_test_parallelECLFiles casename filename simulator)
set(abs_tol 0.02)
set(rel_tol 1e-5)
set(RESULT_PATH ${BASE_RESULT_PATH}/parallel/${simulator}+${casename})
# Add test that runs flow_mpi and outputs the results to file
opm_add_test(parallelECLFiles_${simulator}+${filename} NO_COMPILE
EXE_NAME ${simulator}
DRIVER_ARGS ${OPM_DATA_ROOT}/${casename} ${RESULT_PATH}
${CMAKE_BINARY_DIR}/bin
${filename}
${abs_tol} ${rel_tol}
${COMPARE_SUMMARY_COMMAND}
${COMPARE_ECL_COMMAND}
TEST_ARGS ${OPM_DATA_ROOT}/${casename}/${filename})
endmacro (add_test_parallelECLFiles)
if(NOT TARGET test-suite)
add_custom_target(test-suite)
@ -67,3 +90,12 @@ opm_set_test_driver(${PROJECT_SOURCE_DIR}/tests/run-restart-regressionTest.sh ""
add_test_compareECLRestartFiles(spe1 SPE1CASE2_ACTNUM flow)
add_test_compareECLRestartFiles(spe9 SPE9_CP_SHORT flow)
# Parallel tests
if(MPI_FOUND)
opm_set_test_driver(${PROJECT_SOURCE_DIR}/tests/run-parallel-regressionTest.sh "")
add_test_parallelECLFiles(spe1 SPE1CASE2 flow_mpi)
add_test_parallelECLFiles(spe3 SPE3CASE1 flow_mpi)
add_test_parallelECLFiles(spe9 SPE9_CP_SHORT flow_mpi)
endif()

View File

@ -0,0 +1,26 @@
#!/bin/bash
set -e
INPUT_DATA_PATH="$1"
RESULT_PATH="$2"
BINPATH="$3"
FILENAME="$4"
ABS_TOL="$5"
REL_TOL="$6"
COMPARE_SUMMARY_COMMAND="$7"
COMPARE_ECL_COMMAND="$8"
EXE_NAME="${9}"
shift 9
TEST_ARGS="$@"
rm -Rf ${RESULT_PATH}
mkdir -p ${RESULT_PATH}
cd ${RESULT_PATH}
${BINPATH}/${EXE_NAME} ${TEST_ARGS}.DATA linear_solver_reduction=1e-7 tolerance_cnv=5e-6 tolerance_mb=1e-8
mkdir mpi
cd mpi
mpirun -np 4 ${BINPATH}/${EXE_NAME} ${TEST_ARGS}.DATA linear_solver_reduction=1e-7 tolerance_cnv=5e-6 tolerance_mb=1e-8
cd ..
${COMPARE_SUMMARY_COMMAND} -R ${RESULT_PATH}/${FILENAME} ${RESULT_PATH}/mpi/${FILENAME} ${ABS_TOL} ${REL_TOL}
${COMPARE_ECL_COMMAND} -l ${RESULT_PATH}/${FILENAME} ${RESULT_PATH}/mpi/${FILENAME} ${ABS_TOL} ${REL_TOL}