Skip to content

Commit

Permalink
Replaced shell based tests witch cmake ones
Browse files Browse the repository at this point in the history
  • Loading branch information
vfonov committed Nov 14, 2023
1 parent 5fe6969 commit 5eca648
Show file tree
Hide file tree
Showing 4 changed files with 88 additions and 6 deletions.
2 changes: 1 addition & 1 deletion .github/workflows/cmake.yml
Original file line number Diff line number Diff line change
Expand Up @@ -69,7 +69,7 @@ jobs:
-DCMAKE_BUILD_TYPE=${{ matrix.config }} \
-DCMAKE_BUILD_TYPE=${{ env.BUILD_TYPE }} \
-DLIBMINC_MINC1_SUPPORT:BOOL=${{ matrix.build-params.WITH_MINC1 }} \
-DBUILD_TESTING:BOOL=${{ matrix.build-params.tests }} \
-DBUILD_TESTING:BOOL=${{ matrix.build-params.tests }}
- name: Build
working-directory: ${{github.workspace}}/build
Expand Down
36 changes: 31 additions & 5 deletions testdir/CMakeLists.txt
Original file line number Diff line number Diff line change
@@ -1,13 +1,29 @@
LINK_LIBRARIES(${LIBMINC_LIBRARIES})


MACRO(minc_test cmd)
# minc 1 version
IF(HAVE_MINC1)
ADD_TEST(${cmd}-1 ${CMAKE_CURRENT_SOURCE_DIR}/run_test_cmake.sh ${CMAKE_CURRENT_BINARY_DIR}/${cmd} ${CMAKE_CURRENT_SOURCE_DIR}/${cmd}.out)
ADD_TEST(NAME ${cmd}-1
COMMAND
${CMAKE_COMMAND}
-DCMD=$<TARGET_FILE:${cmd}>
-DREF=${CMAKE_CURRENT_SOURCE_DIR}/${cmd}.out
-DOUT=${CMAKE_CURRENT_BINARY_DIR}/${cmd}.1.out
-P ${CMAKE_CURRENT_SOURCE_DIR}/run_test_minc.cmake
)
ENDIF(HAVE_MINC1)

ADD_TEST(${cmd}-2 ${CMAKE_CURRENT_SOURCE_DIR}/run_test2_cmake.sh ${CMAKE_CURRENT_BINARY_DIR}/${cmd} ${CMAKE_CURRENT_SOURCE_DIR}/${cmd}.out)

ADD_TEST(NAME ${cmd}-2
COMMAND
${CMAKE_COMMAND}
-DCMD=$<TARGET_FILE:${cmd}>
-DMINC=-2
-DREF=${CMAKE_CURRENT_SOURCE_DIR}/${cmd}.out
-DOUT=${CMAKE_CURRENT_BINARY_DIR}/${cmd}.2.out
-P ${CMAKE_CURRENT_SOURCE_DIR}/run_test_minc.cmake
)

IF(MINC_TEST_ENVIRONMENT)
set_tests_properties( ${cmd}-1 PROPERTIES ENVIRONMENT "${MINC_TEST_ENVIRONMENT}")
ENDIF(MINC_TEST_ENVIRONMENT)
Expand All @@ -17,10 +33,11 @@ MACRO(minc_test cmd)
ENDIF(MINC_TEST_ENVIRONMENT)
ENDMACRO(minc_test)


MACRO(add_minc_test name cmd)

ADD_TEST( ${name}
${cmd} ${ARGV2} ${ARGV3} ${ARGV4} ${ARGV5} ${ARGV6} ${ARGV7} ${ARGV8} ${ARGV9} ${ARGV10} ${ARGV11}
${cmd} ${ARGV2} ${ARGV3} ${ARGV4} ${ARGV5} ${ARGV6} ${ARGV7} ${ARGV8} ${ARGV9} ${ARGV10} ${ARGV11}
${ARGV12} ${ARGV13} ${ARGV14} ${ARGV15} ${ARGV16} ${ARGV17} ${ARGV18} ${ARGV19} ${ARGV20} ${ARGV21} ${ARGV22}
${ARGV23} ${ARGV24} ${ARGV25} ${ARGV26}
)
Expand Down Expand Up @@ -54,7 +71,16 @@ IF(LIBMINC_MINC1_SUPPORT)
minc_test(icv_fillvalue)
minc_test(icv_range)

add_minc_test(arg_parse ${CMAKE_CURRENT_SOURCE_DIR}/run_test_arg_parse_cmake.sh ${CMAKE_CURRENT_BINARY_DIR}/test_arg_parse)
#add_minc_test(arg_parse ${CMAKE_CURRENT_SOURCE_DIR}/run_test_arg_parse_cmake.sh ${CMAKE_CURRENT_BINARY_DIR}/test_arg_parse)
ADD_TEST(NAME arg_parse
COMMAND
${CMAKE_COMMAND}
-DCMD=$<TARGET_FILE:test_arg_parse>
-P ${CMAKE_CURRENT_SOURCE_DIR}/run_test_arg_parse.cmake
)

set_tests_properties( arg_parse PROPERTIES ENVIRONMENT "${MINC_TEST_ENVIRONMENT}")

add_minc_test(icv icv)
add_minc_test(icv_vec icv_vec)
add_minc_test(minc minc_tst)
Expand Down
37 changes: 37 additions & 0 deletions testdir/run_test_arg_parse.cmake
Original file line number Diff line number Diff line change
@@ -0,0 +1,37 @@
macro(check IN REF)
separate_arguments(IN_LST UNIX_COMMAND "${IN}")

execute_process(COMMAND ${CMD} ${IN_LST} RESULT_VARIABLE CMD_RESULT OUTPUT_VARIABLE OUT OUTPUT_STRIP_TRAILING_WHITESPACE)
if(NOT ${CMD_RESULT} EQUAL 0)
message(FATAL_ERROR "Command ${CMD} failed with result ${CMD_RESULT}")
endif()
if(NOT "${OUT}" STREQUAL "${REF}")
message(FATAL_ERROR "Command ${CMD} \"${IN}\" returned \"${OUT}\" instead of \"${REF}\"")
endif()
endmacro()


check("" "const_a:0 const_b:0 int_a:0 int_b:0 long_a:0 long_b:0")
check("-const_a" "const_a:1 const_b:0 int_a:0 int_b:0 long_a:0 long_b:0")
check("-const_b" "const_a:0 const_b:1 int_a:0 int_b:0 long_a:0 long_b:0")
check("-const_a -const_b" "const_a:1 const_b:1 int_a:0 int_b:0 long_a:0 long_b:0")
check("-const_b -const_a" "const_a:1 const_b:1 int_a:0 int_b:0 long_a:0 long_b:0")

check("-int_a 33" "const_a:0 const_b:0 int_a:33 int_b:0 long_a:0 long_b:0")
check("-int_a -3" "const_a:0 const_b:0 int_a:-3 int_b:0 long_a:0 long_b:0")
check("-int_b 22" "const_a:0 const_b:0 int_a:0 int_b:22 long_a:0 long_b:0")
check("-int_b -2" "const_a:0 const_b:0 int_a:0 int_b:-2 long_a:0 long_b:0")
check("-int_a -1 -int_b 3" "const_a:0 const_b:0 int_a:-1 int_b:3 long_a:0 long_b:0")
check("-int_b -1 -int_a 3" "const_a:0 const_b:0 int_a:3 int_b:-1 long_a:0 long_b:0")

check("-long_a 12" "const_a:0 const_b:0 int_a:0 int_b:0 long_a:12 long_b:0")
check("-long_a -99" "const_a:0 const_b:0 int_a:0 int_b:0 long_a:-99 long_b:0")
check("-long_b -12" "const_a:0 const_b:0 int_a:0 int_b:0 long_a:0 long_b:-12")
check("-long_b 99" "const_a:0 const_b:0 int_a:0 int_b:0 long_a:0 long_b:99")
check("-long_a 3 -long_b -9" "const_a:0 const_b:0 int_a:0 int_b:0 long_a:3 long_b:-9")
check("-long_b 3 -long_a -9" "const_a:0 const_b:0 int_a:0 int_b:0 long_a:-9 long_b:3")

check("-long_a -99 -int_b 3 -const_b" "const_a:0 const_b:1 int_a:0 int_b:3 long_a:-99 long_b:0")

check("-nonsense" "const_a:0 const_b:0 int_a:0 int_b:0 long_a:0 long_b:0")

19 changes: 19 additions & 0 deletions testdir/run_test_minc.cmake
Original file line number Diff line number Diff line change
@@ -0,0 +1,19 @@
execute_process(COMMAND ${CMD} ${MINC} RESULT_VARIABLE CMD_RESULT OUTPUT_FILE ${OUT})

if(CMD_RESULT)
message(FATAL_ERROR "Error running ${CMD}")
endif()

#file(READ ${REF} CMD_REF)

#string(COMPARE EQUAL CMD_OUTPUT CMD_REF REF_MATCHES)
execute_process(
COMMAND ${CMAKE_COMMAND} -E compare_files ${REF} ${OUT}
RESULT_VARIABLE REF_NOT_MATCHES
OUTPUT_QUIET
ERROR_QUIET
)

if(REF_NOT_MATCHES)
message(FATAL_ERROR "Output of ${CMD} ${MINC} does not match reference: ${OUT} ${REF}")
endif()

0 comments on commit 5eca648

Please sign in to comment.