Skip to content
GitLab
Explore
Sign in
Register
Primary navigation
Search or go to…
Project
D
dynamic
Manage
Activity
Members
Labels
Plan
Issues
Issue boards
Milestones
Wiki
Requirements
Code
Merge requests
Repository
Branches
Commits
Tags
Repository graph
Compare revisions
Locked files
Build
Pipelines
Jobs
Pipeline schedules
Test cases
Artifacts
Deploy
Releases
Package registry
Container Registry
Model registry
Operate
Environments
Terraform modules
Monitor
Incidents
Service Desk
Analyze
Value stream analytics
Contributor analytics
CI/CD analytics
Repository analytics
Code review analytics
Issue analytics
Insights
Model experiments
Help
Help
Support
GitLab documentation
Compare GitLab plans
Community forum
Contribute to GitLab
Provide feedback
Keyboard shortcuts
?
Snippets
Groups
Projects
Show more breadcrumbs
MostafaMollaali
dynamic
Commits
7e0092ae
Commit
7e0092ae
authored
13 years ago
by
Lars Bilke
Browse files
Options
Downloads
Patches
Plain Diff
SOme small fixes.
parent
3410933d
No related branches found
No related tags found
No related merge requests found
Changes
1
Hide whitespace changes
Inline
Side-by-side
Showing
1 changed file
CodeCoverage.cmake
+44
-34
44 additions, 34 deletions
CodeCoverage.cmake
with
44 additions
and
34 deletions
CodeCoverage.cmake
+
44
−
34
View file @
7e0092ae
...
...
@@ -15,20 +15,12 @@
FIND_PROGRAM
(
GCOV_PATH gcov
)
FIND_PROGRAM
(
LCOV_PATH lcov
)
FIND_PROGRAM
(
GENHTML_PATH genhtml
)
FIND_PROGRAM
(
GCOVR_PATH gcovr
)
FIND_PROGRAM
(
GCOVR_PATH gcovr
PATHS
${
CMAKE_SOURCE_DIR
}
/tests
)
IF
(
NOT GCOV_PATH
)
MESSAGE
(
FATAL_ERROR
"gcov not found! Aborting..."
)
ENDIF
()
# NOT GCOV_PATH
IF
(
NOT LCOV_PATH
)
MESSAGE
(
FATAL_ERROR
"lcov not found! Aborting..."
)
ENDIF
()
# NOT LCOV_PATH
IF
(
NOT GENHTML_PATH
)
MESSAGE
(
FATAL_ERROR
"genhtml not found! Aborting..."
)
ENDIF
()
# NOT GENHTML_PATH
IF
(
NOT CMAKE_COMPILER_IS_GNUCXX
)
MESSAGE
(
FATAL_ERROR
"Compiler is not GNU gcc! Aborting..."
)
ENDIF
()
# NOT CMAKE_COMPILER_IS_GNUCXX
...
...
@@ -49,25 +41,32 @@ LINK_LIBRARIES(gcov)
# HTML report is generated in _outputname/index.html
FUNCTION
(
SETUP_TARGET_FOR_COVERAGE _targetname _testrunner _outputname
)
IF
(
NOT LCOV_PATH
)
MESSAGE
(
FATAL_ERROR
"lcov not found! Aborting..."
)
ENDIF
()
# NOT LCOV_PATH
IF
(
NOT GENHTML_PATH
)
MESSAGE
(
FATAL_ERROR
"genhtml not found! Aborting..."
)
ENDIF
()
# NOT GENHTML_PATH
# Setup target
ADD_CUSTOM_TARGET
(
${
_targetname
}
# Cleanup lcov
lcov
--directory . --zerocounters
${
LCOV_PATH
}
--directory . --zerocounters
# Run tests
COMMAND
${
_testrunner
}
# Capturing lcov counters and generating report
COMMAND
lcov
--directory . --capture --output-file
${
_outputname
}
.info
COMMAND
lcov
--remove
${
_outputname
}
.info 'tests/*' '/usr/*' --output-file
${
_outputname
}
.info.cleaned
COMMAND
genhtml
-o
${
_outputname
}
${
_outputname
}
.info.cleaned
COMMAND
${
LCOV_PATH
}
--directory . --capture --output-file
${
_outputname
}
.info
COMMAND
${
LCOV_PATH
}
--remove
${
_outputname
}
.info 'tests/*' '/usr/*' --output-file
${
_outputname
}
.info.cleaned
COMMAND
${
GENHTML_PATH
}
-o
${
_outputname
}
${
_outputname
}
.info.cleaned
COMMAND
${
CMAKE_COMMAND
}
-E remove
${
_outputname
}
.info
${
_outputname
}
.info.cleaned
DEPENDS
${
_testrunner
}
WORKING_DIRECTORY
${
CMAKE_BINARY_DIR
}
COMMENT
"Resetting code coverage counters to zero.
\n
Processing code coverage counters and generating report."
COMMENT
"Resetting code coverage counters to zero.
\n
Processing code coverage counters and generating report."
)
# Show info where to find the report
...
...
@@ -75,27 +74,38 @@ FUNCTION(SETUP_TARGET_FOR_COVERAGE _targetname _testrunner _outputname)
COMMAND ;
COMMENT
"Open ./
${
_outputname
}
/index.html in your browser to view the coverage report."
)
# This target produces a Jenkins readable Cobertura report
IF
(
GCOVR_PATH AND PYTHON_EXECUTABLE
)
ADD_CUSTOM_TARGET
(
${
_targetname
}
_cobertura
ENDFUNCTION
()
# SETUP_TARGET_FOR_COVERAGE
# Param _targetname The name of new the custom make target
# Param _testrunner The name of the target which runs the tests
# Param _outputname lcov output is generated as _outputname.info
# HTML report is generated in _outputname/index.html
FUNCTION
(
SETUP_TARGET_FOR_COVERAGE_COBERTURA _targetname _testrunner _outputname
)
IF
(
NOT PYTHON_EXECUTABLE
)
MESSAGE
(
FATAL_ERROR
"Python not found! Aborting..."
)
ENDIF
()
# NOT PYTHON_EXECUTABLE
IF
(
NOT GCOVR_PATH
)
MESSAGE
(
FATAL_ERROR
"gcovr not found! Aborting..."
)
ENDIF
()
# NOT GCOVR_PATH
ADD_CUSTOM_TARGET
(
${
_targetname
}
# Run tests
${
_testrunner
}
# Run tests
${
_testrunner
}
# Running gcovr
COMMAND
${
GCOVR_PATH
}
-x -r
${
CMAKE_SOURCE_DIR
}
-o
${
_outputname
}
.xml
WORKING_DIRECTORY
${
CMAKE_BINARY_DIR
}
COMMENT
"Running gcovr to produce Cobertura code coverage report."
)
# Running gcovr
COMMAND
${
GCOVR_PATH
}
-x -r
${
CMAKE_SOURCE_DIR
}
-o
${
_outputname
}
.xml
WORKING_DIRECTORY
${
CMAKE_BINARY_DIR
}
COMMENT
"Running gcovr to produce Cobertura code coverage report."
)
# Show info where to find the report
ADD_CUSTOM_COMMAND
(
TARGET
${
_targetname
}
_cobertura POST_BUILD
COMMAND ;
COMMENT
"Cobertura code coverage report saved in
${
_outputname
}
.xml."
)
ENDIF
()
# GCOVR_PATH AND PythonInterp_FOUND
# Show info where to find the report
ADD_CUSTOM_COMMAND
(
TARGET
${
_targetname
}
POST_BUILD
COMMAND ;
COMMENT
"Cobertura code coverage report saved in
${
_outputname
}
.xml."
)
ENDFUNCTION
()
# SETUP_TARGET_FOR_COVERAGE
ENDFUNCTION
()
# SETUP_TARGET_FOR_COVERAGE
_COBERTURA
\ No newline at end of file
This diff is collapsed.
Click to expand it.
Preview
0%
Loading
Try again
or
attach a new file
.
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Save comment
Cancel
Please
register
or
sign in
to comment