mirror of
https://github.com/openmc-dev/openmc.git
synced 2026-07-27 21:55:41 -04:00
added coverage options with gcov
This commit is contained in:
parent
c074268ba1
commit
c5dfca63ee
2 changed files with 27 additions and 11 deletions
|
|
@ -17,6 +17,7 @@ option(petsc "Enable PETSC for use in CMFD acceleration" OFF)
|
|||
option(debug "Compile with debug flags" OFF)
|
||||
option(optimize "Turn on all compiler optimization flags" OFF)
|
||||
option(verbose "Create verbose Makefiles" OFF)
|
||||
option(coverage "Compile with flags" OFF)
|
||||
|
||||
if (verbose)
|
||||
set(CMAKE_VERBOSE_MAKEFILE on)
|
||||
|
|
@ -62,6 +63,10 @@ if(CMAKE_Fortran_COMPILER_ID STREQUAL "GNU")
|
|||
set(f90flags "-fopenmp ${f90flags}")
|
||||
set(ldflags "-fopenmp ${ldflags}")
|
||||
endif()
|
||||
if(coverage)
|
||||
set(f90flags "-coverage ${f90flags}")
|
||||
set(ldflags "-coverage ${ldflags}")
|
||||
endif()
|
||||
|
||||
elseif(CMAKE_Fortran_COMPILER_ID STREQUAL "Intel")
|
||||
# Intel Fortran compiler options
|
||||
|
|
@ -241,7 +246,7 @@ foreach(test ${TESTS})
|
|||
get_filename_component(TEST_NAME ${test} NAME)
|
||||
get_filename_component(TEST_PATH ${test} PATH)
|
||||
|
||||
if(NOT $ENV{MEM_CHECK})
|
||||
if(NOT $ENV{MEM_CHECK} AND NOT $ENV{COVERAGE})
|
||||
|
||||
# Check serial/parallel
|
||||
if (${MPI_ENABLED})
|
||||
|
|
@ -261,13 +266,13 @@ foreach(test ${TESTS})
|
|||
|
||||
endif(${MPI_ENABLED})
|
||||
|
||||
else(NOT $ENV{MEM_CHECK})
|
||||
else(NOT $ENV{MEM_CHECK} AND NOT $ENV{COVERAGE})
|
||||
|
||||
# Perform serial valgrind test
|
||||
add_test(NAME ${TEST_NAME}
|
||||
WORKING_DIRECTORY ${TEST_PATH}
|
||||
COMMAND $<TARGET_FILE:openmc> ${TEST_PATH})
|
||||
|
||||
endif(NOT $ENV{MEM_CHECK})
|
||||
endif(NOT $ENV{MEM_CHECK} AND NOT $ENV{COVERAGE})
|
||||
|
||||
endforeach(test)
|
||||
|
|
|
|||
|
|
@ -27,17 +27,23 @@ set (CTEST_BUILD_OPTIONS "{build_opts}")
|
|||
set(CTEST_CONFIGURE_COMMAND "${{CMAKE_COMMAND}} -H${{CTEST_SOURCE_DIRECTORY}} -B${{CTEST_BINARY_DIRECTORY}} ${{CTEST_BUILD_OPTIONS}}")
|
||||
set(CTEST_MEMORYCHECK_COMMAND "/usr/bin/valgrind")
|
||||
set(CTEST_MEMORYCHECK_COMMAND_OPTIONS "--tool=memcheck --leak-check=yes --show-reachable=yes --num-callers=20 --track-fds=yes --track-origins=yes")
|
||||
|
||||
set(MEM_CHECK {mem_check})
|
||||
set(ENV{{MEM_CHECK}} ${{MEM_CHECK}})
|
||||
|
||||
set(CTEST_COVERAGE_COMMAND "/usr/bin/gcov")
|
||||
set(COVERAGE {coverage})
|
||||
set(ENV{{COVERAGE}} ${{COVERAGE}})
|
||||
|
||||
ctest_start("Nightly")
|
||||
ctest_configure()
|
||||
ctest_build()
|
||||
ctest_test(INCLUDE test_basic)
|
||||
ctest_test()
|
||||
if(MEM_CHECK)
|
||||
ctest_memcheck(INCLUDE test_basic)
|
||||
endif(MEM_CHECK)
|
||||
if(COVERAGE)
|
||||
ctest_coverage()
|
||||
endif(COVERAGE)
|
||||
ctest_submit()"""
|
||||
|
||||
# Define test data structure
|
||||
|
|
@ -45,7 +51,7 @@ tests = OrderedDict()
|
|||
|
||||
class Test(object):
|
||||
def __init__(self, name, debug=False, optimize=False, mpi=False, openmp=False,
|
||||
hdf5=False, petsc=False, valgrind=False):
|
||||
hdf5=False, petsc=False, valgrind=False, coverage=False):
|
||||
self.name = name
|
||||
self.debug = debug
|
||||
self.optimize = optimize
|
||||
|
|
@ -54,6 +60,7 @@ class Test(object):
|
|||
self.hdf5 = hdf5
|
||||
self.petsc = petsc
|
||||
self.valgrind = valgrind
|
||||
self.coverage = coverage
|
||||
|
||||
def get_build_name(self):
|
||||
self.build_name = self.name
|
||||
|
|
@ -69,6 +76,8 @@ class Test(object):
|
|||
build_str += "-Dopenmp=ON "
|
||||
if self.petsc:
|
||||
build_str += "-Dpetsc=ON "
|
||||
if self.coverage:
|
||||
build_str += "-Dcoverage=ON "
|
||||
self.build_opts = build_str
|
||||
return self.build_opts
|
||||
|
||||
|
|
@ -80,11 +89,11 @@ class Test(object):
|
|||
call(['ctest', '-S', 'ctestscript.run','-V'])
|
||||
|
||||
def add_test(name, debug=False, optimize=False, mpi=False, openmp=False,\
|
||||
hdf5=False, petsc=False, valgrind=False):
|
||||
tests.update({name:Test(name, debug, optimize, mpi, openmp, hdf5, petsc, valgrind)})
|
||||
hdf5=False, petsc=False, valgrind=False, coverage=False):
|
||||
tests.update({name:Test(name, debug, optimize, mpi, openmp, hdf5, petsc, valgrind, coverage)})
|
||||
|
||||
# List of tests
|
||||
add_test('basic-normal')
|
||||
#add_test('basic-normal')
|
||||
#add_test('basic-debug', debug=True)
|
||||
#add_test('basic-optimize', optimize=True)
|
||||
#add_test('omp-normal', openmp=True)
|
||||
|
|
@ -117,7 +126,8 @@ add_test('basic-normal')
|
|||
#add_test('omp-phdf5-petsc-normal', openmp=True, mpi=True, hdf5=True, petsc=True)
|
||||
#add_test('omp-phdf5-petsc-debug', openmp=True, mpi=True, hdf5=True, petsc=True, debug=True)
|
||||
#add_test('omp-phdf5-petsc-optimize', openmp=True, mpi=True, hdf5=True, petsc=True, optimize=True)
|
||||
add_test('basic-debug_valgrind', debug=True, valgrind=True)
|
||||
#add_test('basic-debug_valgrind', debug=True, valgrind=True)
|
||||
add_test('basic-normal_coverage', coverage=True)
|
||||
|
||||
# Setup CTest vars
|
||||
pwd = os.environ['PWD']
|
||||
|
|
@ -136,6 +146,7 @@ for key in iter(tests):
|
|||
ctest_vars.update({'build_name' : test.get_build_name()})
|
||||
ctest_vars.update({'build_opts' : test.get_build_opts()})
|
||||
ctest_vars.update({'mem_check' : test.valgrind})
|
||||
ctest_vars.update({'coverage' : test.coverage})
|
||||
|
||||
# Create ctest script
|
||||
test.create_ctest_script(ctest_vars)
|
||||
|
|
@ -144,4 +155,4 @@ for key in iter(tests):
|
|||
test.run_ctest()
|
||||
|
||||
# Clear build directory
|
||||
call(['rm', '-rf', 'build'])
|
||||
# call(['rm', '-rf', 'build'])
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue