Browse Source

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

master
Valdis Vitolins 5 years ago
parent
commit
53f65b51eb
3 changed files with 25 additions and 1 deletions
  1. 1
    0
      .gitignore
  2. 2
    1
      Makefile.am
  3. 22
    0
      tests/bom.test

+ 1
- 0
.gitignore 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
Makefile.am 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:


+ 22
- 0
tests/bom.test 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


Loading…
Cancel
Save