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