| if (SHELL AND UNIX) | if (SHELL AND UNIX) | ||||
| # shell_test(bom) | |||||
| # shell_test(non-executable-files-with-executable-bit) | |||||
| shell_test(bom) | |||||
| shell_test(non-executable-files-with-executable-bit) | |||||
| shell_test(cmd_options) | shell_test(cmd_options) | ||||
| shell_test(dictionary) | shell_test(dictionary) | ||||
| shell_test(language-numbers-cardinal) | shell_test(language-numbers-cardinal) | ||||
| shell_test(language-numbers-ordinal) | shell_test(language-numbers-ordinal) | ||||
| # shell_test(language-phonemes) | |||||
| shell_test(language-phonemes) | |||||
| shell_test(language-pronunciation) | shell_test(language-pronunciation) | ||||
| shell_test(language-replace) | shell_test(language-replace) | ||||
| shell_test(ssml) | shell_test(ssml) |
| # TODO checking for other encodings (e.g. UTF-16, UTF-32, UTF-7) needs more elaborate search, | # TODO checking for other encodings (e.g. UTF-16, UTF-32, UTF-7) needs more elaborate search, | ||||
| # otherwise it shows many false positives | # otherwise it shows many false positives | ||||
| grep -ErlI $'\xEF\xBB\xBF' * | tee tests/bom.check >/dev/null # UTF-8 | |||||
| cd $(dirname $0)/.. | |||||
| grep -ErlI $'\xEF\xBB\xBF' * | grep -v '^build/' | tee tests/bom.check >/dev/null # UTF-8 | |||||
| if [ -s tests/bom.check ] ; then | if [ -s tests/bom.check ] ; then | ||||
| echo "found:" | echo "found:" | ||||
| echo "none found" | echo "none found" | ||||
| true | true | ||||
| fi | fi | ||||
| # read column 5 (File) of espeak-ng --voices, skip the directory | # read column 5 (File) of espeak-ng --voices, skip the directory | ||||
| echo "checking if all supported languages have phoneme tests ..." | echo "checking if all supported languages have phoneme tests ..." | ||||
| for lang in $(ESPEAK_DATA_PATH=`pwd` LD_LIBRARY_PATH=src:${LD_LIBRARY_PATH} src/espeak-ng --voices | awk '{print $5}' | cut -d "/" -f 2-2 | tail -n+2); | for lang in $(ESPEAK_DATA_PATH=`pwd` LD_LIBRARY_PATH=src:${LD_LIBRARY_PATH} src/espeak-ng --voices | awk '{print $5}' | cut -d "/" -f 2-2 | tail -n+2); | ||||
| do if ! grep -q "test_phwav $lang" tests/language-phonemes.test | |||||
| do if ! grep -q "test_phwav $lang" $0 | |||||
| then | then | ||||
| echo "$lang missing a phoneme test in tests/language-phonemes.test"; | echo "$lang missing a phoneme test in tests/language-phonemes.test"; | ||||
| exit 1; | exit 1; |
| echo -n "testing files for executable bits that shouldn't be executable ... " | echo -n "testing files for executable bits that shouldn't be executable ... " | ||||
| cd $(dirname $0)/.. | |||||
| find * -executable -type f | \ | find * -executable -type f | \ | ||||
| grep -vE "compile|config\.(guess|status|sub)|configure|depcomp|install-sh|libtool|missing" | # Ignore autotools output \ | grep -vE "compile|config\.(guess|status|sub)|configure|depcomp|install-sh|libtool|missing" | # Ignore autotools output \ | ||||
| grep -vE "build" | # Ignore cmake output \ | |||||
| grep -vE ".*\.test|tests/common|src(/\.libs)?/(e?speak-ng|.*\.so\..*)|src/\.libs/lt-espeak-ng|android" | # Ignore built programs and libraries \ | grep -vE ".*\.test|tests/common|src(/\.libs)?/(e?speak-ng|.*\.so\..*)|src/\.libs/lt-espeak-ng|android" | # Ignore built programs and libraries \ | ||||
| grep -vE ".*\.sh|tools/emoji" | # Ignore helper scripts \ | grep -vE ".*\.sh|tools/emoji" | # Ignore helper scripts \ | ||||
| grep -vE "src/ucd-tools/tools/(.*\.py|mkencodingtable)" | # Ignore ucd-tools helper scripts \ | grep -vE "src/ucd-tools/tools/(.*\.py|mkencodingtable)" | # Ignore ucd-tools helper scripts \ | ||||
| echo "none found" | echo "none found" | ||||
| true | true | ||||
| fi | fi | ||||
| diff expected.txt actual.txt || exit 1 | diff expected.txt actual.txt || exit 1 | ||||
| } | } | ||||
| for i in `ls tests/ssml/*.ssml` ; do test_ssml $i; done | |||||
| for i in `ls tests/ssml/*.ssml2` ; do test_ssml $i punct; done | |||||
| for i in `dirname $0`/ssml/*.ssml ; do test_ssml $i; done | |||||
| for i in `dirname $0`/ssml/*.ssml2 ; do test_ssml $i punct; done | |||||
| test_ssml_audio "<prosody>" 88fccb35536158f25f4ae44a03fb005fef95c99b "<speak><prosody rate=\"x-slow\" pitch=\"low\"> Slow and low </prosody><prosody rate=\"x-fast\" pitch=\"x-high\"> Fast and high.</prosody></speak>" | test_ssml_audio "<prosody>" 88fccb35536158f25f4ae44a03fb005fef95c99b "<speak><prosody rate=\"x-slow\" pitch=\"low\"> Slow and low </prosody><prosody rate=\"x-fast\" pitch=\"x-high\"> Fast and high.</prosody></speak>" | ||||
| # #410 is a bug in SSML. Sentence termination causes prosody stack to misfunction. | # #410 is a bug in SSML. Sentence termination causes prosody stack to misfunction. |