diff options
author | 2016-04-27 07:44:03 -0700 | |
---|---|---|
committer | 2016-04-27 07:44:03 -0700 | |
commit | d1556071715d28217b7c64774335fcce2cbf46c6 (patch) | |
tree | a9796714a3807ed304a058d65cc47dd21b5901ec /tools/pdf-comparison.sh | |
parent | 6f47dbaff54a7705ef3e98f1f65c765e56fd9bd0 (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-x | tools/pdf-comparison.sh | 21 |
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." |