mirror of
https://github.com/ostreedev/ostree.git
synced 2024-12-22 17:35:55 +03:00
tests: Test pull behaviour when network timeouts occur
Extend test-pull-repeated.sh to test error 408 as well as error 500, to ensure that the new retry-on-network-timeout code in ostree-repo-pull.c correctly retries. Rather than the 200 iterations needed for the error 500 tests, only do 5 iterations. The pull code internally does 5 retries (by default), which means a full iteration count of 25. That seems to be sufficient to make the tests reliably pass, in my testing — we can always bump it up to 200 / 5 = 40 in future if needed (to put it in parity with the error 500 tests). Signed-off-by: Philip Withnall <withnall@endlessm.com> Closes: #1594 Approved by: jlebon
This commit is contained in:
parent
97c348d65b
commit
c9619a4904
@ -23,12 +23,14 @@ set -euo pipefail
|
||||
|
||||
. $(dirname $0)/libtest.sh
|
||||
|
||||
echo "1..1"
|
||||
echo "1..2"
|
||||
|
||||
COMMIT_SIGN="--gpg-homedir=${TEST_GPG_KEYHOME} --gpg-sign=${TEST_GPG_KEYID_1}"
|
||||
|
||||
# Test pulling from a repo which gives error 500 (internal server error) a lot of the time.
|
||||
setup_fake_remote_repo1 "archive" "${COMMIT_SIGN}" --random-500s=50
|
||||
|
||||
cd ${test_tmpdir}
|
||||
pushd ${test_tmpdir}
|
||||
ostree_repo_init repo --mode=archive
|
||||
${CMD_PREFIX} ostree --repo=repo remote add --set=gpg-verify=false origin $(cat httpd-address)/ostree/gnomerepo
|
||||
for x in $(seq 200); do
|
||||
@ -42,4 +44,26 @@ done
|
||||
${CMD_PREFIX} ostree --repo=repo fsck
|
||||
${CMD_PREFIX} ostree --repo=repo rev-parse main
|
||||
|
||||
popd
|
||||
echo "ok repeated pull after 500s"
|
||||
|
||||
# Now test from a repo which gives error 408 (request timeout) a lot of the time.
|
||||
rm ostree-srv httpd repo -rf
|
||||
setup_fake_remote_repo1 "archive" "${COMMIT_SIGN}" --random-408s=50
|
||||
|
||||
pushd ${test_tmpdir}
|
||||
ostree_repo_init repo --mode=archive
|
||||
${CMD_PREFIX} ostree --repo=repo remote add --set=gpg-verify=false origin $(cat httpd-address)/ostree/gnomerepo
|
||||
for x in $(seq 40); do
|
||||
if ${CMD_PREFIX} ostree --repo=repo pull --mirror origin main 2>err.txt; then
|
||||
echo "Success on iteration ${x}"
|
||||
break;
|
||||
fi
|
||||
assert_file_has_content err.txt "\(408.*Request Timeout\)\|\(HTTP 408\)"
|
||||
done
|
||||
|
||||
${CMD_PREFIX} ostree --repo=repo fsck
|
||||
${CMD_PREFIX} ostree --repo=repo rev-parse main
|
||||
|
||||
popd
|
||||
echo "ok repeated pull after 408s"
|
||||
|
Loading…
Reference in New Issue
Block a user