Add a test to ensure source files do not have Byte Order Mark

This commit is contained in:
Valdis Vitolins
2019-12-16 22:31:09 +02:00
parent bfef012068
commit 53f65b51eb
3 changed files with 25 additions and 1 deletions
+1
View File
@@ -110,6 +110,7 @@ tests/*.check
!tests/ssml.test
!tests/translate.test
!tests/non-executable-files-with-executable-bit.test
!tests/bom.test
espeak-ng.pc
+2 -1
View File
@@ -256,7 +256,8 @@ check: tests/encoding.check \
tests/language-pronunciation.check \
tests/language-numbers-cardinal.check \
tests/language-numbers-ordinal.check \
tests/non-executable-files-with-executable-bit.check
tests/non-executable-files-with-executable-bit.check \
tests/bom.check
##### fuzzer:
Executable
+22
View File
@@ -0,0 +1,22 @@
#!/bin/bash
# This script checks for Byte Order Marks in source files
# which in some places may break compilation/runtime of eSpeak NG
# Look for more at: https://en.wikipedia.org/wiki/Byte_order_mark
echo -n "testing for Byte Order Marks in source files ... "
# TODO checking for other encodings (e.g. UTF-16, UTF-32, UTF-7) needs more elaborate search,
# otherwise it shows many false positives
egrep -rlI $'\xEF\xBB\xBF' . | tee tests/bom.check >/dev/null # UTF-8
if [ -s tests/bom.check ] ; then
echo "found:"
cat tests/bom.check
false
else
rm tests/bom.check
echo "none found"
true
fi