mirror of
https://github.com/openmc-dev/openmc.git
synced 2026-07-28 06:05:58 -04:00
valgrind and gcov commands are searched for in PATH
This commit is contained in:
parent
5579c6c5f1
commit
1e784d7ed0
1 changed files with 42 additions and 2 deletions
|
|
@ -74,12 +74,12 @@ set (CTEST_BUILD_OPTIONS "{build_opts}")
|
|||
set(CTEST_UPDATE_COMMAND "git")
|
||||
|
||||
set(CTEST_CONFIGURE_COMMAND "${{CMAKE_COMMAND}} -H${{CTEST_SOURCE_DIRECTORY}} -B${{CTEST_BINARY_DIRECTORY}} ${{CTEST_BUILD_OPTIONS}}")
|
||||
set(CTEST_MEMORYCHECK_COMMAND "valgrind")
|
||||
set(CTEST_MEMORYCHECK_COMMAND "{valgrind_cmd}")
|
||||
set(CTEST_MEMORYCHECK_COMMAND_OPTIONS "--tool=memcheck --leak-check=yes --show-reachable=yes --num-callers=20 --track-fds=yes")
|
||||
set(MEM_CHECK {mem_check})
|
||||
set(ENV{{MEM_CHECK}} ${{MEM_CHECK}})
|
||||
|
||||
set(CTEST_COVERAGE_COMMAND "gcov")
|
||||
set(CTEST_COVERAGE_COMMAND "{gcov_cmd}")
|
||||
set(COVERAGE {coverage})
|
||||
set(ENV{{COVERAGE}} ${{COVERAGE}})
|
||||
|
||||
|
|
@ -116,6 +116,8 @@ class Test(object):
|
|||
self.success = True
|
||||
self.msg = None
|
||||
self.skipped = False
|
||||
self.valgrind_cmd = ""
|
||||
self.gcov_cmd = ""
|
||||
self.cmake = ['cmake', '-H../src', '-Bbuild']
|
||||
|
||||
# Check for MPI/HDF5
|
||||
|
|
@ -233,6 +235,30 @@ class Test(object):
|
|||
format((os.path.join(path, self.fc)))
|
||||
self.success = False
|
||||
|
||||
# Get valgrind command from user's environment
|
||||
def find_valgrind(self):
|
||||
result = False
|
||||
for path in os.environ["PATH"].split(":"):
|
||||
if os.path.isfile(os.path.join(path, 'valgrind')):
|
||||
self.valgrind_cmd = os.path.join(path, 'valgrind')
|
||||
result = True
|
||||
break
|
||||
if not result:
|
||||
self.msg = 'valgrind not found.'
|
||||
self.success = False
|
||||
|
||||
# Get coverage command from user's environment
|
||||
def find_coverage(self):
|
||||
result = False
|
||||
for path in os.environ["PATH"].split(":"):
|
||||
if os.path.isfile(os.path.join(path, 'gcov')):
|
||||
self.gcov_cmd = os.path.join(path, 'gcov')
|
||||
result = True
|
||||
break
|
||||
if not result:
|
||||
self.msg = 'gcov not found.'
|
||||
self.success = False
|
||||
|
||||
# Simple function to add a test to the global tests dictionary
|
||||
def add_test(name, debug=False, optimize=False, mpi=False, openmp=False,\
|
||||
hdf5=False, petsc=False, valgrind=False, coverage=False):
|
||||
|
|
@ -389,11 +415,25 @@ for key in iter(tests):
|
|||
if not test.success:
|
||||
continue
|
||||
|
||||
# Get valgrind command
|
||||
if test.valgrind:
|
||||
test.find_valgrind()
|
||||
if not test.success:
|
||||
continue
|
||||
|
||||
# Get coverage command
|
||||
if test.coverage:
|
||||
test.find_coverage()
|
||||
if not test.success:
|
||||
continue
|
||||
|
||||
# Set test specific CTest script vars. Not used in non-script mode
|
||||
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})
|
||||
ctest_vars.update({'valgrind_cmd' : test.valgrind_cmd})
|
||||
ctest_vars.update({'gcov_cmd' : test.gcov_cmd})
|
||||
|
||||
# Check for user custom tests
|
||||
# INCLUDE is a CTest command that allows for a subset
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue