1 2INCLUDE("${qmcpack_SOURCE_DIR}/CMake/test_labels.cmake") 3 4# Runs Executable Tests 5 6IF (QMC_NO_SLOW_CUSTOM_TESTING_COMMANDS) 7 FUNCTION(ADD_QE_TEST) 8 ENDFUNCTION() 9 FUNCTION(RUN_QE_TEST) 10 ENDFUNCTION() 11ELSE (QMC_NO_SLOW_CUSTOM_TESTING_COMMANDS) 12 13FUNCTION( ADD_QE_TEST TESTNAME PROCS TEST_BINARY NPOOL WORKDIR TEST_INPUT) 14 IF ( HAVE_MPI ) 15 ADD_TEST( NAME ${TESTNAME} COMMAND ${MPIEXEC_EXECUTABLE} ${MPIEXEC_NUMPROC_FLAG} ${PROCS} ${MPIEXEC_PREFLAGS} ${TEST_BINARY} -npool ${NPOOL} -inp ${TEST_INPUT} ) 16 ELSE() 17 ADD_TEST( NAME ${TESTNAME} COMMAND ${TEST_BINARY} -npool 1 -inp ${TEST_INPUT} ) 18 ENDIF() 19 SET_TESTS_PROPERTIES( ${TESTNAME} PROPERTIES ENVIRONMENT OMP_NUM_THREADS=1 PROCESSORS ${PROCS} PROCESSOR_AFFINITY TRUE WORKING_DIRECTORY ${WORKDIR} ) 20 SET_PROPERTY( TEST ${TESTNAME} APPEND PROPERTY LABELS "converter" ) 21ENDFUNCTION() 22 23FUNCTION( RUN_QE_TEST BASE_NAME SRC_DIR PROCS1 PROCS2 PROCS3 NPOOL1 NPOOL2 NPOOL3 TEST_INPUT_PREFIX TEST_NAME) 24 SET( FULL_NAME ${BASE_NAME}-np-${PROCS1}-${PROCS2}-${PROCS3}-nk-${NPOOL1}-${NPOOL2}-${NPOOL3} ) 25 SET( ${TEST_NAME} ${FULL_NAME} PARENT_SCOPE) 26 SET( MY_WORKDIR ${CMAKE_CURRENT_BINARY_DIR}/${FULL_NAME} ) 27 MESSAGE_VERBOSE("Adding test ${FULL_NAME}") 28 COPY_DIRECTORY( "${SRC_DIR}" "${MY_WORKDIR}" ) 29 ADD_QE_TEST(${FULL_NAME}-scf ${PROCS1} ${QE_PW_DIR}/pw.x ${NPOOL1} ${MY_WORKDIR} ${TEST_INPUT_PREFIX}-scf.in ) 30 IF(PROCS2 EQUAL 0) 31 ADD_QE_TEST(${FULL_NAME}-pw2x ${PROCS3} ${QE_PW2Q_DIR}/pw2qmcpack.x ${NPOOL3} ${MY_WORKDIR} ${TEST_INPUT_PREFIX}-pw2x.in ) 32 SET_TESTS_PROPERTIES(${FULL_NAME}-pw2x PROPERTIES DEPENDS ${FULL_NAME}-scf) 33 ELSE(PROCS2 EQUAL 0) 34 ADD_QE_TEST(${FULL_NAME}-nscf ${PROCS2} ${QE_PW_DIR}/pw.x ${NPOOL2} ${MY_WORKDIR} ${TEST_INPUT_PREFIX}-nscf.in ) 35 SET_TESTS_PROPERTIES(${FULL_NAME}-nscf PROPERTIES DEPENDS ${FULL_NAME}-scf) 36 ADD_QE_TEST(${FULL_NAME}-pw2x ${PROCS3} ${QE_PW2Q_DIR}/pw2qmcpack.x ${NPOOL3} ${MY_WORKDIR} ${TEST_INPUT_PREFIX}-pw2x.in ) 37 SET_TESTS_PROPERTIES(${FULL_NAME}-pw2x PROPERTIES DEPENDS ${FULL_NAME}-nscf) 38 ENDIF(PROCS2 EQUAL 0) 39ENDFUNCTION() 40 41ENDIF(QMC_NO_SLOW_CUSTOM_TESTING_COMMANDS) 42 43 44FUNCTION( SOFTLINK_H5 SOURCE TARGET PREFIX FILENAME TEST_NAME) 45 SET(${TEST_NAME} "LINK_${SOURCE}_TO_${TARGET}" PARENT_SCOPE) 46 ADD_TEST( NAME LINK_${SOURCE}_TO_${TARGET} COMMAND ${qmcpack_SOURCE_DIR}/tests/scripts/clean_and_link_h5.sh ${SOURCE}/out/${PREFIX}.pwscf.h5 ${SOURCE}-${TARGET}/${FILENAME} ) 47 SET_TESTS_PROPERTIES(LINK_${SOURCE}_TO_${TARGET} PROPERTIES DEPENDS ${SOURCE}-pw2x) 48 SET_PROPERTY( TEST LINK_${SOURCE}_TO_${TARGET} APPEND PROPERTY LABELS "converter" ) 49ENDFUNCTION() 50 51 52