aboutsummaryrefslogtreecommitdiffhomepage
path: root/tools/pdf-comparison.sh
diff options
context:
space:
mode:
authorGravatar halcanary <halcanary@google.com>2016-04-27 07:44:03 -0700
committerGravatar Commit bot <commit-bot@chromium.org>2016-04-27 07:44:03 -0700
commitd1556071715d28217b7c64774335fcce2cbf46c6 (patch)
treea9796714a3807ed304a058d65cc47dd21b5901ec /tools/pdf-comparison.sh
parent6f47dbaff54a7705ef3e98f1f65c765e56fd9bd0 (diff)
tools/pdf-comparison.sh: stop relying on /usr/bin/timeout
NOTRY=true TBR= Review URL: https://codereview.chromium.org/1921943006
Diffstat (limited to 'tools/pdf-comparison.sh')
-rwxr-xr-xtools/pdf-comparison.sh21
1 files changed, 18 insertions, 3 deletions
diff --git a/tools/pdf-comparison.sh b/tools/pdf-comparison.sh
index d4036a418c..69f96c980f 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."