6d578a0e46
Several of our test scripts in the t/ directory do not have file permissions allowing them to be executed directly, so we correct that now.
133 lines
3.0 KiB
Bash
Executable File
133 lines
3.0 KiB
Bash
Executable File
#!/usr/bin/env bash
|
|
|
|
. "$(dirname "$0")/testlib.sh"
|
|
|
|
begin_test "batch upload causes retries"
|
|
(
|
|
set -e
|
|
|
|
reponame="upload-batch-retry-later"
|
|
setup_remote_repo "$reponame"
|
|
clone_repo "$reponame" batch-repo-upload
|
|
|
|
contents="content"
|
|
oid="$(calc_oid "$contents")"
|
|
printf "%s" "$contents" > a.dat
|
|
|
|
git lfs track "*.dat"
|
|
git add .gitattributes a.dat
|
|
git commit -m "initial commit"
|
|
|
|
GIT_TRACE=1 git push origin main 2>&1 | tee push.log
|
|
if [ "0" -ne "${PIPESTATUS[0]}" ]; then
|
|
echo >&2 "fatal: expected \`git push origin main\` to succeed ..."
|
|
exit 1
|
|
fi
|
|
|
|
assert_server_object "$reponame" "$oid"
|
|
)
|
|
end_test
|
|
|
|
begin_test "batch upload with multiple files causes retries"
|
|
(
|
|
set -e
|
|
|
|
reponame="upload-multiple-batch-retry-later"
|
|
setup_remote_repo "$reponame"
|
|
clone_repo "$reponame" batch-repo-upload-multiple
|
|
|
|
contents1="content 1"
|
|
oid1="$(calc_oid "$contents1")"
|
|
printf "%s" "$contents1" > a.dat
|
|
|
|
contents2="content 2"
|
|
oid2="$(calc_oid "$contents2")"
|
|
printf "%s" "$contents2" > b.dat
|
|
|
|
git lfs track "*.dat"
|
|
git add .gitattributes a.dat b.dat
|
|
git commit -m "initial commit"
|
|
|
|
GIT_TRACE=1 git push origin main 2>&1 | tee push.log
|
|
if [ "0" -ne "${PIPESTATUS[0]}" ]; then
|
|
echo >&2 "fatal: expected \`git push origin main\` to succeed ..."
|
|
exit 1
|
|
fi
|
|
|
|
assert_server_object "$reponame" "$oid1"
|
|
assert_server_object "$reponame" "$oid2"
|
|
)
|
|
end_test
|
|
|
|
begin_test "batch clone causes retries"
|
|
(
|
|
set -e
|
|
|
|
reponame="clone-batch-retry-later"
|
|
setup_remote_repo "$reponame"
|
|
clone_repo "$reponame" batch-repo-clone
|
|
|
|
contents="content"
|
|
oid="$(calc_oid "$contents")"
|
|
printf "%s" "$contents" > a.dat
|
|
|
|
git lfs track "*.dat"
|
|
git add .gitattributes a.dat
|
|
git commit -m "initial commit"
|
|
|
|
git push origin main
|
|
assert_server_object "$reponame" "$oid"
|
|
|
|
pushd ..
|
|
git lfs clone "$GITSERVER/$reponame" "$reponame-assert"
|
|
if [ "0" -ne "$?" ]; then
|
|
echo >&2 "fatal: expected \`git lfs clone \"$GITSERVER/$reponame\" \"$reponame-assert\"\` to su``"
|
|
exit 1
|
|
fi
|
|
|
|
cd "$reponame-assert"
|
|
|
|
assert_local_object "$oid" "${#contents}"
|
|
popd
|
|
)
|
|
end_test
|
|
|
|
begin_test "batch clone with multiple files causes retries"
|
|
(
|
|
set -e
|
|
|
|
reponame="clone-multiple-batch-retry-later"
|
|
setup_remote_repo "$reponame"
|
|
clone_repo "$reponame" batch-repo-clone-multiple
|
|
|
|
contents1="content 1"
|
|
oid1="$(calc_oid "$contents1")"
|
|
printf "%s" "$contents1" > a.dat
|
|
|
|
contents2="content 2"
|
|
oid2="$(calc_oid "$contents2")"
|
|
printf "%s" "$contents2" > b.dat
|
|
|
|
git lfs track "*.dat"
|
|
git add .gitattributes a.dat b.dat
|
|
git commit -m "initial commit"
|
|
|
|
git push origin main
|
|
assert_server_object "$reponame" "$oid1"
|
|
assert_server_object "$reponame" "$oid2"
|
|
|
|
pushd ..
|
|
git lfs clone "$GITSERVER/$reponame" "$reponame-assert"
|
|
if [ "0" -ne "$?" ]; then
|
|
echo >&2 "fatal: expected \`git lfs clone \"$GITSERVER/$reponame\" \"$reponame-assert\"\` to su``"
|
|
exit 1
|
|
fi
|
|
|
|
cd "$reponame-assert"
|
|
|
|
assert_local_object "$oid1" "${#contents1}"
|
|
assert_local_object "$oid2" "${#contents2}"
|
|
popd
|
|
)
|
|
end_test
|