9e006ac4e2
Currently, our default branch in tests is "master". This is the Git default, but the Git default will likely change in the future, so it makes sense to update our testsuite to be explicit about the branch name. We'll ensure this continues by building against older versions of Git as well as newer versions. We use "main" for the new branch name, since that's the proposed value upstream. This commit was made entirely by automated means using the following command: git grep -l master t | xargs sed -i -e 's/master/main/g'
123 lines
2.2 KiB
Bash
Executable File
123 lines
2.2 KiB
Bash
Executable File
#!/usr/bin/env bash
|
|
|
|
. "$(dirname "$0")/testlib.sh"
|
|
|
|
# push_fail_test preforms a test expecting a `git lfs push` to fail given the
|
|
# contents of a particular file contained within that push. The Git server used
|
|
# during tests has certain special cases that are triggered by finding specific
|
|
# keywords within a file (as given by the first argument).
|
|
#
|
|
# An optional second argument can be included, "msg", that assert that the
|
|
# contents "msg" was included in the output of a `git lfs push`.
|
|
push_fail_test() {
|
|
local contents="$1"
|
|
local msg="$2"
|
|
|
|
set -e
|
|
|
|
local reponame="$(basename "$0" ".sh")-$contents"
|
|
setup_remote_repo "$reponame"
|
|
clone_repo "$reponame" "$reponame"
|
|
|
|
git lfs track "*.dat"
|
|
printf "hi" > good.dat
|
|
printf "%s" "$contents" > bad.dat
|
|
git add .gitattributes good.dat bad.dat
|
|
git commit -m "welp"
|
|
|
|
set +e
|
|
git push origin main 2>&1 | tee push.log
|
|
res="${PIPESTATUS[0]}"
|
|
set -e
|
|
|
|
if [ ! -z "$msg" ]; then
|
|
grep "$msg" push.log
|
|
fi
|
|
|
|
refute_server_object "$reponame" "$(calc_oid "$contents")"
|
|
if [ "$res" = "0" ]; then
|
|
echo "push successful?"
|
|
exit 1
|
|
fi
|
|
}
|
|
|
|
begin_test "push: upload file with storage 403"
|
|
(
|
|
set -e
|
|
|
|
push_fail_test "status-storage-403"
|
|
)
|
|
end_test
|
|
|
|
begin_test "push: upload file with storage 404"
|
|
(
|
|
set -e
|
|
|
|
push_fail_test "status-storage-404"
|
|
)
|
|
end_test
|
|
|
|
begin_test "push: upload file with storage 410"
|
|
(
|
|
set -e
|
|
|
|
push_fail_test "status-storage-410"
|
|
)
|
|
end_test
|
|
|
|
begin_test "push: upload file with storage 500"
|
|
(
|
|
set -e
|
|
|
|
push_fail_test "status-storage-500"
|
|
)
|
|
end_test
|
|
|
|
begin_test "push: upload file with storage 503"
|
|
(
|
|
set -e
|
|
|
|
push_fail_test "status-storage-503" "LFS is temporarily unavailable"
|
|
)
|
|
end_test
|
|
|
|
begin_test "push: upload file with api 403"
|
|
(
|
|
set -e
|
|
|
|
push_fail_test "status-batch-403"
|
|
)
|
|
end_test
|
|
|
|
begin_test "push: upload file with api 404"
|
|
(
|
|
set -e
|
|
|
|
push_fail_test "status-batch-404"
|
|
)
|
|
end_test
|
|
|
|
begin_test "push: upload file with api 410"
|
|
(
|
|
set -e
|
|
|
|
push_fail_test "status-batch-410"
|
|
)
|
|
end_test
|
|
|
|
begin_test "push: upload file with api 422"
|
|
(
|
|
set -e
|
|
|
|
push_fail_test "status-batch-422"
|
|
)
|
|
end_test
|
|
|
|
begin_test "push: upload file with api 500"
|
|
(
|
|
set -e
|
|
|
|
push_fail_test "status-batch-500"
|
|
)
|
|
end_test
|