git-lfs/test/test-batch-transfer-unsupported.sh
Steve Streeting d4f63584c3 Test disabled batch support more locally not globally on the server
The test for lack of batch support turned it off globally on the test
server then turned it back on, but since the server is shared between
parallel tests, this introduces a race condition which can break other
batch tests randomly. Instead, use a specific repo name to flag it.
2015-09-02 15:45:33 +01:00

62 lines
1.6 KiB
Bash
Executable File

#!/usr/bin/env bash
. "test/testlib.sh"
begin_test "batch transfer unsupported on server"
(
set -e
# This initializes a new bare git repository in test/remote.
# These remote repositories are global to every test, so keep the names
# unique.
reponame="batchunsupported"
setup_remote_repo "$reponame"
# Clone the repository again to $TRASHDIR/repo. This will be used to commit
# and push objects.
clone_repo "$reponame" repo
# This executes Git LFS from the local repo that was just cloned.
git lfs track "*.dat" 2>&1 | tee track.log
grep "Tracking \*.dat" track.log
contents="a"
contents_oid=$(printf "$contents" | shasum -a 256 | cut -f 1 -d " ")
printf "$contents" > a.dat
git add a.dat
git add .gitattributes
git commit -m "add a.dat" 2>&1 | tee commit.log
grep "master (root-commit)" commit.log
grep "2 files changed" commit.log
grep "create mode 100644 a.dat" commit.log
grep "create mode 100644 .gitattributes" commit.log
[ "a" = "$(cat a.dat)" ]
# This is a small shell function that runs several git commands together.
assert_pointer "master" "a.dat" "$contents_oid" 1
refute_server_object "$reponame" "$contents_oid"
# Ensure batch transfer is turned on for this repo
git config --add --local lfs.batch true
# This pushes to the remote repository set up at the top of the test.
git push origin master 2>&1 | tee push.log
grep "(1 of 1 files)" push.log
grep "master -> master" push.log
assert_server_object "$reponame" "$contents_oid"
# Assert that configuration was disabled
set +e
git config --file .gitconfig lfs.batch
if [ $? -eq 0 ]
then
exit 1
fi
set -e
)
end_test