diff options
Diffstat (limited to 'Master/texmf-dist/doc/latex/cartonaugh/test.sh')
-rwxr-xr-x | Master/texmf-dist/doc/latex/cartonaugh/test.sh | 66 |
1 files changed, 66 insertions, 0 deletions
diff --git a/Master/texmf-dist/doc/latex/cartonaugh/test.sh b/Master/texmf-dist/doc/latex/cartonaugh/test.sh new file mode 100755 index 00000000000..c2859bd0da6 --- /dev/null +++ b/Master/texmf-dist/doc/latex/cartonaugh/test.sh @@ -0,0 +1,66 @@ +#!/usr/bin/env bash + +# color variables +C_RED='\033[0;31m' +C_GREEN='\033[0;32m' +C_RESET='\033[0m' + +# error count variable +ERROR=0 + +# enter test directory +pushd ./test > /dev/null + +# clean actual and result directory and recreate +rm -rf actual result +mkdir actual result + +processTexFile() { + printf "Processing '%s'\n" "${1}"; + lualatex -halt-on-error -interaction=nonstopmode -output-directory actual "${1}" > /dev/null 2>&1 + if [ "$?" == 0 ]; then + printf "Processing of '%s' finished\n" "${1}"; + else + printf "%bProcessing of '%s' failed%b\n" "${C_RED}" "${1}" "${C_RESET}"; + fi +} + +# run lualatex on all files ending with ".tex" and output to folder actual +for file in *.tex; do + (processTexFile "${file}")& # run i parallel +done; + +# wait for all lualatex children +wait + +# if expected folder exist compare to actual +if [ ! -d "./expected" ]; then + printf "%bMissing expected directory, can not compare%b\n" "${C_RED}" "${C_RESET}"; + ERROR=$((ERROR+1)) +else + pushd expected > /dev/null + for file in *.pdf; do + # make sure the actual version exist + if [ ! -f "../actual/${file}" ]; then + printf "%bTest '%s' is missing%b\n" "${C_RED}" "${file}" "${C_RESET}"; + ERROR=$((ERROR+1)) + else + diff-pdf --output-diff="../result/${file}" "${file}" "../actual/${file}"; + # if actual is equal to expected (exit code == 0) rm result file + if [ "$?" == 0 ]; then + rm "../result/${file}"; + printf "%bTest '%s' succeeded%b\n" "${C_GREEN}" "${file}" "${C_RESET}"; + else + printf "%bTest '%s' failed%b\n" "${C_RED}" "${file}" "${C_RESET}"; + ERROR=$((ERROR+1)) + fi + fi + done + popd > /dev/null +fi + +# return from test directory +popd > /dev/null + +# return correct error code +exit $ERROR; |