From 02dd413a323df01550dbbc290d46f6180017b857 Mon Sep 17 00:00:00 2001 From: Samuel Thibault Date: Fri, 1 Apr 2022 00:00:54 +0200 Subject: [PATCH] Add valgrind CI run Now that all errors are fixed. --- .github/workflows/ci.yml | 17 +++++++++++++++++ Makefile.am | 6 +++++- tests/common | 8 ++++---- tests/ssml.test | 4 ++-- 4 files changed, 28 insertions(+), 7 deletions(-) diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index 1f66b2cb..f5980551 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -108,3 +108,20 @@ jobs: run: UBSAN_OPTIONS="halt_on_error=1" make - name: make check run: UBSAN_OPTIONS="halt_on_error=1" make check + + valgrind: + + runs-on: ubuntu-latest + + steps: + - uses: actions/checkout@v2 + - name: dependencies + run: sudo apt-get update && sudo apt-get install libpcaudio-dev libsonic-dev ronn kramdown libtool-bin valgrind + - name: autoconf + run: ./autogen.sh ; chmod -x INSTALL m4/*.m4 + - name: configure + run: ./configure + - name: make + run: VALGRIND="libtool --mode=execute valgrind --track-origins=yes --leak-check=full --error-exitcode=1" make + - name: make check + run: VALGRIND="libtool --mode=execute valgrind --track-origins=yes --leak-check=full --error-exitcode=1" make check diff --git a/Makefile.am b/Makefile.am index 7cca850f..0f4ba7ab 100644 --- a/Makefile.am +++ b/Makefile.am @@ -242,28 +242,32 @@ check_PROGRAMS += tests/encoding.test tests_encoding_test_LDADD = src/libespeak-ng.la tests_encoding_test_SOURCES = tests/encoding.c +tests/encoding.check: LOG_COMPILER=$(VALGRIND) check_PROGRAMS += tests/readclause.test tests_readclause_test_CFLAGS = -Isrc/libespeak-ng ${AM_CFLAGS} tests_readclause_test_LDADD = src/libespeak-ng-test.la tests_readclause_test_SOURCES = tests/readclause.c +tests/readclause.check: LOG_COMPILER=$(VALGRIND) check_PROGRAMS += tests/api.test tests_api_test_CFLAGS = -Isrc/libespeak-ng ${AM_CFLAGS} tests_api_test_LDADD = src/libespeak-ng-test.la tests_api_test_SOURCES = tests/api.c +tests/api.check: LOG_COMPILER=$(VALGRIND) check_PROGRAMS += tests/ieee80.test tests_ieee80_test_CFLAGS = -Isrc/libespeak-ng ${AM_CFLAGS} tests_ieee80_test_LDADD = src/libespeak-ng-test.la tests_ieee80_test_SOURCES = tests/ieee80.c +tests/ieee80.check: LOG_COMPILER=$(VALGRIND) .test.check: @echo " TEST $<" - @ESPEAK_DATA_PATH=$(CURDIR) $< && echo " PASSED $<" + @ESPEAK_DATA_PATH=$(CURDIR) $(LOG_COMPILER) $< && echo " PASSED $<" check: tests/encoding.check \ tests/readclause.check \ diff --git a/tests/common b/tests/common index 052a4439..2d96569a 100755 --- a/tests/common +++ b/tests/common @@ -56,7 +56,7 @@ test_phon() { echo "testing ${TEST_LANG} $MESSAGE" ESPEAK_DATA_PATH=`pwd` LD_LIBRARY_PATH=src:${LD_LIBRARY_PATH} \ - src/espeak-ng -xq ${OPTIONS} -v ${TEST_LANG} "${TEST_TEXT}" \ + $VALGRIND src/espeak-ng -xq ${OPTIONS} -v ${TEST_LANG} "${TEST_TEXT}" \ > actual.txt || exit 1 echo "${EXPECTED}" > expected.txt if [ "$MESSAGE" = "Ignore" ] ; then @@ -75,7 +75,7 @@ test_wav () { echo "testing ${VOICE}${MESSAGE}" ESPEAK_DATA_PATH=`pwd` LD_LIBRARY_PATH=src:${LD_LIBRARY_PATH} \ - src/espeak-ng --stdout -v ${VOICE} "${TEST_TEXT}" \ + $VALGRIND src/espeak-ng --stdout -v ${VOICE} "${TEST_TEXT}" \ > actual.txt || exit 1 < actual.txt $sha1sum | awk '{ print $1 }' > sum.txt echo "${EXPECTED}" > expected.txt @@ -94,7 +94,7 @@ test_wav_grep () { MESSAGE=$4 echo "testing ${VOICE}${MESSAGE}" ESPEAK_DATA_PATH=`pwd` LD_LIBRARY_PATH=src:${LD_LIBRARY_PATH} \ - src/espeak-ng --stdout -v ${VOICE} "${TEST_TEXT}" \ + $VALGRIND src/espeak-ng --stdout -v ${VOICE} "${TEST_TEXT}" \ > actual.txt || exit 1 < actual.txt $sha1sum | awk '{ print $1 }' > sum.txt if [ "$MESSAGE" = "Ignore" ] ; then @@ -123,7 +123,7 @@ test_replace() { echo "testing ${TEST_LANG}" ESPEAK_DATA_PATH=`pwd` LD_LIBRARY_PATH=src:${LD_LIBRARY_PATH} \ - src/espeak-ng -Xq -v ${TEST_LANG} "${TEST_TEXT}" \ + $VALGRIND src/espeak-ng -Xq -v ${TEST_LANG} "${TEST_TEXT}" \ > actual.txt || exit 1 < actual.txt grep -E "(Translate|Found:) " | sed -e 's/ \[.*][ ]*$//g' > filtered.txt if [ "$MESSAGE" = "Ignore" ] ; then diff --git a/tests/ssml.test b/tests/ssml.test index 16356a32..7bb2435d 100755 --- a/tests/ssml.test +++ b/tests/ssml.test @@ -11,7 +11,7 @@ test_ssml_audio() { echo "testing ${TEST_NAME}" ESPEAK_DATA_PATH=`pwd` LD_LIBRARY_PATH=src:${LD_LIBRARY_PATH} \ - src/espeak-ng --stdout -m "${TEST_TEXT}" \ + $VALGRIND src/espeak-ng --stdout -m "${TEST_TEXT}" \ > actual.txt || exit 1 < actual.txt $sha1sum | awk '{ print $1 }' > sum.txt echo "${EXPECTED}" > expected.txt @@ -31,7 +31,7 @@ test_ssml() { echo "testing ${INPUT}" cp $(dirname $INPUT)/$(basename ${INPUT%.*}).expected expected.txt ESPEAK_DATA_PATH=`pwd` LD_LIBRARY_PATH=src:${LD_LIBRARY_PATH} \ - src/espeak-ng -m -q $PARAMETERS -f ${INPUT} \ + $VALGRIND src/espeak-ng -m -q $PARAMETERS -f ${INPUT} \ > actual.txt || exit 1 diff expected.txt actual.txt || exit 1 }