diff options
author | Jeremy Whiting <jpwhiting@kde.org> | 2013-08-26 14:59:55 -0600 |
---|---|---|
committer | Colin Walters <walters@verbum.org> | 2013-08-28 14:35:54 -0400 |
commit | 499df2a90b4b9c6277615138541d1c35a738d869 (patch) | |
tree | 1857da331a9cdc7634ca344a3057a224bea6d74e /tests/test-pull-resume.sh | |
parent | 902848cd71d699ad7e3532247e33155e4cb0ff50 (diff) | |
download | ostree-499df2a90b4b9c6277615138541d1c35a738d869.tar.gz |
pull: Add support for resuming downloads via range requests
Use a consistent temporary filename to download uri's.
Check for downloaded files before fetching from uri.
Download to hash.part file, then copy/move to hash.done when complete.
Add argument support to setup_fake_remote_repo1 function.
Add test for pull resume.
To implement this, pass --force-range-requests into the trivial-httpd,
which will only serve half of the objects to clients at a time.
https://bugzilla.gnome.org/show_bug.cgi?id=706344
Diffstat (limited to 'tests/test-pull-resume.sh')
-rwxr-xr-x | tests/test-pull-resume.sh | 52 |
1 files changed, 52 insertions, 0 deletions
diff --git a/tests/test-pull-resume.sh b/tests/test-pull-resume.sh new file mode 100755 index 00000000..4770c0b1 --- /dev/null +++ b/tests/test-pull-resume.sh @@ -0,0 +1,52 @@ +#!/bin/bash +# +# Copyright (C) 2013 Jeremy Whiting <jeremy.whiting@collabora.com> +# +# This library is free software; you can redistribute it and/or +# modify it under the terms of the GNU Lesser General Public +# License as published by the Free Software Foundation; either +# version 2 of the License, or (at your option) any later version. +# +# This library is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +# Lesser General Public License for more details. +# +# You should have received a copy of the GNU Lesser General Public +# License along with this library; if not, write to the +# Free Software Foundation, Inc., 59 Temple Place - Suite 330, +# Boston, MA 02111-1307, USA. + +set -e + +. $(dirname $0)/libtest.sh + +setup_fake_remote_repo1 "archive-z2" "--force-range-requests" + +echo '1..1' + +repopath=${test_tmpdir}/ostree-srv/gnomerepo +cp -a ${repopath} ${repopath}.orig + +cd ${test_tmpdir} +rm repo -rf +mkdir repo +${CMD_PREFIX} ostree --repo=repo init +${CMD_PREFIX} ostree --repo=repo remote add origin $(cat httpd-address)/ostree/gnomerepo + +maxtries=`find ${repopath}/objects | wc -l` +maxtries=`expr $maxtries \* 2` + +for ((i = 0; i < $maxtries; i=i+1)) +do +if ${CMD_PREFIX} ostree --repo=repo pull origin main; then + break; +fi +done +if ${CMD_PREFIX} ostree --repo=repo fsck; then + echo "ok, pull succeeded!" +else + assert_not_reached "pull failed!" +fi +rm -rf ${repopath} +cp -a ${repopath}.orig ${repopath} |