summaryrefslogtreecommitdiff
path: root/tests/test-pull-resume.sh
diff options
context:
space:
mode:
authorJeremy Whiting <jpwhiting@kde.org>2013-08-26 14:59:55 -0600
committerColin Walters <walters@verbum.org>2013-08-28 14:35:54 -0400
commit499df2a90b4b9c6277615138541d1c35a738d869 (patch)
tree1857da331a9cdc7634ca344a3057a224bea6d74e /tests/test-pull-resume.sh
parent902848cd71d699ad7e3532247e33155e4cb0ff50 (diff)
downloadostree-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-xtests/test-pull-resume.sh52
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}