This commit is contained in:
xoviat 2018-01-28 20:54:30 +00:00 committed by GitHub
commit 8949c744b9
8 changed files with 58 additions and 42 deletions

View File

@ -191,7 +191,7 @@ if (MSVC OR NOT NOFORTRAN)
add_subdirectory(utest) add_subdirectory(utest)
endif() endif()
if (NOT MSVC AND NOT NOFORTRAN) if ((NOT MSVC OR NOT BUILD_WITHOUT_LAPACK) AND NOT NOFORTRAN)
# Build test and ctest # Build test and ctest
add_subdirectory(test) add_subdirectory(test)
if(NOT NO_CBLAS) if(NOT NO_CBLAS)

View File

@ -30,10 +30,9 @@ environment:
CONDA_INSTALL_LOCN: C:\\Miniconda36-x64 CONDA_INSTALL_LOCN: C:\\Miniconda36-x64
matrix: matrix:
- COMPILER: clang-cl - COMPILER: clang-cl
WITH_FORTRAN: yes FORTRAN: ON
- COMPILER: clang-cl - COMPILER: clang-cl
DYNAMIC_ARCH: ON DYNAMIC_ARCH: ON
WITH_FORTRAN: no
- COMPILER: cl - COMPILER: cl
install: install:
@ -41,9 +40,9 @@ install:
- if [%COMPILER%]==[clang-cl] conda config --add channels conda-forge --force - if [%COMPILER%]==[clang-cl] conda config --add channels conda-forge --force
- if [%COMPILER%]==[clang-cl] conda install --yes --quiet clangdev cmake - if [%COMPILER%]==[clang-cl] conda install --yes --quiet clangdev cmake
- if [%WITH_FORTRAN%]==[no] conda install --yes --quiet ninja - if [%FORTRAN%]==[] conda install --yes --quiet ninja
- if [%WITH_FORTRAN%]==[yes] conda install --yes --quiet -c isuruf kitware-ninja - if [%FORTRAN%]==[ON] conda install --yes --quiet -c isuruf kitware-ninja
- if [%WITH_FORTRAN%]==[yes] conda install --yes --quiet flang - 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] 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%" - if [%COMPILER%]==[clang-cl] set "LIB=%CONDA_INSTALL_LOCN%\Library\lib;%LIB%"
@ -52,15 +51,14 @@ install:
before_build: before_build:
- ps: if (-Not (Test-Path .\build)) { mkdir build } - ps: if (-Not (Test-Path .\build)) { mkdir build }
- cd build - cd build
- if [%COMPILER%]==[cl] cmake -G "Visual Studio 15 2017 Win64" .. - 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 .. - if [%FORTRAN%]==[] 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 .. - 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 .. - if [%DYNAMIC_ARCH%]==[ON] cmake -DDYNAMIC_ARCH=ON ..
build_script: build_script:
- cmake --build . - cmake --build .
test_script: test_script:
- echo Running Test - ctest -VV
- cd utest
- openblas_utest

View File

@ -5,10 +5,6 @@ enable_language(Fortran)
set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -DADD${BU} -DCBLAS") 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}) foreach(float_type ${FLOAT_TYPES})
string(SUBSTRING ${float_type} 0 1 float_char_upper) string(SUBSTRING ${float_type} 0 1 float_char_upper)
string(TOLOWER ${float_char_upper} float_char) string(TOLOWER ${float_char_upper} float_char)
@ -18,7 +14,7 @@ foreach(float_type ${FLOAT_TYPES})
c_${float_char}blas1.c) c_${float_char}blas1.c)
target_link_libraries(x${float_char}cblat1 ${OpenBLAS_LIBNAME}) target_link_libraries(x${float_char}cblat1 ${OpenBLAS_LIBNAME})
add_test(NAME "x${float_char}cblat1" add_test(NAME "x${float_char}cblat1"
COMMAND "${CMAKE_CURRENT_BINARY_DIR}/x${float_char}cblat1") COMMAND "$<TARGET_FILE:x${float_char}cblat1>")
#level2 #level2
add_executable(x${float_char}cblat2 add_executable(x${float_char}cblat2
@ -30,7 +26,11 @@ foreach(float_type ${FLOAT_TYPES})
constant.c) constant.c)
target_link_libraries(x${float_char}cblat2 ${OpenBLAS_LIBNAME}) target_link_libraries(x${float_char}cblat2 ${OpenBLAS_LIBNAME})
add_test(NAME "x${float_char}cblat2" 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=$<TARGET_FILE:x${float_char}cblat2>"
"-DTEST_INPUT=${PROJECT_SOURCE_DIR}/ctest/${float_char}in2"
-P "${CMAKE_CURRENT_SOURCE_DIR}/test_cblas_helper.cmake"
)
#level3 #level3
add_executable(x${float_char}cblat3 add_executable(x${float_char}cblat3
@ -42,6 +42,10 @@ foreach(float_type ${FLOAT_TYPES})
constant.c) constant.c)
target_link_libraries(x${float_char}cblat3 ${OpenBLAS_LIBNAME}) target_link_libraries(x${float_char}cblat3 ${OpenBLAS_LIBNAME})
add_test(NAME "x${float_char}cblat3" 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=$<TARGET_FILE:x${float_char}cblat3>"
"-DTEST_INPUT=${PROJECT_SOURCE_DIR}/ctest/${float_char}in3"
-P "${CMAKE_CURRENT_SOURCE_DIR}/test_cblas_helper.cmake"
)
endforeach() endforeach()

View File

@ -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); printf("***** XERBLA WAS CALLED WITH INFO = %d INSTEAD OF %d in %s *******\n",info, cblas_info, rout);
cblas_lerr = PASSED; cblas_lerr = PASSED;
cblas_ok = FALSE; cblas_ok = FALSE;
} else cblas_lerr = FAILED; } else cblas_lerr = OPENBLAS_FAILED;
} }
#ifdef F77_Char #ifdef F77_Char

View File

@ -15,7 +15,9 @@
#define TEST_ROW_MJR 1 #define TEST_ROW_MJR 1
#define FALSE 0 #define FALSE 0
#define FAILED 0
/* Needed because failed is already defined on MSVC */
#define OPENBLAS_FAILED 0
#define TEST_COL_MJR 0 #define TEST_COL_MJR 0
#define INVALID -1 #define INVALID -1

View File

@ -0,0 +1,3 @@
execute_process(COMMAND ${TEST_COMMAND}
INPUT_FILE ${TEST_INPUT}
)

View File

@ -14,26 +14,23 @@ add_executable(${test_bin} ${test_bin}.f)
target_link_libraries(${test_bin} ${OpenBLAS_LIBNAME}) target_link_libraries(${test_bin} ${OpenBLAS_LIBNAME})
endforeach() 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) set(float_types s d c z)
foreach(float_type ${float_types}) foreach(float_type ${float_types})
string(TOUPPER ${float_type} float_type_upper) string(TOUPPER ${float_type} float_type_upper)
add_test(NAME "${float_type}blas1" add_test(NAME "${float_type}blas1"
COMMAND "${CMAKE_CURRENT_BINARY_DIR}/${float_type}blat1") COMMAND "$<TARGET_FILE:${float_type}blat1>")
add_test(NAME "${float_type}blas2" 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) COMMAND ${CMAKE_COMMAND}
"-DTEST_COMMAND=$<TARGET_FILE:${float_type}blat2>"
"-DTEST_INPUT=${PROJECT_SOURCE_DIR}/test/${float_type}blat2.dat"
"-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" 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) COMMAND ${CMAKE_COMMAND}
"-DTEST_COMMAND=$<TARGET_FILE:${float_type}blat3>"
"-DTEST_INPUT=${PROJECT_SOURCE_DIR}/test/${float_type}blat3.dat"
"-DTEST_FILE=${CMAKE_BINARY_DIR}/test/${float_type}blas2/${float_type_upper}BLAT3.SUMM"
-P "${CMAKE_CURRENT_SOURCE_DIR}/test_helper.cmake"
)
endforeach() endforeach()

12
test/test_helper.cmake Normal file
View File

@ -0,0 +1,12 @@
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)
IF(NOT (${CONTAINS_FATAL} EQUAL -1))
MESSAGE(FATAL_ERROR "Error")
ENDIF()