# # To avoid complaints from Ninja # add_library(lib-getopts m_getopts.f90) target_link_libraries(lib-getopts ${PROJECT_NAME}-lib ) set(top_src_dir "${PROJECT_SOURCE_DIR}/src") add_executable( getz getz.F90 custom_psml_die.F90 ) add_executable( getz_stat getz_stat.F90 custom_psml_die.F90 ) add_executable( show_psml show_psml.F90 custom_psml_die.F90 interpolate_drh.f90 ) target_link_libraries(getz PRIVATE ${PROJECT_NAME}-lib lib-getopts ) target_link_libraries(getz_stat PRIVATE ${PROJECT_NAME}-lib lib-getopts ) target_link_libraries(show_psml PRIVATE ${PROJECT_NAME}-lib lib-getopts ) file(MAKE_DIRECTORY "${PROJECT_BINARY_DIR}/install_tests") file(COPY 80_Hg.psml DESTINATION "${PROJECT_BINARY_DIR}/install_tests") file(COPY 29_Cu_m.psml DESTINATION "${PROJECT_BINARY_DIR}/install_tests") file(COPY bad.psml DESTINATION "${PROJECT_BINARY_DIR}/install_tests") file(COPY mgga.psml DESTINATION "${PROJECT_BINARY_DIR}/install_tests") add_test( NAME libpsml_getz COMMAND getz 80_Hg.psml WORKING_DIRECTORY "${PROJECT_BINARY_DIR}/install_tests" ) set_property (TEST libpsml_getz PROPERTY PASS_REGULAR_EXPRESSION "80") # This second test involves a call to the custom error handler add_test( NAME libpsml_getz_die COMMAND getz NonExistentFile WORKING_DIRECTORY "${PROJECT_BINARY_DIR}/install_tests" ) set_property (TEST libpsml_getz_die PROPERTY PASS_REGULAR_EXPRESSION "Custom psml_die") #-- Tests of 'stat' return variable add_test( NAME libpsml_getz_stat_non_existent COMMAND getz_stat NonExistentFile WORKING_DIRECTORY "${PROJECT_BINARY_DIR}/install_tests" ) set_property (TEST libpsml_getz_stat_non_existent PROPERTY PASS_REGULAR_EXPRESSION "PSML reader error") #-- Test of a malformed .psml file. The error will be caught by xmlf90, # which would either set a 'stat' return variable or stop the program. add_test( NAME libpsml_getz_stat_parsing COMMAND getz_stat bad.psml WORKING_DIRECTORY "${PROJECT_BINARY_DIR}/install_tests" ) if(XMLF90_PARSE_HAS_STAT) set_property (TEST libpsml_getz_stat_parsing PROPERTY PASS_REGULAR_EXPRESSION "PSML reader error") else() # In this case the psml reader will not get a status flag, # and the program will stop after having printed the # standard xmlf90 error message set_property (TEST libpsml_getz_stat_parsing PROPERTY PASS_REGULAR_EXPRESSION "Nesting error: End tag: psml") endif() #-- add_test( NAME libpsml_show COMMAND show_psml -p 80_Hg.psml WORKING_DIRECTORY "${PROJECT_BINARY_DIR}/install_tests" ) set_property (TEST libpsml_show PROPERTY PASS_REGULAR_EXPRESSION "scalar_relativistic 3 2 -0.291436") #-- add_test( NAME libpsml_mgga COMMAND show_psml -p mgga.psml WORKING_DIRECTORY "${PROJECT_BINARY_DIR}/install_tests" ) set_property (TEST libpsml_mgga PROPERTY PASS_REGULAR_EXPRESSION "model-tau-form : MGGA function")