Skip to content

Commit

Permalink
Prefer built binaries over ones installed on the system during tests
Browse files Browse the repository at this point in the history
Prefer executables and libraries that have been built by ElmerFEM over
binaries of the same name that might be installed on the system. Do that
by prepending the paths in the build tree to an existing PATH variable.

Include path to libparpack in PATH on Windows.

MPIEXEC might be installed in a location containing spaces in the path.
E.g., the default location on Windows for it is
"C:\Program Files\Microsoft MPI\Bin\mpiexec.exe". Avoid issues with
spaces in that path by surrounding it with double quotes in the
respective commands.
  • Loading branch information
mmuetzel authored and tzwinger committed Jul 17, 2024
1 parent a7d8680 commit 96feadf
Showing 1 changed file with 13 additions and 13 deletions.
26 changes: 13 additions & 13 deletions cmake/Modules/test_macros.cmake
Original file line number Diff line number Diff line change
Expand Up @@ -114,7 +114,7 @@ MACRO(RUN_ELMER_TEST)
ENDIF()

IF(NOT(WIN32))
SET(ENV{PATH} "$ENV{PATH}:${BINARY_DIR}/meshgen2d/src/:${BINARY_DIR}/fem/src")
SET(ENV{PATH} "${BINARY_DIR}/meshgen2d/src/:${BINARY_DIR}/fem/src:$ENV{PATH}")
ENDIF(NOT(WIN32))

# Clean up old result files
Expand All @@ -125,17 +125,17 @@ MACRO(RUN_ELMER_TEST)
ENDIF()

IF(WIN32)
SET(ENV{PATH} "$ENV{PATH};${BINARY_DIR}/meshgen2d/src/;${BINARY_DIR}/fem/src")
SET(ENV{PATH} "${BINARY_DIR}/meshgen2d/src/;${BINARY_DIR}/fem/src;$ENV{PATH}")
GET_FILENAME_COMPONENT(COMPILER_DIRECTORY ${CMAKE_Fortran_COMPILER} PATH)
SET(ENV{PATH} "$ENV{PATH};${COMPILER_DIRECTORY};$ENV{ELMER_HOME};$ENV{ELMER_LIB};${BINARY_DIR}/fhutiter/src;${BINARY_DIR}/matc/src;${BINARY_DIR}/mathlibs/src/arpack")
SET(ENV{PATH} "$ENV{ELMER_HOME};$ENV{ELMER_LIB};${BINARY_DIR}/fhutiter/src;${BINARY_DIR}/matc/src;${BINARY_DIR}/mathlibs/src/arpack;${BINARY_DIR}/mathlibs/src/parpack;${COMPILER_DIRECTORY};$ENV{PATH}")
ENDIF(WIN32)

IF(WITH_MPI)
EXECUTE_PROCESS(COMMAND ${MPIEXEC} ${MPIEXEC_NUMPROC_FLAG} ${MPIEXEC_NTASKS} ${MPIEXEC_PREFLAGS} ${ELMERSOLVER_BIN} ${MPIEXEC_POSTFLAGS}
EXECUTE_PROCESS(COMMAND "${MPIEXEC}" ${MPIEXEC_NUMPROC_FLAG} ${MPIEXEC_NTASKS} ${MPIEXEC_PREFLAGS} ${ELMERSOLVER_BIN} ${MPIEXEC_POSTFLAGS}
OUTPUT_VARIABLE TEST_STDOUT_VARIABLE
ERROR_VARIABLE TEST_ERROR_VARIABLE)
FILE(WRITE "test-stdout_${MPIEXEC_NTASKS}.log" "${TEST_STDOUT_VARIABLE}" )
FILE(WRITE "test-stderr_${MPIEXEC_NTASKS}.log" "${TEST_STDERR_VARIABLE}" )
FILE(WRITE "test-stdout_${MPIEXEC_NTASKS}.log" "${TEST_STDOUT_VARIABLE}")
FILE(WRITE "test-stderr_${MPIEXEC_NTASKS}.log" "${TEST_STDERR_VARIABLE}")
ELSE()
EXECUTE_PROCESS(COMMAND ${ELMERSOLVER_BIN}
OUTPUT_VARIABLE TEST_STDOUT_VARIABLE
Expand Down Expand Up @@ -167,13 +167,13 @@ MACRO(EXECUTE_ELMER_SOLVER SIFNAME)
SET(ENV{ELMER_LIB} "${BINARY_DIR}/fem/src/modules")

IF(NOT(WIN32))
SET(ENV{PATH} "$ENV{PATH}:${BINARY_DIR}/meshgen2d/src/:${BINARY_DIR}/fem/src")
SET(ENV{PATH} "${BINARY_DIR}/meshgen2d/src/:${BINARY_DIR}/fem/src:$ENV{PATH}")
ENDIF(NOT(WIN32))

IF(WIN32)
SET(ENV{PATH} "$ENV{PATH};${BINARY_DIR}/meshgen2d/src/;${BINARY_DIR}/fem/src")
SET(ENV{PATH} "${BINARY_DIR}/meshgen2d/src/;${BINARY_DIR}/fem/src;$ENV{PATH}")
GET_FILENAME_COMPONENT(COMPILER_DIRECTORY ${CMAKE_Fortran_COMPILER} PATH)
SET(ENV{PATH} "$ENV{PATH};${COMPILER_DIRECTORY};$ENV{ELMER_HOME};$ENV{ELMER_LIB};${BINARY_DIR}/fhutiter/src;${BINARY_DIR}/matc/src;${BINARY_DIR}/mathlibs/src/arpack")
SET(ENV{PATH} "$ENV{ELMER_HOME};$ENV{ELMER_LIB};${BINARY_DIR}/fhutiter/src;${BINARY_DIR}/matc/src;${BINARY_DIR}/mathlibs/src/arpack;${BINARY_DIR}/mathlibs/src/parpack;${COMPILER_DIRECTORY};$ENV{PATH}")
ENDIF(WIN32)

EXECUTE_PROCESS(COMMAND ${ELMERSOLVER_BIN} ${SIFNAME}
Expand All @@ -187,17 +187,17 @@ MACRO(EXECUTE_ELMER_SOLVER_MPI SIFNAME)
SET(ENV{ELMER_LIB} "${BINARY_DIR}/fem/src/modules")

IF(NOT(WIN32))
SET(ENV{PATH} "$ENV{PATH}:${BINARY_DIR}/meshgen2d/src/:${BINARY_DIR}/fem/src")
SET(ENV{PATH} "${BINARY_DIR}/meshgen2d/src/:${BINARY_DIR}/fem/src:$ENV{PATH}")
ENDIF(NOT(WIN32))

IF(WIN32)
SET(ENV{PATH} "$ENV{PATH};${BINARY_DIR}/meshgen2d/src/;${BINARY_DIR}/fem/src")
SET(ENV{PATH} "${BINARY_DIR}/meshgen2d/src/;${BINARY_DIR}/fem/src;$ENV{PATH}")
GET_FILENAME_COMPONENT(COMPILER_DIRECTORY ${CMAKE_Fortran_COMPILER} PATH)
SET(ENV{PATH} "$ENV{PATH};${COMPILER_DIRECTORY};$ENV{ELMER_HOME};$ENV{ELMER_LIB};${BINARY_DIR}/fhutiter/src;${BINARY_DIR}/matc/src;${BINARY_DIR}/mathlibs/src/arpack")
SET(ENV{PATH} "$ENV{ELMER_HOME};$ENV{ELMER_LIB};${BINARY_DIR}/fhutiter/src;${BINARY_DIR}/matc/src;${BINARY_DIR}/mathlibs/src/arpack;${BINARY_DIR}/mathlibs/src/parpack;$ENV{PATH};${COMPILER_DIRECTORY};$ENV{PATH}")
ENDIF(WIN32)

IF(WITH_MPI)
EXECUTE_PROCESS(COMMAND ${MPIEXEC} ${MPIEXEC_NUMPROC_FLAG} ${MPIEXEC_NTASKS} ${MPIEXEC_PREFLAGS} ${ELMERSOLVER_BIN} ${SIFNAME}
EXECUTE_PROCESS(COMMAND "${MPIEXEC}" ${MPIEXEC_NUMPROC_FLAG} ${MPIEXEC_NTASKS} ${MPIEXEC_PREFLAGS} ${ELMERSOLVER_BIN} ${SIFNAME}
OUTPUT_FILE "${SIFNAME}-stdout_${MPIEXEC_NTASKS}.log"
ERROR_FILE "${SIFNAME}-stderr_${MPIEXEC_NSTAKS}.log")
ELSE()
Expand Down

0 comments on commit 96feadf

Please sign in to comment.