From ad8beff36b511beaa9f73d831707d455fa341055 Mon Sep 17 00:00:00 2001 From: Dmitri Naumov <dmitri.naumov@ufz.de> Date: Tue, 2 Jun 2015 18:04:33 +0200 Subject: [PATCH] Replace numdiff tests with vtkdiff tests. --- Applications/CLI/Tests.cmake | 16 +++++++-------- scripts/cmake/test/AddTest.cmake | 35 +++++++++++++++++++++++++++++++- scripts/cmake/test/Test.cmake | 1 + 3 files changed, 43 insertions(+), 9 deletions(-) diff --git a/Applications/CLI/Tests.cmake b/Applications/CLI/Tests.cmake index daf0ae6c3e4..f3230511ecf 100644 --- a/Applications/CLI/Tests.cmake +++ b/Applications/CLI/Tests.cmake @@ -10,8 +10,8 @@ foreach(mesh_size 1e0 1e1 1e2 1e3) EXECUTABLE ogs EXECUTABLE_ARGS cube_${mesh_size}.prj WRAPPER time - TESTER numdiff - DIFF_DATA cube_${mesh_size}_result.dat + TESTER vtkdiff + DIFF_DATA cube_${mesh_size}.vtu Linear_1_to_minus1 Result DATA cube_${mesh_size}.prj cube_1x1x1_hex_${mesh_size}.vtu cube_1x1x1.gml ) @@ -32,8 +32,8 @@ foreach(mesh_size 1e4 2e4 3e4 4e4 5e4 1e5 1e6) EXECUTABLE ogs EXECUTABLE_ARGS cube_${mesh_size}.prj WRAPPER time - TESTER numdiff - DIFF_DATA cube_${mesh_size}_result.dat + TESTER vtkdiff + DIFF_DATA cube_${mesh_size}.vtu Linear_1_to_minus1 Result DATA cube_${mesh_size}.prj cube_1x1x1_hex_${mesh_size}.vtu cube_1x1x1.gml ) @@ -55,8 +55,8 @@ foreach(mesh_size 1e0 1e1 1e2 1e3 1e4) EXECUTABLE ogs EXECUTABLE_ARGS square_${mesh_size}.prj WRAPPER time - TESTER numdiff - DIFF_DATA square_${mesh_size}_result.dat + TESTER vtkdiff + DIFF_DATA square_${mesh_size}.vtu Linear_1_to_minus1 Result DATA square_${mesh_size}.prj square_1x1_quad_${mesh_size}.vtu square_1x1.gml ) @@ -77,8 +77,8 @@ foreach(mesh_size 1e5 1e6) EXECUTABLE ogs EXECUTABLE_ARGS square_${mesh_size}.prj WRAPPER time - TESTER numdiff - DIFF_DATA square_${mesh_size}_result.dat + TESTER vtkdiff + DIFF_DATA square_${mesh_size}.vtu Linear_1_to_minus1 Result DATA square_${mesh_size}.prj square_1x1_quad_${mesh_size}.vtu square_1x1.gml ) diff --git a/scripts/cmake/test/AddTest.cmake b/scripts/cmake/test/AddTest.cmake index 10b5bf12a89..b7472779e47 100644 --- a/scripts/cmake/test/AddTest.cmake +++ b/scripts/cmake/test/AddTest.cmake @@ -24,6 +24,10 @@ # - DIFF_DATA <list of files to numdiff> # # the given file is compared to [filename]_expected.[extension] # +# vtkdiff-tester +# - DIFF_DATA <vtk file> <data array a name> <data array b name> +# # the given data arrays in the vtk file are compared +# function (AddTest) @@ -93,11 +97,14 @@ function (AddTest) if(AddTest_TESTER STREQUAL "numdiff" AND NOT NUMDIFF_TOOL_PATH) return() endif() + if(AddTest_TESTER STREQUAL "vtkdiff" AND NOT VTKDIFF_TOOL_PATH) + return() + endif() if(AddTest_TESTER STREQUAL "memcheck" AND NOT GREP_TOOL_PATH) return() endif() - if((AddTest_TESTER STREQUAL "diff" OR AddTest_TESTER STREQUAL "numdiff") AND NOT AddTest_DIFF_DATA) + if((AddTest_TESTER STREQUAL "diff" OR AddTest_TESTER STREQUAL "numdiff" OR AddTest_TESTER STREQUAL "vtkdiff") AND NOT AddTest_DIFF_DATA) message(FATAL_ERROR "AddTest(): ${AddTest_NAME} - no DIFF_DATA given!") endif() @@ -107,6 +114,9 @@ function (AddTest) elseif(AddTest_TESTER STREQUAL "numdiff") set(SELECTED_DIFF_TOOL_PATH ${NUMDIFF_TOOL_PATH}) set(TESTER_ARGS "--statistics --absolute-tolerance=1e-5 --relative-tolerance=1e-4") + elseif(AddTest_TESTER STREQUAL "vtkdiff") + set(SELECTED_DIFF_TOOL_PATH ${VTKDIFF_TOOL_PATH}) + set(TESTER_ARGS "-q --abs 1e-5 --rel 1e-4") endif() if(AddTest_TESTER STREQUAL "diff" OR AddTest_TESTER STREQUAL "numdiff") @@ -123,6 +133,19 @@ 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 "vtkdiff") + list(LENGTH AddTest_DIFF_DATA DiffDataLength) + if (NOT ${DiffDataLength} EQUAL 3) + message(FATAL_ERROR "For vtkdiff tester 3 diff data arguments are required.") + endif() + list(GET AddTest_DIFF_DATA 0 VTK_FILE) + list(GET AddTest_DIFF_DATA 1 NAME_A) + list(GET AddTest_DIFF_DATA 2 NAME_B) + + set(TESTER_COMMAND ${TESTER_COMMAND} "${SELECTED_DIFF_TOOL_PATH} \ + ${AddTest_BINARY_PATH}/${VTK_FILE} -a ${NAME_A} -b ${NAME_B} \ + ${TESTER_ARGS}") + string(REPLACE ";" " && " TESTER_COMMAND "${TESTER_COMMAND}") elseif(tester STREQUAL "memcheck") set(TESTER_COMMAND "! ${GREP_TOOL_PATH} definitely ${AddTest_SOURCE_PATH}/${AddTest_NAME}_memcheck.log") endif() @@ -164,6 +187,16 @@ function (AddTest) -P ${PROJECT_SOURCE_DIR}/scripts/cmake/test/AddTestTester.cmake DATA{${AddTest_DIFF_DATA_PARSED}} ) + elseif(AddTest_TESTER STREQUAL "vtkdiff") + add_test( + NAME "${AddTest_EXECUTABLE}-${AddTest_NAME}-${AddTest_WRAPPER}-${AddTest_TESTER}" + COMMAND ${CMAKE_COMMAND} + -Dcase_path=${AddTest_SOURCE_PATH} + -Dcase_name=${AddTest_NAME} + -DTESTER_COMMAND=${TESTER_COMMAND} + -DCMAKE_BINARY_DIR=${CMAKE_BINARY_DIR} + -P ${PROJECT_SOURCE_DIR}/scripts/cmake/test/AddTestTester.cmake + ) else() add_test( NAME "${AddTest_EXECUTABLE}-${AddTest_NAME}-${AddTest_WRAPPER}-${AddTest_TESTER}" diff --git a/scripts/cmake/test/Test.cmake b/scripts/cmake/test/Test.cmake index 58dea305f8b..4201aa8e147 100644 --- a/scripts/cmake/test/Test.cmake +++ b/scripts/cmake/test/Test.cmake @@ -1,6 +1,7 @@ # Find tools and data find_program(DIFF_TOOL_PATH diff) find_program(NUMDIFF_TOOL_PATH numdiff) +find_program(VTKDIFF_TOOL_PATH vtkdiff ${CMAKE_BINARY_DIR}/bin) # find_program(TIME_TOOL_PATH time) # TODO: does not work Travis set(TIME_TOOL_PATH time) find_program(GREP_TOOL_PATH grep) -- GitLab