| @@ -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 | |||
| @@ -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 \ | |||
| @@ -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 | |||
| @@ -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 | |||
| } | |||