diff options
author | Kevin Rocard <kevin.rocard@intel.com> | 2015-04-11 23:26:37 +0200 |
---|---|---|
committer | Eric Laurent <elaurent@google.com> | 2015-04-24 13:39:14 -0700 |
commit | 2085e0e59a7c1d3d731ad1ffbce4c9434ea9e602 (patch) | |
tree | c3040b11a7b3b1452b4c16b602024d31dbaae610 /ctest | |
parent | 4c18b3a9a3bc1a8fc4317f0076716ebdc81af917 (diff) | |
download | external_parameter-framework-2085e0e59a7c1d3d731ad1ffbce4c9434ea9e602.zip external_parameter-framework-2085e0e59a7c1d3d731ad1ffbce4c9434ea9e602.tar.gz external_parameter-framework-2085e0e59a7c1d3d731ad1ffbce4c9434ea9e602.tar.bz2 |
Fail memcheck target on leak or memory errors
Some unit test were checked using valgrind,
but if an error was detected it was only logged:
the build was not failed.
Fail to build all *MemCheck targets if
a leak or an error is reported by valgrind.
Signed-off-by: Kevin Rocard <kevin.rocard@intel.com>
Diffstat (limited to 'ctest')
-rw-r--r-- | ctest/CMakeLists.txt | 14 | ||||
-rw-r--r-- | ctest/valgrind.supp | 11 |
2 files changed, 25 insertions, 0 deletions
diff --git a/ctest/CMakeLists.txt b/ctest/CMakeLists.txt index 6ee2e10..c8cdbbb 100644 --- a/ctest/CMakeLists.txt +++ b/ctest/CMakeLists.txt @@ -26,6 +26,20 @@ # (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS # SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. +# Ctest configuration variables must be set BEFORE include(Ctest) + +# Check process children and give detail for each leak +set(MEMORYCHECK_COMMAND_OPTIONS + "${MEMORYCHECK_COMMAND_OPTIONS} --trace-children=yes --leak-check=full") + +# As dash is not used to submit results, there is no way to see valgrind result. +# Force it to log to stderr and fail in case of leak or error. +set(MEMORYCHECK_COMMAND_OPTIONS + "${MEMORYCHECK_COMMAND_OPTIONS} --error-exitcode=255 --log-fd=2") + +# Ignore errors from third-partie libraries +set(MEMORYCHECK_SUPPRESSIONS_FILE "${CMAKE_CURRENT_LIST_DIR}/valgrind.supp") + # Enable tests, coverage, memcheck, ... # See http://www.cmake.org/Wiki/CMake/Testing_With_CTest#Dashboard_Preparation include(CTest) diff --git a/ctest/valgrind.supp b/ctest/valgrind.supp new file mode 100644 index 0000000..1de6188 --- /dev/null +++ b/ctest/valgrind.supp @@ -0,0 +1,11 @@ +# Ignore conditional jump in libz. +# It is fixed in zlib1g v1.2.8 (ubuntu 14.04) +# but not in v1.2.3 (ubuntu 12.04) which travis has. +{ + libz/inflateReset2/jump + Memcheck:Cond + fun:inflateReset2 + fun:inflateInit2_ + obj:/*/libz.so* +} + |