summaryrefslogtreecommitdiff
path: root/graphics/pgf/contrib/cartonaugh/test.sh
diff options
context:
space:
mode:
Diffstat (limited to 'graphics/pgf/contrib/cartonaugh/test.sh')
-rwxr-xr-xgraphics/pgf/contrib/cartonaugh/test.sh66
1 files changed, 66 insertions, 0 deletions
diff --git a/graphics/pgf/contrib/cartonaugh/test.sh b/graphics/pgf/contrib/cartonaugh/test.sh
new file mode 100755
index 0000000000..c2859bd0da
--- /dev/null
+++ b/graphics/pgf/contrib/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;