libs.mk: retry partial testdata download
authorJames Zern <jzern@google.com>
Fri, 16 Jun 2017 06:33:11 +0000 (23:33 -0700)
committerJames Zern <jzern@google.com>
Mon, 19 Jun 2017 21:40:39 +0000 (14:40 -0700)
attempt retry on transient failures uncaught by --retry

Change-Id: I7cd8846ff88daf0f521af9ee182e30bfd79f51f3

libs.mk

diff --git a/libs.mk b/libs.mk
index f1e9242..42b24a6 100644 (file)
--- a/libs.mk
+++ b/libs.mk
@@ -406,8 +406,16 @@ CLEAN-OBJS += libvpx_test_srcs.txt
 
 $(LIBVPX_TEST_DATA): $(SRC_PATH_BARE)/test/test-data.sha1
        @echo "    [DOWNLOAD] $@"
-       $(qexec)trap 'rm -f $@' INT TERM &&\
-            curl --retry 1 -L -o $@ $(call libvpx_test_data_url,$(@F))
+       # Attempt to download the file using curl, retrying once if it fails for a
+       # partial file (18).
+       $(qexec)( \
+         trap 'rm -f $@' INT TERM; \
+         curl="curl --retry 1 -L -o $@ $(call libvpx_test_data_url,$(@F))"; \
+         $$curl; \
+         case "$$?" in \
+           18) $$curl -C -;; \
+         esac \
+       )
 
 testdata:: $(LIBVPX_TEST_DATA)
        $(qexec)[ -x "$$(which sha1sum)" ] && sha1sum=sha1sum;\