From e7c69b2dd83c92f00c271572af53010704923db6 Mon Sep 17 00:00:00 2001 From: Christian Krause Date: Sat, 8 Aug 2015 19:41:30 +0200 Subject: [PATCH 1/2] memory checks via valgrind --- .travis.yml | 1 + test/Makefile.am | 2 ++ test/compression-memcheck.sh | 22 ++++++++++++++++++++++ test/decompression-memcheck.sh | 25 +++++++++++++++++++++++++ 4 files changed, 50 insertions(+) create mode 100755 test/compression-memcheck.sh create mode 100755 test/decompression-memcheck.sh diff --git a/.travis.yml b/.travis.yml index 0dd4efa..1e4d52b 100644 --- a/.travis.yml +++ b/.travis.yml @@ -16,6 +16,7 @@ addons: - cppcheck - libarchive-dev - liblzma-dev + - valgrind - xz-utils script: diff --git a/test/Makefile.am b/test/Makefile.am index 6aebb6f..808e7b3 100644 --- a/test/Makefile.am +++ b/test/Makefile.am @@ -1,6 +1,8 @@ TESTS = \ compress-file-permissions.sh \ cppcheck-src.sh \ + compression-memcheck.sh \ + decompression-memcheck.sh \ single-file-round-trip.sh \ xz-compatibility-c-option.sh diff --git a/test/compression-memcheck.sh b/test/compression-memcheck.sh new file mode 100755 index 0000000..000829b --- /dev/null +++ b/test/compression-memcheck.sh @@ -0,0 +1,22 @@ +#!/bin/bash + +if which valgrind &> /dev/null ; then + PIXZ=../src/pixz + + INPUT=$(basename $0) + OUTPUT=$INPUT.pixz + + MEMCHECK_OUT=$(mktemp) + + trap "rm -f $OUTPUT $MEMCHECK_OUT" EXIT + + valgrind --tool=memcheck --leak-check=full --show-leak-kinds=all --track-origins=yes \ + $PIXZ $INPUT $OUTPUT \ + 2> $MEMCHECK_OUT + + cat $MEMCHECK_OUT + grep -q 'ERROR SUMMARY: 0' $MEMCHECK_OUT +else + echo "no valgrind, skipping test" + exit 77 +fi diff --git a/test/decompression-memcheck.sh b/test/decompression-memcheck.sh new file mode 100755 index 0000000..c43391a --- /dev/null +++ b/test/decompression-memcheck.sh @@ -0,0 +1,25 @@ +#!/bin/bash + +if which valgrind &> /dev/null ; then + PIXZ=../src/pixz + + INPUT=$(basename $0) + OUTPUT=$INPUT.pixz + UNCOMPRESSED=$INPUT.uncompressed + + MEMCHECK_OUT=$(mktemp) + + trap "rm -f $OUTPUT $MEMCHECK_OUT $UNCOMPRESSED" EXIT + + $PIXZ $INPUT $OUTPUT + + valgrind --tool=memcheck --leak-check=full --show-leak-kinds=all --track-origins=yes \ + $PIXZ -d $OUTPUT $UNCOMPRESSED \ + 2> $MEMCHECK_OUT + + cat $MEMCHECK_OUT + grep -q 'ERROR SUMMARY: 0' $MEMCHECK_OUT +else + echo "no valgrind, skipping test" + exit 77 +fi From 0a77eea9e625186efa809e1b06778b7a47632d50 Mon Sep 17 00:00:00 2001 From: Christian Krause Date: Sat, 8 Aug 2015 22:01:42 +0200 Subject: [PATCH 2/2] travis has too old valgrind --- test/compression-memcheck.sh | 3 ++- test/decompression-memcheck.sh | 3 ++- 2 files changed, 4 insertions(+), 2 deletions(-) diff --git a/test/compression-memcheck.sh b/test/compression-memcheck.sh index 000829b..462bd41 100755 --- a/test/compression-memcheck.sh +++ b/test/compression-memcheck.sh @@ -10,7 +10,8 @@ if which valgrind &> /dev/null ; then trap "rm -f $OUTPUT $MEMCHECK_OUT" EXIT - valgrind --tool=memcheck --leak-check=full --show-leak-kinds=all --track-origins=yes \ + # TODO add --show-leak-kinds=all when travis gets newer valgrind + valgrind --tool=memcheck --leak-check=full --track-origins=yes \ $PIXZ $INPUT $OUTPUT \ 2> $MEMCHECK_OUT diff --git a/test/decompression-memcheck.sh b/test/decompression-memcheck.sh index c43391a..11cc437 100755 --- a/test/decompression-memcheck.sh +++ b/test/decompression-memcheck.sh @@ -13,7 +13,8 @@ if which valgrind &> /dev/null ; then $PIXZ $INPUT $OUTPUT - valgrind --tool=memcheck --leak-check=full --show-leak-kinds=all --track-origins=yes \ + # TODO add --show-leak-kinds=all when travis gets newer valgrind + valgrind --tool=memcheck --leak-check=full --track-origins=yes \ $PIXZ -d $OUTPUT $UNCOMPRESSED \ 2> $MEMCHECK_OUT