Browse Source

Add valgrind CI run

Now that all errors are fixed.
master
Samuel Thibault 3 years ago
parent
commit
02dd413a32
4 changed files with 28 additions and 7 deletions
  1. 17
    0
      .github/workflows/ci.yml
  2. 5
    1
      Makefile.am
  3. 4
    4
      tests/common
  4. 2
    2
      tests/ssml.test

+ 17
- 0
.github/workflows/ci.yml View File

run: UBSAN_OPTIONS="halt_on_error=1" make run: UBSAN_OPTIONS="halt_on_error=1" make
- name: make check - name: make check
run: UBSAN_OPTIONS="halt_on_error=1" 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

+ 5
- 1
Makefile.am View File



tests_encoding_test_LDADD = src/libespeak-ng.la tests_encoding_test_LDADD = src/libespeak-ng.la
tests_encoding_test_SOURCES = tests/encoding.c tests_encoding_test_SOURCES = tests/encoding.c
tests/encoding.check: LOG_COMPILER=$(VALGRIND)


check_PROGRAMS += tests/readclause.test check_PROGRAMS += tests/readclause.test


tests_readclause_test_CFLAGS = -Isrc/libespeak-ng ${AM_CFLAGS} tests_readclause_test_CFLAGS = -Isrc/libespeak-ng ${AM_CFLAGS}
tests_readclause_test_LDADD = src/libespeak-ng-test.la tests_readclause_test_LDADD = src/libespeak-ng-test.la
tests_readclause_test_SOURCES = tests/readclause.c tests_readclause_test_SOURCES = tests/readclause.c
tests/readclause.check: LOG_COMPILER=$(VALGRIND)


check_PROGRAMS += tests/api.test check_PROGRAMS += tests/api.test


tests_api_test_CFLAGS = -Isrc/libespeak-ng ${AM_CFLAGS} tests_api_test_CFLAGS = -Isrc/libespeak-ng ${AM_CFLAGS}
tests_api_test_LDADD = src/libespeak-ng-test.la tests_api_test_LDADD = src/libespeak-ng-test.la
tests_api_test_SOURCES = tests/api.c tests_api_test_SOURCES = tests/api.c
tests/api.check: LOG_COMPILER=$(VALGRIND)


check_PROGRAMS += tests/ieee80.test check_PROGRAMS += tests/ieee80.test


tests_ieee80_test_CFLAGS = -Isrc/libespeak-ng ${AM_CFLAGS} tests_ieee80_test_CFLAGS = -Isrc/libespeak-ng ${AM_CFLAGS}
tests_ieee80_test_LDADD = src/libespeak-ng-test.la tests_ieee80_test_LDADD = src/libespeak-ng-test.la
tests_ieee80_test_SOURCES = tests/ieee80.c tests_ieee80_test_SOURCES = tests/ieee80.c
tests/ieee80.check: LOG_COMPILER=$(VALGRIND)


.test.check: .test.check:
@echo " TEST $<" @echo " TEST $<"
@ESPEAK_DATA_PATH=$(CURDIR) $< && echo " PASSED $<"
@ESPEAK_DATA_PATH=$(CURDIR) $(LOG_COMPILER) $< && echo " PASSED $<"


check: tests/encoding.check \ check: tests/encoding.check \
tests/readclause.check \ tests/readclause.check \

+ 4
- 4
tests/common View File



echo "testing ${TEST_LANG} $MESSAGE" echo "testing ${TEST_LANG} $MESSAGE"
ESPEAK_DATA_PATH=`pwd` LD_LIBRARY_PATH=src:${LD_LIBRARY_PATH} \ 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 > actual.txt || exit 1
echo "${EXPECTED}" > expected.txt echo "${EXPECTED}" > expected.txt
if [ "$MESSAGE" = "Ignore" ] ; then if [ "$MESSAGE" = "Ignore" ] ; then


echo "testing ${VOICE}${MESSAGE}" echo "testing ${VOICE}${MESSAGE}"
ESPEAK_DATA_PATH=`pwd` LD_LIBRARY_PATH=src:${LD_LIBRARY_PATH} \ 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 || exit 1
< actual.txt $sha1sum | awk '{ print $1 }' > sum.txt < actual.txt $sha1sum | awk '{ print $1 }' > sum.txt
echo "${EXPECTED}" > expected.txt echo "${EXPECTED}" > expected.txt
MESSAGE=$4 MESSAGE=$4
echo "testing ${VOICE}${MESSAGE}" echo "testing ${VOICE}${MESSAGE}"
ESPEAK_DATA_PATH=`pwd` LD_LIBRARY_PATH=src:${LD_LIBRARY_PATH} \ 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 || exit 1
< actual.txt $sha1sum | awk '{ print $1 }' > sum.txt < actual.txt $sha1sum | awk '{ print $1 }' > sum.txt
if [ "$MESSAGE" = "Ignore" ] ; then if [ "$MESSAGE" = "Ignore" ] ; then


echo "testing ${TEST_LANG}" echo "testing ${TEST_LANG}"
ESPEAK_DATA_PATH=`pwd` LD_LIBRARY_PATH=src:${LD_LIBRARY_PATH} \ 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 || exit 1
< actual.txt grep -E "(Translate|Found:) " | sed -e 's/ \[.*][ ]*$//g' > filtered.txt < actual.txt grep -E "(Translate|Found:) " | sed -e 's/ \[.*][ ]*$//g' > filtered.txt
if [ "$MESSAGE" = "Ignore" ] ; then if [ "$MESSAGE" = "Ignore" ] ; then

+ 2
- 2
tests/ssml.test View File



echo "testing ${TEST_NAME}" echo "testing ${TEST_NAME}"
ESPEAK_DATA_PATH=`pwd` LD_LIBRARY_PATH=src:${LD_LIBRARY_PATH} \ 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 || exit 1
< actual.txt $sha1sum | awk '{ print $1 }' > sum.txt < actual.txt $sha1sum | awk '{ print $1 }' > sum.txt
echo "${EXPECTED}" > expected.txt echo "${EXPECTED}" > expected.txt
echo "testing ${INPUT}" echo "testing ${INPUT}"
cp $(dirname $INPUT)/$(basename ${INPUT%.*}).expected expected.txt cp $(dirname $INPUT)/$(basename ${INPUT%.*}).expected expected.txt
ESPEAK_DATA_PATH=`pwd` LD_LIBRARY_PATH=src:${LD_LIBRARY_PATH} \ 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 > actual.txt || exit 1
diff expected.txt actual.txt || exit 1 diff expected.txt actual.txt || exit 1
} }

Loading…
Cancel
Save