[cig-commits] commit by bangerth to /var/svn/dealii/aspect
dealii.demon at gmail.com
dealii.demon at gmail.com
Thu Aug 22 17:27:14 PDT 2013
Revision 1850
Add second version (works somewhat).
U trunk/aspect/tests/CMakeLists.txt
http://www.dealii.org/websvn/revision.php?repname=Aspect+Repository&path=%2F&rev=1850&peg=1850
Diff:
Modified: trunk/aspect/tests/CMakeLists.txt
===================================================================
--- trunk/aspect/tests/CMakeLists.txt 2013-08-22 19:15:14 UTC (rev 1849)
+++ trunk/aspect/tests/CMakeLists.txt 2013-08-23 00:26:12 UTC (rev 1850)
@@ -1,12 +1,24 @@
-
+################### top matter ################
FIND_PACKAGE(Perl)
+MACRO(SET_IF_EMPTY _variable _value)
+ IF("${${_variable}}" STREQUAL "")
+ SET(${_variable} ${_value})
+ ENDIF()
+ENDMACRO()
+
+############################3
+
ADD_CUSTOM_TARGET(tests)
-FILE(GLOB _tests *.prm)
+SET_IF_EMPTY(DEAL_II_DIFF "$ENV{DEAL_II_DIFF}")
+SET_IF_EMPTY(DEAL_II_DIFF "numdiff -a 1e-6 -q -s \" \t\n:\"")
+
+
+FILE(GLOB _tests plugin.prm)
FOREACH(_test ${_tests})
+ GET_FILENAME_COMPONENT(_test ${_test} NAME_WE)
- GET_FILENAME_COMPONENT(_test ${_test} NAME_WE)
IF(EXISTS ${_test}.cc)
ADD_LIBRARY(${_test} SHARED EXCLUDE_FROM_ALL ${_test}.cc)
DEAL_II_SETUP_TARGET(${_test})
@@ -15,43 +27,61 @@
SET(_testdepends)
ENDIF()
+ FILE(MAKE_DIRECTORY ${CMAKE_CURRENT_BINARY_DIR}/output-${_test})
ADD_CUSTOM_COMMAND(OUTPUT ${CMAKE_CURRENT_BINARY_DIR}/output-${_test}/screen-output
- COMMAND if test ! -d ${CMAKE_CURRENT_BINARY_DIR}/output-${_test} \; then
- mkdir ${CMAKE_CURRENT_BINARY_DIR}/output-${_test} \;
- fi
COMMAND aspect ${CMAKE_CURRENT_SOURCE_DIR}/${_test}.prm
> ${CMAKE_CURRENT_BINARY_DIR}/output-${_test}/screen-output
COMMAND ${PERL_EXECUTABLE} -pi
- ${CMAKE_CURRENT_SOURCE_DIR}/normalize.pl
- ${CMAKE_CURRENT_BINARY_DIR}/output-${_test}/*
+ ${CMAKE_CURRENT_SOURCE_DIR}/normalize.pl
+ ${CMAKE_CURRENT_BINARY_DIR}/output-${_test}/*
DEPENDS aspect ${CMAKE_CURRENT_SOURCE_DIR}/${_test}.prm ${_testdepends}
)
ADD_CUSTOM_TARGET(${_test}.run
DEPENDS ${CMAKE_CURRENT_BINARY_DIR}/output-${_test}/screen-output
)
-# numdiff numdiff -a 1e-6 -q -s '
:'
- ADD_CUSTOM_COMMAND(OUTPUT ${CMAKE_CURRENT_BINARY_DIR}/diff-${_test}
- COMMAND
- DEAL_II_DIFF=\"diff\" \;
- for i in ${CMAKE_CURRENT_SOURCE_DIR}/${_test}/* \; do
- basename=`echo $$i | perl -pi -e 's!.*/!!g\;'` \;
- cat ${CMAKE_CURRENT_BINARY_DIR}/output-${_test}/$$basename | egrep -v '^\|' > ${CMAKE_CURRENT_BINARY_DIR}/output-${_test}/$$basename.notime \;
- $${DEAL_II_DIFF} ${CMAKE_CURRENT_SOURCE_DIR}/${_test}/$$basename ${CMAKE_CURRENT_BINARY_DIR}/output-${_test}/$$basename.notime \;
- if $$_ \; then
- :
- else
- echo "Files ${CMAKE_CURRENT_SOURCE_DIR}/${_test}/$$basename ${CMAKE_CURRENT_BINARY_DIR}/output-${_test}/$$basename.notime differ" \; exit 1 \;
- fi \;
- done
- DEPENDS ${CMAKE_CURRENT_BINARY_DIR}/output-${_test}/screen-output
+
+
+ ADD_CUSTOM_TARGET(tests.${_test})
+
+
+ # for each of the output files saved in the source directory for
+ # this test, create targets that
+ # - create a 'output.notime' file
+ # - diff this file with the saved one and save the result
+ FILE(GLOB _outputs ${CMAKE_CURRENT_SOURCE_DIR}/${_test}/*)
+ FOREACH(_output ${_outputs})
+ GET_FILENAME_COMPONENT(_output ${_output} NAME_WE)
+ MESSAGE("***** Adding output-${_test}/${_output}")
+
+ # create the output.notime target
+ ADD_CUSTOM_COMMAND(OUTPUT ${CMAKE_CURRENT_BINARY_DIR}/output-${_test}/${_output}.notime
+ COMMAND
+ cat ${CMAKE_CURRENT_BINARY_DIR}/output-${_test}/${_output}
+ | egrep -v '^\|'
+ > ${CMAKE_CURRENT_BINARY_DIR}/output-${_test}/${_output}.notime
+ DEPENDS ${CMAKE_CURRENT_BINARY_DIR}/output-${_test}/screen-output
)
- ADD_CUSTOM_TARGET(${_test}.diff
- DEPENDS ${CMAKE_CURRENT_BINARY_DIR}/diff-${_test}
+ # create the target that compares the .notime with the saved file
+ ADD_CUSTOM_COMMAND(OUTPUT ${CMAKE_CURRENT_BINARY_DIR}/output-${_test}/${_output}.diff
+ COMMAND
+ diff ${CMAKE_CURRENT_SOURCE_DIR}/${_test}/${_output}
+ ${CMAKE_CURRENT_BINARY_DIR}/output-${_test}/${_output}.notime
+ > ${CMAKE_CURRENT_BINARY_DIR}/output-${_test}/${_output}.diff
+ DEPENDS ${CMAKE_CURRENT_SOURCE_DIR}/${_test}/${_output}
+ ${CMAKE_CURRENT_BINARY_DIR}/output-${_test}/${_output}.notime
)
- ADD_DEPENDENCIES(tests ${_test}.diff)
+ # add the target for this output file to the dependencies of this test
+ ADD_CUSTOM_TARGET(${_test}.${_output}.diff
+ DEPENDS ${CMAKE_CURRENT_BINARY_DIR}/output-${_test}/${_output}.diff
+ )
+ ADD_DEPENDENCIES(tests.${_test}
+ ${_test}.${_output}.diff)
+ ENDFOREACH()
+ # add this test to the dependencies of the overall 'tests' target
+ ADD_DEPENDENCIES(tests tests.${_test})
ENDFOREACH()
More information about the CIG-COMMITS
mailing list