Browse Source

tests/language.test: Use different hashing commands when needed

Outside of Linux platforms, sha1 hashing from the command-line is accomplished
by commands other than sha1sum. OSX uses shasum and FreeBSD uses sha1, so I've
added in detection for the appropriate command before falling back and failing
the test.
master
Anthony Cornehl 7 years ago
parent
commit
3115f769b1
1 changed files with 20 additions and 1 deletions
  1. 20
    1
      tests/languages.test

+ 20
- 1
tests/languages.test View File

@@ -1,5 +1,24 @@
#!/bin/sh

# Test a command for presence and ability to output the sha1 hash of a file.
check_hashcmd() {
which $1 >&/dev/null &&
$1 </dev/null 2>/dev/null |
awk '{if ($1 != "da39a3ee5e6b4b0d3255bfef95601890afd80709") { exit 1; }}'
}

# Test some common commands to find the correct one for the system being tested on.
if check_hashcmd sha1sum; then
sha1sum=sha1sum
elif check_hashcmd sha1; then
sha1sum=sha1
elif check_hashcmd shasum; then
sha1sum=shasum
else
echo "No hashing commands found."
false
fi

test_lang() {
if test "$#" -eq 3; then
TEST_LANG=$1
@@ -16,7 +35,7 @@ test_lang() {
echo "testing ${TEST_NAME}"
ESPEAK_DATA_PATH=`pwd` LD_LIBRARY_PATH=src:${LD_LIBRARY_PATH} \
src/espeak-ng --stdout -v ${TEST_LANG} "${TEST_TEXT}" | \
sha1sum | awk '{ print $1 }' > actual.txt
$sha1sum | awk '{ print $1 }' > actual.txt
echo "${EXPECTED}" > expected.txt
diff expected.txt actual.txt || exit 1
}

Loading…
Cancel
Save