Skip to content
Snippets Groups Projects
Commit 4e7bd387 authored by Dmitri Naumov's avatar Dmitri Naumov
Browse files

Add numdiff tester.

parent 81297653
No related branches found
No related tags found
No related merge requests found
......@@ -20,6 +20,10 @@
# - DIFF_DATA <list of files to diff>
# # the given file is compared to [filename]_expected.[extension]
#
# numdiff-tester
# - DIFF_DATA <list of files to numdiff>
# # the given file is compared to [filename]_expected.[extension]
#
function (AddTest)
......@@ -86,7 +90,10 @@ function (AddTest)
if(AddTest_TESTER STREQUAL "diff" AND NOT DIFF_TOOL_PATH)
message(FATAL_ERROR "diff-command is required for diff tester but was not found!")
endif()
if(AddTest_TESTER STREQUAL "diff" AND NOT AddTest_DIFF_DATA)
if(AddTest_TESTER STREQUAL "numdiff" AND NOT NUMDIFF_TOOL_PATH)
message(FATAL_ERROR "numdiff-command is required for numdiff tester but was not found!")
endif()
if((AddTest_TESTER STREQUAL "diff" OR AddTest_TESTER STREQUAL "numdiff") AND NOT AddTest_DIFF_DATA)
message(FATAL_ERROR "AddTest(): ${AddTest_NAME} - no DIFF_DATA given!")
endif()
if(AddTest_TESTER STREQUAL "memcheck" AND NOT GREP_TOOL_PATH)
......@@ -94,6 +101,7 @@ function (AddTest)
endif()
if(AddTest_TESTER STREQUAL "diff")
message("DIFF ADDTESTDIFF_DATA ${AddTest_DIFF_DATA}")
foreach(FILE ${AddTest_DIFF_DATA})
get_filename_component(FILE_NAME ${FILE} NAME_WE)
get_filename_component(FILE_EXT ${FILE} EXT)
......@@ -107,6 +115,20 @@ function (AddTest)
endforeach()
string(REPLACE ";" " && " TESTER_COMMAND "${TESTER_COMMAND}")
set(AddTest_DIFF_DATA_PARSED "${AddTest_SOURCE_PATH}/${AddTest_DIFF_DATA_PARSED}")
elseif(AddTest_TESTER STREQUAL "numdiff")
foreach(FILE ${AddTest_DIFF_DATA})
get_filename_component(FILE_NAME ${FILE} NAME_WE)
get_filename_component(FILE_EXT ${FILE} EXT)
set(FILE_EXPECTED ${FILE_NAME}_expected${FILE_EXT})
set(TESTER_COMMAND ${TESTER_COMMAND} "${NUMDIFF_TOOL_PATH} -a 1e-5 -r 1e-4 DATA{${AddTest_SOURCE_PATH}/${FILE_EXPECTED}} ${AddTest_BINARY_PATH}/${FILE}")
if(AddTest_DIFF_DATA_PARSED)
set(AddTest_DIFF_DATA_PARSED "${AddTest_DIFF_DATA_PARSED},${FILE_EXPECTED}")
else()
set(AddTest_DIFF_DATA_PARSED "${FILE_EXPECTED}")
endif()
endforeach()
string(REPLACE ";" " && " TESTER_COMMAND "${TESTER_COMMAND}")
set(AddTest_DIFF_DATA_PARSED "${AddTest_SOURCE_PATH}/${AddTest_DIFF_DATA_PARSED}")
elseif(tester STREQUAL "memcheck")
set(TESTER_COMMAND "! ${GREP_TOOL_PATH} definitely ${AddTest_SOURCE_PATH}/${AddTest_NAME}_memcheck.log")
endif()
......@@ -137,7 +159,7 @@ function (AddTest)
endif()
# Run the tester
if(AddTest_TESTER STREQUAL "diff")
if(AddTest_TESTER STREQUAL "diff" OR AddTest_TESTER STREQUAL "numdiff")
ExternalData_Add_Test(data
NAME "${AddTest_EXECUTABLE}-${AddTest_NAME}-${AddTest_WRAPPER}-${AddTest_TESTER}"
COMMAND ${CMAKE_COMMAND}
......
# Find tools and data
FIND_PROGRAM(DIFF_TOOL_PATH diff)
FIND_PROGRAM(NUMDIFF_TOOL_PATH numdiff)
# FIND_PROGRAM(TIME_TOOL_PATH time) # TODO: does not work Travis
SET(TIME_TOOL_PATH time)
FIND_PROGRAM(GREP_TOOL_PATH grep)
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment