Index: tools/pdf-comparison.sh |
diff --git a/tools/pdf-comparison.sh b/tools/pdf-comparison.sh |
index d4036a418c8c5f89d818b15d1717dbd3a8f007c3..69f96c980f92ebde47d57d382c713e2eedcb84cc 100755 |
--- a/tools/pdf-comparison.sh |
+++ b/tools/pdf-comparison.sh |
@@ -19,7 +19,7 @@ if ! [ "$1" ] || ! [ "$2" ]; then |
fi |
BAD='' |
-for CMD in 'python' 'ninja' 'pdfium_test' 'timeout' 'skdiff'; do |
+for CMD in 'python' 'ninja' 'pdfium_test' 'skdiff'; do |
if ! command -v "$CMD" > /dev/null ; then |
echo "could not find $CMD command in PATH." >&2 |
BAD=1 |
@@ -69,10 +69,25 @@ if [ -z "$DIFFS" ]; then |
exit 0; |
fi |
+# Portable version of timeout from GNU coreutils. |
+timeout_py() { python -c "$(cat <<EOF |
+import sys, subprocess, threading |
+proc = subprocess.Popen(sys.argv[2:]) |
+timer = threading.Timer(float(sys.argv[1]), proc.terminate) |
+timer.start() |
+proc.wait() |
+timer.cancel() |
+exit(proc.returncode) |
+EOF |
+)" "$@"; } |
+ |
# rasterize the remaining PDFs |
for pdf in "$CON_DIR"/*pdf "$EXP_DIR"/*pdf ; do |
- # timeout is from GNU coreutils |
- if timeout 10 pdfium_test --png "$pdf"; then |
+ if timeout_py 10 pdfium_test --png "$pdf"; then |
+ if ! [ -f "$pdf".*.png ] ; then |
+ echo "Missing pdfium_test output: '$pdf.*.png'" >&2 |
+ exit 1 |
+ fi |
rm "$pdf" |
else |
echo "pdfium_test '$pdf' failed." |