From 11192076a467d308fd0a82384660446b45c1bb08 Mon Sep 17 00:00:00 2001 From: xoviat Date: Sat, 27 Jan 2018 16:01:26 -0600 Subject: [PATCH] CMake: use script for ctest --- test/CMakeLists.txt | 39 ++++++++++++++++++--------------------- test/test_helper.cmake | 9 +++++++++ 2 files changed, 27 insertions(+), 21 deletions(-) create mode 100644 test/test_helper.cmake diff --git a/test/CMakeLists.txt b/test/CMakeLists.txt index adeee3452..5cffc2269 100644 --- a/test/CMakeLists.txt +++ b/test/CMakeLists.txt @@ -14,26 +14,23 @@ add_executable(${test_bin} ${test_bin}.f) target_link_libraries(${test_bin} ${OpenBLAS_LIBNAME}) endforeach() -# $1 exec, $2 input, $3 output_result -FILE(WRITE ${CMAKE_CURRENT_BINARY_DIR}/test_helper.sh -"rm -f $3\n" -"$1 < $2\n" -"grep -q FATAL $3\n" -"if [ $? -eq 0 ]; then\n" -"echo Error\n" -"exit 1\n" -"else\n" -"exit 0\n" -"fi\n" -) - set(float_types s d c z) foreach(float_type ${float_types}) -string(TOUPPER ${float_type} float_type_upper) -add_test(NAME "${float_type}blas1" - COMMAND "${CMAKE_CURRENT_BINARY_DIR}/${float_type}blat1") -add_test(NAME "${float_type}blas2" - COMMAND sh "${CMAKE_CURRENT_BINARY_DIR}/test_helper.sh" "${CMAKE_CURRENT_BINARY_DIR}/${float_type}blat2" "${PROJECT_SOURCE_DIR}/test/${float_type}blat2.dat" ${float_type_upper}BLAT2.SUMM) -add_test(NAME "${float_type}blas3" - COMMAND sh "${CMAKE_CURRENT_BINARY_DIR}/test_helper.sh" "${CMAKE_CURRENT_BINARY_DIR}/${float_type}blat3" "${PROJECT_SOURCE_DIR}/test/${float_type}blat3.dat" ${float_type_upper}BLAT3.SUMM) -endforeach() + string(TOUPPER ${float_type} float_type_upper) + add_test(NAME "${float_type}blas1" + COMMAND "${CMAKE_CURRENT_BINARY_DIR}/${float_type}blat1") + add_test(NAME "${float_type}blas2" + COMMAND ${CMAKE_COMMAND} + "-DTEST_COMMAND=${CMAKE_CURRENT_BINARY_DIR}/${float_type}blat2" + "-DTEST_INPUT=${PROJECT_SOURCE_DIR}/test/${float_type}blat2.dat" + "-DTEST_FILE=${float_type_upper}BLAT2.SUMM" + -P "${CMAKE_CURRENT_SOURCE_DIR}/test_helper.cmake" + ) + add_test(NAME "${float_type}blas3" + COMMAND ${CMAKE_COMMAND} + "-DTEST_COMMAND=${CMAKE_CURRENT_BINARY_DIR}/${float_type}blat3" + "-DTEST_INPUT=${PROJECT_SOURCE_DIR}/test/${float_type}blat3.dat" + "-DTEST_FILE=${float_type_upper}BLAT3.SUMM" + -P "${CMAKE_CURRENT_SOURCE_DIR}/test_helper.cmake" + ) + endforeach() diff --git a/test/test_helper.cmake b/test/test_helper.cmake new file mode 100644 index 000000000..2eca27842 --- /dev/null +++ b/test/test_helper.cmake @@ -0,0 +1,9 @@ +file(REMOVE ${TEST_FILE}) +execute_process(COMMAND ${TEST_COMMAND} + INPUT_FILE ${TEST_INPUT} +) +FILE(READ ${TEST_FILE} TEST_FILE_CONTENTS) +STRING(FIND "${TEST_FILE_CONTENTS}" "FATAL" CONTAINS_FATAL) +IF(NOT (${CONTAINS_FATAL} EQUAL -1)) + MESSAGE(FATAL_ERROR "Error") +ENDIF() \ No newline at end of file