Skip to content

Commit dbf9ad1

Browse files
committed
tests: add windows compatibility
1 parent 6a8b426 commit dbf9ad1

File tree

2 files changed

+31
-6
lines changed

2 files changed

+31
-6
lines changed

ctest/CMakeLists.txt

Lines changed: 12 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -5,9 +5,18 @@ enable_language(Fortran)
55

66
set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -DADD${BU} -DCBLAS")
77

8+
if(WIN32)
9+
FILE(WRITE ${CMAKE_CURRENT_BINARY_DIR}/test_cblas_helper.ps1
10+
"$ErrorActionPreference = \"Stop\"\n"
11+
"Get-Content $args[1] | & $args[0]\n"
12+
)
13+
set(test_helper powershell -ExecutionPolicy Bypass "${CMAKE_CURRENT_BINARY_DIR}/test_cblas_helper.ps1")
14+
else()
815
FILE(WRITE ${CMAKE_CURRENT_BINARY_DIR}/test_cblas_helper.sh
916
"$1 < $2\n"
1017
)
18+
set(test_helper sh "${CMAKE_CURRENT_BINARY_DIR}/test_cblas_helper.sh")
19+
endif()
1120

1221
foreach(float_type ${FLOAT_TYPES})
1322
string(SUBSTRING ${float_type} 0 1 float_char_upper)
@@ -18,7 +27,7 @@ foreach(float_type ${FLOAT_TYPES})
1827
c_${float_char}blas1.c)
1928
target_link_libraries(x${float_char}cblat1 ${OpenBLAS_LIBNAME})
2029
add_test(NAME "x${float_char}cblat1"
21-
COMMAND "${CMAKE_CURRENT_BINARY_DIR}/x${float_char}cblat1")
30+
COMMAND $<TARGET_FILE:x${float_char}cblat1>)
2231

2332
#level2
2433
add_executable(x${float_char}cblat2
@@ -30,7 +39,7 @@ foreach(float_type ${FLOAT_TYPES})
3039
constant.c)
3140
target_link_libraries(x${float_char}cblat2 ${OpenBLAS_LIBNAME})
3241
add_test(NAME "x${float_char}cblat2"
33-
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")
42+
COMMAND ${test_helper} $<TARGET_FILE:x${float_char}cblat2> "${PROJECT_SOURCE_DIR}/ctest/${float_char}in2")
3443

3544
#level3
3645
add_executable(x${float_char}cblat3
@@ -42,6 +51,6 @@ foreach(float_type ${FLOAT_TYPES})
4251
constant.c)
4352
target_link_libraries(x${float_char}cblat3 ${OpenBLAS_LIBNAME})
4453
add_test(NAME "x${float_char}cblat3"
45-
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")
54+
COMMAND ${test_helper} $<TARGET_FILE:x${float_char}cblat3> "${PROJECT_SOURCE_DIR}/ctest/${float_char}in3")
4655

4756
endforeach()

test/CMakeLists.txt

Lines changed: 19 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -15,6 +15,20 @@ target_link_libraries(${test_bin} ${OpenBLAS_LIBNAME})
1515
endforeach()
1616

1717
# $1 exec, $2 input, $3 output_result
18+
if(WIN32)
19+
FILE(WRITE ${CMAKE_CURRENT_BINARY_DIR}/test_helper.ps1
20+
"Remove-Item -Force $args[2]\n"
21+
"$ErrorActionPreference = \"Stop\"\n"
22+
"Get-Content $args[1] | & $args[0]\n"
23+
"If (Get-Content $args[2] | %{$_ -match \"FATAL\"}) {\n"
24+
"echo Error\n"
25+
"exit 1\n"
26+
"} else {\n"
27+
"exit 0\n"
28+
"}\n"
29+
)
30+
set(helper_prefix powershell -ExecutionPolicy Bypass "${CMAKE_CURRENT_BINARY_DIR}/test_helper.ps1")
31+
else()
1832
FILE(WRITE ${CMAKE_CURRENT_BINARY_DIR}/test_helper.sh
1933
"rm -f $3\n"
2034
"$1 < $2\n"
@@ -26,14 +40,16 @@ FILE(WRITE ${CMAKE_CURRENT_BINARY_DIR}/test_helper.sh
2640
"exit 0\n"
2741
"fi\n"
2842
)
43+
set(helper_prefix sh "${CMAKE_CURRENT_BINARY_DIR}/test_helper.sh")
44+
endif()
2945

3046
set(float_types s d c z)
3147
foreach(float_type ${float_types})
3248
string(TOUPPER ${float_type} float_type_upper)
3349
add_test(NAME "${float_type}blas1"
34-
COMMAND "${CMAKE_CURRENT_BINARY_DIR}/${float_type}blat1")
50+
COMMAND $<TARGET_FILE:${float_type}blat1>)
3551
add_test(NAME "${float_type}blas2"
36-
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)
52+
COMMAND ${helper_prefix} $<TARGET_FILE:${float_type}blat2> "${PROJECT_SOURCE_DIR}/test/${float_type}blat2.dat" ${float_type_upper}BLAT2.SUMM)
3753
add_test(NAME "${float_type}blas3"
38-
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)
54+
COMMAND ${helper_prefix} $<TARGET_FILE:${float_type}blat3> "${PROJECT_SOURCE_DIR}/test/${float_type}blat3.dat" ${float_type_upper}BLAT3.SUMM)
3955
endforeach()

0 commit comments

Comments
 (0)