From d5ae5606b05516693859825e7d6b301b7bd05201 Mon Sep 17 00:00:00 2001 From: Michael Hirsch Date: Sun, 3 Oct 2021 04:30:24 -0400 Subject: [PATCH] test stdin via execute_process --- examples/CMakeLists.txt | 26 +++++++++++--------------- examples/run_ex.cmake | 15 +++++++++++++++ 2 files changed, 26 insertions(+), 15 deletions(-) create mode 100644 examples/run_ex.cmake diff --git a/examples/CMakeLists.txt b/examples/CMakeLists.txt index c261c2d..c4aa95d 100644 --- a/examples/CMakeLists.txt +++ b/examples/CMakeLists.txt @@ -1,5 +1,3 @@ -find_program(PWSH NAMES pwsh powershell) - set(_sfilename input_simpletest_real) set(_dfilename input_simpletest_real) set(_cfilename input_simpletest_cmplx) @@ -12,28 +10,26 @@ foreach(a s d) add_executable(${a}simpletest ${a}simpletest.F) target_link_libraries(${a}simpletest PRIVATE MUMPS::MUMPS MPI::MPI_Fortran) - if(PWSH) - add_test(NAME mumps:example_${a} COMMAND ${PWSH} -c \"Get-Content ${CMAKE_CURRENT_SOURCE_DIR}/${_${a}filename} | ${MPIEXEC_EXECUTABLE} ${MPIEXEC_NUMPROC_FLAG} 2 $\") - elseif(UNIX) - add_test(NAME mumps:example_${a} COMMAND sh -c "${MPIEXEC_EXECUTABLE} ${MPIEXEC_NUMPROC_FLAG} 2 $ < ${CMAKE_CURRENT_SOURCE_DIR}/${_${a}filename}") - else() - continue() - endif() + + add_test(NAME mumps:example_${a} COMMAND ${CMAKE_COMMAND} -Dexe:FILEPATH=$ -Din:PATH=${CMAKE_CURRENT_SOURCE_DIR}/${_${a}filename} -P ${PROJECT_SOURCE_DIR}/examples/run_ex.cmake) set_tests_properties(mumps:example_${a} PROPERTIES RESOURCE_LOCK cpu_mpi) + add_executable(${a}simpletest_save_restore ${a}simpletest_save_restore.F) target_link_libraries(${a}simpletest_save_restore PRIVATE MUMPS::MUMPS MPI::MPI_Fortran) - if(PWSH) - add_test(NAME mumps:saveRestore_${a} COMMAND ${PWSH} -c \"Get-Content ${CMAKE_CURRENT_SOURCE_DIR}/${_${a}filename} | ${MPIEXEC_EXECUTABLE} ${MPIEXEC_NUMPROC_FLAG} 2 $\") - elseif(UNIX) - add_test(NAME mumps:saveRestore_${a} COMMAND ${SHELL} -c "${MPIEXEC_EXECUTABLE} ${MPIEXEC_NUMPROC_FLAG} 2 $ < ${CMAKE_CURRENT_SOURCE_DIR}/${_${a}filename}") - endif() + + add_test(NAME mumps:saveRestore_${a} COMMAND ${CMAKE_COMMAND} -Dexe:FILEPATH=$ -Din:PATH=${CMAKE_CURRENT_SOURCE_DIR}/${_${a}filename} -P ${PROJECT_SOURCE_DIR}/examples/run_ex.cmake) set_tests_properties(mumps:saveRestore_${a} PROPERTIES RESOURCE_LOCK cpu_mpi) endforeach() if(d IN_LIST arith) add_executable(c_example c_example.c) target_link_libraries(c_example PRIVATE MUMPS::MUMPS MPI::MPI_C) - add_test(NAME mumps:example_C COMMAND ${MPIEXEC_EXECUTABLE} ${MPIEXEC_NUMPROC_FLAG} 2 $) + if(parallel) + add_test(NAME mumps:example_C + COMMAND ${MPIEXEC_EXECUTABLE} ${MPIEXEC_NUMPROC_FLAG} 2 $) + else() + add_test(NAME mumps:example_C COMMAND $) + endif() set_tests_properties(mumps:example_C PROPERTIES RESOURCE_LOCK cpu_mpi) endif() diff --git a/examples/run_ex.cmake b/examples/run_ex.cmake new file mode 100644 index 0000000..3061222 --- /dev/null +++ b/examples/run_ex.cmake @@ -0,0 +1,15 @@ + +if(parallel) + set(cmd mpiexec -n 2 ${exe}) +else() + set(cmd ${exe}) +endif() + +execute_process(COMMAND ${cmd} +INPUT_FILE ${in} +RESULT_VARIABLE ret +) + +if(NOT ret EQUAL 0) + message(FATAL_ERROR "return code ${ret}") +endif()