From ac09238db21bdb66c4f77dcc9b41c5a7d2720dee Mon Sep 17 00:00:00 2001 From: xoviat Date: Fri, 26 Jan 2018 13:47:42 -0600 Subject: [PATCH 01/12] CMake: Enable testing with MSVC --- CMakeLists.txt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/CMakeLists.txt b/CMakeLists.txt index b5789119a..979f90fba 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -191,7 +191,7 @@ if (MSVC OR NOT NOFORTRAN) add_subdirectory(utest) endif() -if (NOT MSVC AND NOT NOFORTRAN) +if (NOT NOFORTRAN) # Build test and ctest add_subdirectory(test) if(NOT NO_CBLAS) From 1a1573ebd7361fb3dc2de199a998ab9b56ebb1f5 Mon Sep 17 00:00:00 2001 From: xoviat Date: Fri, 26 Jan 2018 13:49:16 -0600 Subject: [PATCH 02/12] Appveyor: enable ctest --- appveyor.yml | 5 ++--- 1 file changed, 2 insertions(+), 3 deletions(-) diff --git a/appveyor.yml b/appveyor.yml index 141d3a130..1aeb15093 100644 --- a/appveyor.yml +++ b/appveyor.yml @@ -60,7 +60,6 @@ before_build: build_script: - cmake --build . + test_script: - - echo Running Test - - cd utest - - openblas_utest + - ctest -j2 From 623a9f45e729d426d51a1a927dab500db337cfa0 Mon Sep 17 00:00:00 2001 From: xoviat Date: Fri, 26 Jan 2018 15:10:27 -0600 Subject: [PATCH 03/12] Rename OPENBLAS_FAILED --- ctest/c_xerbla.c | 2 +- ctest/cblas_test.h | 4 +++- 2 files changed, 4 insertions(+), 2 deletions(-) diff --git a/ctest/c_xerbla.c b/ctest/c_xerbla.c index 9c5357653..91d07e047 100644 --- a/ctest/c_xerbla.c +++ b/ctest/c_xerbla.c @@ -81,7 +81,7 @@ void cblas_xerbla(blasint info, char *rout, char *form, ...) printf("***** XERBLA WAS CALLED WITH INFO = %d INSTEAD OF %d in %s *******\n",info, cblas_info, rout); cblas_lerr = PASSED; cblas_ok = FALSE; - } else cblas_lerr = FAILED; + } else cblas_lerr = OPENBLAS_FAILED; } #ifdef F77_Char diff --git a/ctest/cblas_test.h b/ctest/cblas_test.h index 3eeb46ac2..5dd75c6d9 100644 --- a/ctest/cblas_test.h +++ b/ctest/cblas_test.h @@ -15,7 +15,9 @@ #define TEST_ROW_MJR 1 #define FALSE 0 -#define FAILED 0 + +/* Needed because failed is already defined on MSVC */ +#define OPENBLAS_FAILED 0 #define TEST_COL_MJR 0 #define INVALID -1 From 8600a80a6f30364fd964f2afd44d9d85ce00f12c Mon Sep 17 00:00:00 2001 From: xoviat Date: Fri, 26 Jan 2018 18:34:13 -0600 Subject: [PATCH 04/12] Appveyor: use release build --- appveyor.yml | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/appveyor.yml b/appveyor.yml index 1aeb15093..231d38da5 100644 --- a/appveyor.yml +++ b/appveyor.yml @@ -52,9 +52,9 @@ install: before_build: - ps: if (-Not (Test-Path .\build)) { mkdir build } - cd build - - if [%COMPILER%]==[cl] cmake -G "Visual Studio 15 2017 Win64" .. - - if [%WITH_FORTRAN%]==[no] cmake -G "Ninja" -DCMAKE_CXX_COMPILER=clang-cl -DCMAKE_C_COMPILER=clang-cl .. - - if [%WITH_FORTRAN%]==[yes] cmake -G "Ninja" -DCMAKE_CXX_COMPILER=clang-cl -DCMAKE_C_COMPILER=clang-cl -DCMAKE_Fortran_COMPILER=flang -DBUILD_WITHOUT_LAPACK=no -DNOFORTRAN=0 .. + - if [%COMPILER%]==[cl] cmake -G "Visual Studio 15 2017 Win64" -DCMAKE_BUILD_TYPE=Release .. + - if [%WITH_FORTRAN%]==[no] cmake -G "Ninja" -DCMAKE_CXX_COMPILER=clang-cl -DCMAKE_C_COMPILER=clang-cl -DCMAKE_BUILD_TYPE=Release .. + - if [%WITH_FORTRAN%]==[yes] cmake -G "Ninja" -DCMAKE_CXX_COMPILER=clang-cl -DCMAKE_C_COMPILER=clang-cl -DCMAKE_Fortran_COMPILER=flang -DBUILD_WITHOUT_LAPACK=no -DNOFORTRAN=0 -DCMAKE_BUILD_TYPE=Release .. - if [%DYNAMIC_ARCH%]==[ON] cmake -DDYNAMIC_ARCH=ON .. build_script: From 776d675b68541a6edf972277cbddcce16b0b6152 Mon Sep 17 00:00:00 2001 From: xoviat Date: Sat, 27 Jan 2018 15:04:03 -0600 Subject: [PATCH 05/12] CMake: use BUILD_WITHOUT_LAPACK --- CMakeLists.txt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/CMakeLists.txt b/CMakeLists.txt index 979f90fba..936a64e58 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -191,7 +191,7 @@ if (MSVC OR NOT NOFORTRAN) add_subdirectory(utest) endif() -if (NOT NOFORTRAN) +if ((NOT MSVC OR NOT BUILD_WITHOUT_LAPACK) AND NOT NOFORTRAN) # Build test and ctest add_subdirectory(test) if(NOT NO_CBLAS) From 5ccb8af871b888ad3b0064c75256b73c6da5270b Mon Sep 17 00:00:00 2001 From: xoviat Date: Sat, 27 Jan 2018 15:51:08 -0600 Subject: [PATCH 06/12] CMake: rewrite helper in CMake --- ctest/CMakeLists.txt | 16 ++++++++++------ ctest/test_cblas_helper.cmake | 3 +++ 2 files changed, 13 insertions(+), 6 deletions(-) create mode 100644 ctest/test_cblas_helper.cmake diff --git a/ctest/CMakeLists.txt b/ctest/CMakeLists.txt index 14c9d1944..99415b6fb 100644 --- a/ctest/CMakeLists.txt +++ b/ctest/CMakeLists.txt @@ -5,10 +5,6 @@ enable_language(Fortran) set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -DADD${BU} -DCBLAS") -FILE(WRITE ${CMAKE_CURRENT_BINARY_DIR}/test_cblas_helper.sh -"$1 < $2\n" -) - foreach(float_type ${FLOAT_TYPES}) string(SUBSTRING ${float_type} 0 1 float_char_upper) string(TOLOWER ${float_char_upper} float_char) @@ -30,7 +26,11 @@ foreach(float_type ${FLOAT_TYPES}) constant.c) target_link_libraries(x${float_char}cblat2 ${OpenBLAS_LIBNAME}) add_test(NAME "x${float_char}cblat2" - COMMAND sh "${CMAKE_CURRENT_BINARY_DIR}/test_cblas_helper.sh" "${CMAKE_CURRENT_BINARY_DIR}/x${float_char}cblat2" "${PROJECT_SOURCE_DIR}/ctest/${float_char}in2") + COMMAND ${CMAKE_COMMAND} + "-DTEST_COMMAND=${CMAKE_CURRENT_BINARY_DIR}/x${float_char}cblat2" + "-DTEST_INPUT=${PROJECT_SOURCE_DIR}/ctest/${float_char}in2" + -P "${CMAKE_CURRENT_SOURCE_DIR}/test_cblas_helper.cmake" + ) #level3 add_executable(x${float_char}cblat3 @@ -42,6 +42,10 @@ foreach(float_type ${FLOAT_TYPES}) constant.c) target_link_libraries(x${float_char}cblat3 ${OpenBLAS_LIBNAME}) add_test(NAME "x${float_char}cblat3" - COMMAND sh "${CMAKE_CURRENT_BINARY_DIR}/test_cblas_helper.sh" "${CMAKE_CURRENT_BINARY_DIR}/x${float_char}cblat3" "${PROJECT_SOURCE_DIR}/ctest/${float_char}in3") + COMMAND ${CMAKE_COMMAND} + "-DTEST_COMMAND=${CMAKE_CURRENT_BINARY_DIR}/x${float_char}cblat3" + "-DTEST_INPUT=${PROJECT_SOURCE_DIR}/ctest/${float_char}in3" + -P "${CMAKE_CURRENT_SOURCE_DIR}/test_cblas_helper.cmake" + ) endforeach() diff --git a/ctest/test_cblas_helper.cmake b/ctest/test_cblas_helper.cmake new file mode 100644 index 000000000..678e1d394 --- /dev/null +++ b/ctest/test_cblas_helper.cmake @@ -0,0 +1,3 @@ +execute_process(COMMAND ${TEST_COMMAND} + INPUT_FILE ${TEST_INPUT} +) From 11192076a467d308fd0a82384660446b45c1bb08 Mon Sep 17 00:00:00 2001 From: xoviat Date: Sat, 27 Jan 2018 16:01:26 -0600 Subject: [PATCH 07/12] 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 From e9d96906d71a7c6934def95d5c3edc144ce7f41e Mon Sep 17 00:00:00 2001 From: xoviat Date: Sat, 27 Jan 2018 16:05:15 -0600 Subject: [PATCH 08/12] Appveyor: consistency --- appveyor.yml | 13 ++++++------- 1 file changed, 6 insertions(+), 7 deletions(-) diff --git a/appveyor.yml b/appveyor.yml index 231d38da5..9a2d0c83d 100644 --- a/appveyor.yml +++ b/appveyor.yml @@ -30,10 +30,9 @@ environment: CONDA_INSTALL_LOCN: C:\\Miniconda36-x64 matrix: - COMPILER: clang-cl - WITH_FORTRAN: yes + FORTRAN: ON - COMPILER: clang-cl DYNAMIC_ARCH: ON - WITH_FORTRAN: no - COMPILER: cl install: @@ -41,9 +40,9 @@ install: - if [%COMPILER%]==[clang-cl] conda config --add channels conda-forge --force - if [%COMPILER%]==[clang-cl] conda install --yes --quiet clangdev cmake - - if [%WITH_FORTRAN%]==[no] conda install --yes --quiet ninja - - if [%WITH_FORTRAN%]==[yes] conda install --yes --quiet -c isuruf kitware-ninja - - if [%WITH_FORTRAN%]==[yes] conda install --yes --quiet flang + - if [%FORTRAN%]==[] conda install --yes --quiet ninja + - if [%FORTRAN%]==[ON] conda install --yes --quiet -c isuruf kitware-ninja + - if [%FORTRAN%]==[ON] conda install --yes --quiet flang - if [%COMPILER%]==[clang-cl] call "C:\Program Files (x86)\Microsoft Visual Studio\2017\Community\VC\Auxiliary\Build\vcvarsall.bat" x64 - if [%COMPILER%]==[clang-cl] set "LIB=%CONDA_INSTALL_LOCN%\Library\lib;%LIB%" @@ -53,8 +52,8 @@ before_build: - ps: if (-Not (Test-Path .\build)) { mkdir build } - cd build - if [%COMPILER%]==[cl] cmake -G "Visual Studio 15 2017 Win64" -DCMAKE_BUILD_TYPE=Release .. - - if [%WITH_FORTRAN%]==[no] cmake -G "Ninja" -DCMAKE_CXX_COMPILER=clang-cl -DCMAKE_C_COMPILER=clang-cl -DCMAKE_BUILD_TYPE=Release .. - - if [%WITH_FORTRAN%]==[yes] cmake -G "Ninja" -DCMAKE_CXX_COMPILER=clang-cl -DCMAKE_C_COMPILER=clang-cl -DCMAKE_Fortran_COMPILER=flang -DBUILD_WITHOUT_LAPACK=no -DNOFORTRAN=0 -DCMAKE_BUILD_TYPE=Release .. + - if [%FORTRAN%]==[] cmake -G "Ninja" -DCMAKE_CXX_COMPILER=clang-cl -DCMAKE_C_COMPILER=clang-cl -DCMAKE_BUILD_TYPE=Release .. + - if [%FORTRAN%]==[ON] cmake -G "Ninja" -DCMAKE_CXX_COMPILER=clang-cl -DCMAKE_C_COMPILER=clang-cl -DCMAKE_Fortran_COMPILER=flang -DBUILD_WITHOUT_LAPACK=OFF -DCMAKE_BUILD_TYPE=Release .. - if [%DYNAMIC_ARCH%]==[ON] cmake -DDYNAMIC_ARCH=ON .. build_script: From 2d2915233c697dcd547774b56cb2b9c1f89beb29 Mon Sep 17 00:00:00 2001 From: xoviat Date: Sat, 27 Jan 2018 16:47:21 -0600 Subject: [PATCH 09/12] CMake: format --- ctest/test_cblas_helper.cmake | 2 +- test/test_helper.cmake | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/ctest/test_cblas_helper.cmake b/ctest/test_cblas_helper.cmake index 678e1d394..06d116dce 100644 --- a/ctest/test_cblas_helper.cmake +++ b/ctest/test_cblas_helper.cmake @@ -1,3 +1,3 @@ execute_process(COMMAND ${TEST_COMMAND} - INPUT_FILE ${TEST_INPUT} + INPUT_FILE ${TEST_INPUT} ) diff --git a/test/test_helper.cmake b/test/test_helper.cmake index 2eca27842..4724ea6d1 100644 --- a/test/test_helper.cmake +++ b/test/test_helper.cmake @@ -1,6 +1,6 @@ file(REMOVE ${TEST_FILE}) execute_process(COMMAND ${TEST_COMMAND} - INPUT_FILE ${TEST_INPUT} + INPUT_FILE ${TEST_INPUT} ) FILE(READ ${TEST_FILE} TEST_FILE_CONTENTS) STRING(FIND "${TEST_FILE_CONTENTS}" "FATAL" CONTAINS_FATAL) From 1ddb11b6e9aef64f9e85647f462cf418860841a3 Mon Sep 17 00:00:00 2001 From: xoviat Date: Sat, 27 Jan 2018 17:02:31 -0600 Subject: [PATCH 10/12] CMake: use generator expression --- ctest/CMakeLists.txt | 6 +++--- test/CMakeLists.txt | 6 +++--- 2 files changed, 6 insertions(+), 6 deletions(-) diff --git a/ctest/CMakeLists.txt b/ctest/CMakeLists.txt index 99415b6fb..873d2ea1a 100644 --- a/ctest/CMakeLists.txt +++ b/ctest/CMakeLists.txt @@ -14,7 +14,7 @@ foreach(float_type ${FLOAT_TYPES}) c_${float_char}blas1.c) target_link_libraries(x${float_char}cblat1 ${OpenBLAS_LIBNAME}) add_test(NAME "x${float_char}cblat1" - COMMAND "${CMAKE_CURRENT_BINARY_DIR}/x${float_char}cblat1") + COMMAND "$") #level2 add_executable(x${float_char}cblat2 @@ -27,7 +27,7 @@ foreach(float_type ${FLOAT_TYPES}) target_link_libraries(x${float_char}cblat2 ${OpenBLAS_LIBNAME}) add_test(NAME "x${float_char}cblat2" COMMAND ${CMAKE_COMMAND} - "-DTEST_COMMAND=${CMAKE_CURRENT_BINARY_DIR}/x${float_char}cblat2" + "-DTEST_COMMAND=$" "-DTEST_INPUT=${PROJECT_SOURCE_DIR}/ctest/${float_char}in2" -P "${CMAKE_CURRENT_SOURCE_DIR}/test_cblas_helper.cmake" ) @@ -43,7 +43,7 @@ foreach(float_type ${FLOAT_TYPES}) target_link_libraries(x${float_char}cblat3 ${OpenBLAS_LIBNAME}) add_test(NAME "x${float_char}cblat3" COMMAND ${CMAKE_COMMAND} - "-DTEST_COMMAND=${CMAKE_CURRENT_BINARY_DIR}/x${float_char}cblat3" + "-DTEST_COMMAND=$" "-DTEST_INPUT=${PROJECT_SOURCE_DIR}/ctest/${float_char}in3" -P "${CMAKE_CURRENT_SOURCE_DIR}/test_cblas_helper.cmake" ) diff --git a/test/CMakeLists.txt b/test/CMakeLists.txt index 5cffc2269..4e7b9f3d3 100644 --- a/test/CMakeLists.txt +++ b/test/CMakeLists.txt @@ -18,17 +18,17 @@ 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") + COMMAND "$") add_test(NAME "${float_type}blas2" COMMAND ${CMAKE_COMMAND} - "-DTEST_COMMAND=${CMAKE_CURRENT_BINARY_DIR}/${float_type}blat2" + "-DTEST_COMMAND=$" "-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_COMMAND=$" "-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" From cf2e0c1b78eae5730d91544f8fa2183b5abe13c5 Mon Sep 17 00:00:00 2001 From: xoviat Date: Sat, 27 Jan 2018 17:25:19 -0600 Subject: [PATCH 11/12] TMP Run ctest in verbose mode --- appveyor.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/appveyor.yml b/appveyor.yml index 9a2d0c83d..b7fc9b401 100644 --- a/appveyor.yml +++ b/appveyor.yml @@ -61,4 +61,4 @@ build_script: test_script: - - ctest -j2 + - ctest -VV From bf163dea7e237dee4d12505e7e35d07a2ab751bc Mon Sep 17 00:00:00 2001 From: xoviat Date: Sun, 28 Jan 2018 14:54:20 -0600 Subject: [PATCH 12/12] CMake: use custom directory4 --- test/CMakeLists.txt | 4 ++-- test/test_helper.cmake | 3 +++ 2 files changed, 5 insertions(+), 2 deletions(-) diff --git a/test/CMakeLists.txt b/test/CMakeLists.txt index 4e7b9f3d3..f5cbd544d 100644 --- a/test/CMakeLists.txt +++ b/test/CMakeLists.txt @@ -23,14 +23,14 @@ foreach(float_type ${float_types}) COMMAND ${CMAKE_COMMAND} "-DTEST_COMMAND=$" "-DTEST_INPUT=${PROJECT_SOURCE_DIR}/test/${float_type}blat2.dat" - "-DTEST_FILE=${float_type_upper}BLAT2.SUMM" + "-DTEST_FILE=${CMAKE_BINARY_DIR}/test/${float_type}blas2/${float_type_upper}BLAT2.SUMM" -P "${CMAKE_CURRENT_SOURCE_DIR}/test_helper.cmake" ) add_test(NAME "${float_type}blas3" COMMAND ${CMAKE_COMMAND} "-DTEST_COMMAND=$" "-DTEST_INPUT=${PROJECT_SOURCE_DIR}/test/${float_type}blat3.dat" - "-DTEST_FILE=${float_type_upper}BLAT3.SUMM" + "-DTEST_FILE=${CMAKE_BINARY_DIR}/test/${float_type}blas2/${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 index 4724ea6d1..6dfe63a78 100644 --- a/test/test_helper.cmake +++ b/test/test_helper.cmake @@ -1,6 +1,9 @@ +get_filename_component(TEST_DIRECTORY ${TEST_FILE} DIRECTORY) +file(MAKE_DIRECTORY ${TEST_DIRECTORY}) file(REMOVE ${TEST_FILE}) execute_process(COMMAND ${TEST_COMMAND} INPUT_FILE ${TEST_INPUT} + WORKING_DIRECTORY ${TEST_DIRECTORY} ) FILE(READ ${TEST_FILE} TEST_FILE_CONTENTS) STRING(FIND "${TEST_FILE_CONTENTS}" "FATAL" CONTAINS_FATAL)