From c33a7632bef474601457cb6253c49b190f378376 Mon Sep 17 00:00:00 2001 From: Stefan Girke <stefan.girke@wwu.de> Date: Wed, 1 Jun 2016 18:18:54 +0200 Subject: [PATCH] use dune_add_test_case() to build tests --- cmake/modules/DuneFemDgMacros.cmake | 27 +++++-- cmake/scripts/parameter.in | 6 +- .../examples/advdiff/test/CMakeLists.txt | 74 +++++++++---------- .../examples/dataio/test/CMakeLists.txt | 12 +-- .../fem-dg/examples/euler/test/CMakeLists.txt | 18 ++--- .../incompnavierstokes/test/CMakeLists.txt | 16 ++-- .../examples/navierstokes/test/CMakeLists.txt | 16 ++-- .../examples/poisson/test/CMakeLists.txt | 16 ++-- .../examples/stokes/test/CMakeLists.txt | 16 ++-- 9 files changed, 87 insertions(+), 114 deletions(-) diff --git a/cmake/modules/DuneFemDgMacros.cmake b/cmake/modules/DuneFemDgMacros.cmake index dc92fc91..f1cec97d 100644 --- a/cmake/modules/DuneFemDgMacros.cmake +++ b/cmake/modules/DuneFemDgMacros.cmake @@ -1,6 +1,8 @@ # the main files for all the tests are in the same dir set(FEMDG_MAIN_DIR "${CMAKE_SOURCE_DIR}/dune/fem-dg/main") + + # macro for configuring the parameter files from parameter.in function(configure_parameter_file) set(CURRENT_PARAMETER_PATH ${CMAKE_CURRENT_SOURCE_DIR}) @@ -25,12 +27,25 @@ function(configure_parameter_file) endfunction(configure_parameter_file) -function(dune_add_test_case base_target) - foreach( testcase ${ARGN}) - set( TESTCASE_PARAMFILE parameters/${base_target}_${testcase} ) - configure_parameter_file( ${testcase} ${TESTCASE_PARAMFILE} ) - add_test( NAME ${base_target}_${testcase} COMMAND ./${base_target} ${TESTCASE_PARAMFILE} ) - endforeach() +function(dune_add_test_case target paramfile ) + set( abbr "${CMAKE_CURRENT_SOURCE_DIR}/" ) + set( default_params "fem.verboserank:0" "fem.prefix:${abbr}data/${paramfile}" "fem.prefix.input:${abbr}" "fem.eoc.outputpath:${abbr}data/${paramfile}" ) + + if( "${target}" STREQUAL NAME ) + ##copy configure file for target calls without testing tools + #configure_parameter_file( ${paramfile} ) + configure_parameter_file() + ##we are creating a real new target + dune_add_test( ${target} ${paramfile} ${ARGN} CMD_ARGS ${CMAKE_CURRENT_SOURCE_DIR}/parameters/${paramfile} ${default_params} ) + else() + if(NOT TARGET ${target}) + message( ERROR "You have tried to create a test case depending on a non existing target. The missing target name is '${target}'" ) + endif() + foreach( testcase ${ARGN}) + add_test( NAME ${base_name}_${testcase} + COMMAND ./${target} ${CMAKE_CURRENT_SOURCE_DIR}/parameters/${target}_${testcase} ${default_params} ) + endforeach() + endif() endfunction() diff --git a/cmake/scripts/parameter.in b/cmake/scripts/parameter.in index 06c7e072..c7a298b7 100644 --- a/cmake/scripts/parameter.in +++ b/cmake/scripts/parameter.in @@ -2,8 +2,8 @@ # (-1: off, p: process p is verbose, in general 0 is a good choice) fem.verboserank: 0 -fem.prefix: ${CURRENT_PARAMETER_PATH}/data/${TESTCASE_OUTPUT} # specify directory for data output (is created if not exists) -fem.prefix.input: ${CURRENT_PARAMETER_PATH}/ -fem.eoc.outputpath: ${CURRENT_PARAMETER_PATH}/data/${TESTCASE_OUTPUT} +fem.prefix: ${CMAKE_CURRENT_SOURCE_DIR}/data/${TESTCASE_OUTPUT} # specify directory for data output (is created if not exists) +fem.prefix.input: ${CMAKE_CURRENT_SOURCE_DIR}/ +fem.eoc.outputpath: ${CMAKE_CURRENT_SOURCE_DIR}/data/${TESTCASE_OUTPUT} paramfile: parameters/${TESTCASE_INPUT} #real parameter file diff --git a/dune/fem-dg/examples/advdiff/test/CMakeLists.txt b/dune/fem-dg/examples/advdiff/test/CMakeLists.txt index 33e62a9f..cb3b317c 100644 --- a/dune/fem-dg/examples/advdiff/test/CMakeLists.txt +++ b/dune/fem-dg/examples/advdiff/test/CMakeLists.txt @@ -1,7 +1,5 @@ include_directories("${CMAKE_SOURCE_DIR}/dune/fem-dg/examples/advdiff/") -configure_parameter_file() - # specify type of grid implemention, dimension and polynomial order set( GRIDTYPE ALUGRID_CUBE ) set( GRIDDIM 2 ) @@ -11,55 +9,49 @@ add_definitions( "-D${GRIDTYPE}" ) add_definitions( "-DGRIDDIM=${GRIDDIM}" ) add_definitions( "-DDIMRANGE=1" ) -configure_parameter_file( advdiff ) -dune_add_test( NAME advdiff - SOURCES ../main.cc - COMPILE_DEFINITIONS "POLORDER=${POLORDER}" - TIMEOUT 3000 - CMD_ARGS parameters/advdiff ) - +dune_add_test_case( NAME advdiff + SOURCES ../main.cc + COMPILE_DEFINITIONS "POLORDER=${POLORDER}" + TIMEOUT 3000 ) add_code_generate_targets( advdiff ) - if( NOT FEMDG_FAST_TESTBUILD ) - configure_parameter_file( advdiffall ) - dune_add_test( NAME advdiffall - SOURCES ../main.cc - TIMEOUT 3000 - CMD_ARGS parameters/advdiffall ) - - configure_parameter_file( advdiff_legendre ) - dune_add_test( NAME advdiff_legendre - SOURCES ../main.cc - COMPILE_DEFINITIONS "POLORDER=${POLORDER};DISCRETEFUNCTIONSPACESENUM=2" - TIMEOUT 3000 - CMD_ARGS parameters/advdiff_legendre ) - - configure_parameter_file( advdiff_hierarchic_legendre ) - dune_add_test( NAME advdiff_hierarchic_legendre - SOURCES ../main.cc - COMPILE_DEFINITIONS "POLORDER=${POLORDER};DISCRETEFUNCTIONSPACESENUM=3" - TIMEOUT 3000 - CMD_ARGS parameters/advdiff_hierarchic_legendre ) + dune_add_test_case( advdiff pulse ) + dune_add_test_case( advdiff sin ) + dune_add_test_case( advdiff heat ) + dune_add_test_case( advdiff quasi ) - configure_parameter_file( advdiff_orthonormal ) - dune_add_test( NAME advdiff_orthonormal - SOURCES ../main.cc - COMPILE_DEFINITIONS "POLORDER=${POLORDER};DISCRETEFUNCTIONSPACESENUM=4" - TIMEOUT 3000 - CMD_ARGS parameters/advdiff_orthonormal ) + dune_add_test_case( NAME advdiffall + SOURCES ../main.cc + TIMEOUT 3000 ) + add_code_generate_targets( advdiffall ) dune_add_test_case( advdiffall polorder1 ) dune_add_test_case( advdiffall polorder2 ) dune_add_test_case( advdiffall polorder3 ) dune_add_test_case( advdiffall polorder4 ) + + + dune_add_test_case( NAME advdiff_legendre + SOURCES ../main.cc + COMPILE_DEFINITIONS "POLORDER=${POLORDER};DISCRETEFUNCTIONSPACESENUM=2" + TIMEOUT 3000 ) + + dune_add_test_case( NAME advdiff_hierarchic_legendre + SOURCES ../main.cc + COMPILE_DEFINITIONS "POLORDER=${POLORDER};DISCRETEFUNCTIONSPACESENUM=3" + TIMEOUT 3000 ) + + dune_add_test_case( NAME advdiff_orthonormal + SOURCES ../main.cc + COMPILE_DEFINITIONS "POLORDER=${POLORDER};DISCRETEFUNCTIONSPACESENUM=4" + TIMEOUT 3000 ) + + dune_add_test_case( NAME advdiff_orthonormal + SOURCES ../main.cc + COMPILE_DEFINITIONS "POLORDER=${POLORDER};DISCRETEFUNCTIONSPACESENUM=4" + TIMEOUT 3000 ) - dune_add_test_case( advdiff pulse ) - dune_add_test_case( advdiff sin ) - dune_add_test_case( advdiff heat ) - dune_add_test_case( advdiff quasi ) - - add_code_generate_targets( advdiffall ) endif() diff --git a/dune/fem-dg/examples/dataio/test/CMakeLists.txt b/dune/fem-dg/examples/dataio/test/CMakeLists.txt index a90c02bb..8ef1f663 100644 --- a/dune/fem-dg/examples/dataio/test/CMakeLists.txt +++ b/dune/fem-dg/examples/dataio/test/CMakeLists.txt @@ -1,7 +1,5 @@ include_directories("${CMAKE_SOURCE_DIR}/dune/fem-dg/examples/dataio/") -configure_parameter_file() - add_definitions( "-DALUGRID_SIMPLEX" ) add_definitions( "-DGRIDDIM=3" ) add_definitions( "-DUSE_SIONLIB=0" ) @@ -9,10 +7,8 @@ add_definitions( "-DPOLORDER=2" ) add_definitions( "-DDIMRANGE=5" ) add_definitions( "-DENABLE_ADAPTIVELEAFINDEXSET_FOR_YASPGRID" ) - #dune_add_test( NAME dataconvert - # SOURCES ../dataconvert.cc ) + #dune_add_test_case( NAME dataconvert + # SOURCES ../dataconvert.cc ) -configure_parameter_file(checkpointing) -dune_add_test( NAME checkpointing - SOURCES ../main.cc - CMD_ARGS parameters/checkpointing ) +dune_add_test_case( NAME checkpointing + SOURCES ../main.cc ) diff --git a/dune/fem-dg/examples/euler/test/CMakeLists.txt b/dune/fem-dg/examples/euler/test/CMakeLists.txt index 56b35daa..b7ec408a 100644 --- a/dune/fem-dg/examples/euler/test/CMakeLists.txt +++ b/dune/fem-dg/examples/euler/test/CMakeLists.txt @@ -1,7 +1,5 @@ include_directories("${CMAKE_SOURCE_DIR}/dune/fem-dg/examples/euler/") -configure_parameter_file() - # specify type of grid implemention, dimension and polynomial order set( GRIDTYPE ALUGRID_CUBE ) set( GRIDDIM 2 ) @@ -13,20 +11,16 @@ add_definitions( "-DGRIDDIM=${GRIDDIM}" ) set( MAIN ${CMAKE_CURRENT_SOURCE_DIR}/../main.cc ) set( CHORJO ${CMAKE_CURRENT_SOURCE_DIR}/../problems/chorjo.cc ) -configure_parameter_file( euler ) -dune_add_test( NAME euler - SOURCES ${MAIN} ${CHORJO} - COMPILE_DEFINITIONS "POLORDER=${POLORDER}" - CMD_ARGS parameters/euler ) +dune_add_test_case( NAME euler + SOURCES ${MAIN} ${CHORJO} + COMPILE_DEFINITIONS "POLORDER=${POLORDER}" ) add_code_generate_targets( euler ) if( NOT FEMDG_FAST_TESTBUILD ) - configure_parameter_file( eulerall ) - dune_add_test( NAME eulerall - SOURCES ${MAIN} ${CHORJO} - COMPILE_DEFINITIONS LIMITER - CMD_ARGS parameters/eulerall ) + dune_add_test_case( NAME eulerall + SOURCES ${MAIN} ${CHORJO} + COMPILE_DEFINITIONS LIMITER ) add_code_generate_targets( eulerall ) endif() diff --git a/dune/fem-dg/examples/incompnavierstokes/test/CMakeLists.txt b/dune/fem-dg/examples/incompnavierstokes/test/CMakeLists.txt index deadaa9a..bb270d9d 100644 --- a/dune/fem-dg/examples/incompnavierstokes/test/CMakeLists.txt +++ b/dune/fem-dg/examples/incompnavierstokes/test/CMakeLists.txt @@ -1,24 +1,18 @@ include_directories("${CMAKE_SOURCE_DIR}/dune/fem-dg/examples/incompnavierstokes/") -configure_parameter_file() - # default settings for the test case add_definitions( "-DYASPGRID" ) add_definitions( "-DGRIDDIM=2" ) configure_file( BuildTests.cmake BuildTests.cmake @ONLY) -#configure_parameter_file( incompnavierstokes ) -#dune_add_test( NAME incompnavierstokes -# SOURCES ../main.cc -# COMPILE_DEFINITIONS POLORDER=2 -# CMD_ARGS parameters/incompnavierstokes ) +#dune_add_test_case( NAME incompnavierstokes +# SOURCES ../main.cc +# COMPILE_DEFINITIONS POLORDER=2 ) #add_code_generate_targets( incompnavierstokes ) # #if( NOT FEMDG_FAST_TESTBUILD ) -# configure_parameter_file( incompnavierstokesall ) -# dune_add_test( NAME incompnavierstokesall -# SOURCES ../main.cc -# CMD_ARGS parameters/incompnavierstokesall ) +# dune_add_test_case( NAME incompnavierstokesall +# SOURCES ../main.cc ) # add_code_generate_targets( incompnavierstokesall ) #endif() diff --git a/dune/fem-dg/examples/navierstokes/test/CMakeLists.txt b/dune/fem-dg/examples/navierstokes/test/CMakeLists.txt index e0c9afd0..cd69621a 100644 --- a/dune/fem-dg/examples/navierstokes/test/CMakeLists.txt +++ b/dune/fem-dg/examples/navierstokes/test/CMakeLists.txt @@ -1,7 +1,5 @@ include_directories("${CMAKE_SOURCE_DIR}/dune/fem-dg/examples/navierstokes/") -configure_parameter_file() - # specify type of grid implemention, dimension and polynmomial order set( GRIDTYPE ALUGRID_CUBE ) set( GRIDDIM 2 ) @@ -10,19 +8,15 @@ set( POLORDER 2 ) add_definitions( "-D${GRIDTYPE}" ) add_definitions( "-DGRIDDIM=${GRIDDIM}" ) -configure_parameter_file( navierstokes ) -dune_add_test( NAME navierstokes - SOURCES ../main.cc - COMPILE_DEFINITIONS "POLORDER=${POLORDER}" - CMD_ARGS parameters/navierstokes ) +dune_add_test_case( NAME navierstokes + SOURCES ../main.cc + COMPILE_DEFINITIONS "POLORDER=${POLORDER}" ) add_code_generate_targets( navierstokes ) if( NOT FEMDG_FAST_TESTBUILD ) - configure_parameter_file( navierstokesall ) - dune_add_test( NAME navierstokesall - SOURCES ../main.cc - CMD_ARGS parameters/navierstokesall ) + dune_add_test_case( NAME navierstokesall + SOURCES ../main.cc ) add_code_generate_targets( navierstokesall ) endif() diff --git a/dune/fem-dg/examples/poisson/test/CMakeLists.txt b/dune/fem-dg/examples/poisson/test/CMakeLists.txt index 352e9350..628f4557 100644 --- a/dune/fem-dg/examples/poisson/test/CMakeLists.txt +++ b/dune/fem-dg/examples/poisson/test/CMakeLists.txt @@ -1,7 +1,5 @@ include_directories("${CMAKE_SOURCE_DIR}/dune/fem-dg/examples/poisson/") -configure_parameter_file() - # specify type of grid implemention, dimension and polynmomial order set( GRIDTYPE ALUGRID_CUBE ) set( GRIDDIM 2 ) @@ -12,18 +10,14 @@ add_definitions( "-DGRIDDIM=${GRIDDIM}" ) add_definitions( "-DDIMRANGE=1" ) add_definitions( "-DPADAPTSPACE" ) -configure_parameter_file( poisson ) -dune_add_test( NAME poisson - SOURCES ../main.cc - COMPILE_DEFINITIONS "POLORDER=${POLORDER}" - CMD_ARGS parameters/poisson ) +dune_add_test_case( NAME poisson + SOURCES ../main.cc + COMPILE_DEFINITIONS "POLORDER=${POLORDER}" ) add_code_generate_targets( poisson ) if( NOT FEMDG_FAST_TESTBUILD ) - configure_parameter_file( poissonall ) - dune_add_test( NAME poissonall - SOURCES ../main.cc - CMD_ARGS parameters/poissonall ) + dune_add_test_case( NAME poissonall + SOURCES ../main.cc ) add_code_generate_targets( poissonall ) endif() diff --git a/dune/fem-dg/examples/stokes/test/CMakeLists.txt b/dune/fem-dg/examples/stokes/test/CMakeLists.txt index 83041b24..5f7a3b52 100644 --- a/dune/fem-dg/examples/stokes/test/CMakeLists.txt +++ b/dune/fem-dg/examples/stokes/test/CMakeLists.txt @@ -1,7 +1,5 @@ include_directories("${CMAKE_SOURCE_DIR}/dune/fem-dg/examples/stokes/") -configure_parameter_file() - # specify type of grid implemention, dimension and polynmomial order set( GRIDTYPE ALUGRID_CUBE ) set( GRIDDIM 2 ) @@ -10,18 +8,14 @@ set( POLORDER 2 ) add_definitions( "-D${GRIDTYPE}" ) add_definitions( "-DGRIDDIM=${GRIDDIM}" ) -configure_parameter_file( stokes ) -dune_add_test( NAME stokes - SOURCES ../main.cc - COMPILE_DEFINITIONS "POLORDER=${POLORDER}" - CMD_ARGS parameters/stokes) +dune_add_test_case( NAME stokes + SOURCES ../main.cc + COMPILE_DEFINITIONS "POLORDER=${POLORDER}" ) add_code_generate_targets( stokes ) if( NOT FEMDG_FAST_TESTBUILD ) - configure_parameter_file( stokesall ) - dune_add_test( NAME stokesall - SOURCES ../main.cc - CMD_ARGS parameters/stokesall ) + dune_add_test_case( NAME stokesall + SOURCES ../main.cc ) add_code_generate_targets( stokesall ) endif() -- GitLab