summaryrefslogtreecommitdiff
path: root/test/latex/run_tests.sh
diff options
context:
space:
mode:
authorAlex Richardson2020-09-25 12:31:04 +0100
committerAlex Richardson2020-09-25 12:31:04 +0100
commitf22136def93656ebe8c4c6e49214983365ecd6e2 (patch)
treeaf7546afd800b63164ff3acb71be49ea77e2cd94 /test/latex/run_tests.sh
parent782d3860eb0134c81d4a4204b7caab72cda3bd1d (diff)
Add an initial LaTeX test
This is for a bug I encountered while moving some docs over from the ISA spec into sail documentation comments.
Diffstat (limited to 'test/latex/run_tests.sh')
-rwxr-xr-xtest/latex/run_tests.sh57
1 files changed, 57 insertions, 0 deletions
diff --git a/test/latex/run_tests.sh b/test/latex/run_tests.sh
new file mode 100755
index 00000000..6ba3ce6f
--- /dev/null
+++ b/test/latex/run_tests.sh
@@ -0,0 +1,57 @@
+#!/usr/bin/env bash
+set -e
+
+DIR="$( cd "$( dirname "${BASH_SOURCE[0]}" )" && pwd )"
+cd "$DIR"
+SAILDIR="$DIR/../.."
+
+rm -f "$DIR/tests.xml"
+
+# shellcheck source=../test_helpers.sh
+source "$SAILDIR/test/test_helpers.sh"
+
+
+printf "<testsuites>\n" >> "$DIR/tests.xml"
+
+find . -name '*.sail' -print0 | while IFS= read -r -d '' line; do
+ echo "$line"
+done
+
+for testfile in *.sail; do
+ temp_dir=$(mktemp -d)
+ trap 'rm -rf $temp_dir' 0 2 3 15
+
+ if (cd "$temp_dir" && "$SAILDIR/sail" -o "out" -latex "$DIR/$testfile"); then
+ # compare with expected files
+ exp_prefix=${testfile//.sail/}
+ errmsg="Missing .exp files for $testfile?"
+ for expected in "${exp_prefix}"*.exp; do
+ echo "expected=$expected"
+ # remove prefix and suffix
+ exp_file_name=${expected//${exp_prefix}./}
+ generated_file="$temp_dir/out/${exp_file_name//.exp/}"
+ if [ ! -f "$generated_file" ]; then
+ errmsg="missing expected output $generated_file"
+ break;
+ elif ! diff -q "$generated_file" "$expected"; then
+ diff -u "$generated_file" "$expected" || true
+ errmsg="output is different"
+ break
+ else
+ errmsg=""
+ fi
+ done
+ if [ -z "$errmsg" ]; then
+ green "LaTeX for $testfile" "ok"
+ else
+ yellow "LaTeX for $testfile" "$errmsg"
+ fi;
+ else
+ red "failed to generate latex for $testfile" "fail"
+ fi
+ rm -rf "$temp_dir"
+done
+
+finish_suite "LaTeX testing"
+
+printf "</testsuites>\n" >> "$DIR/tests.xml"