git-lfs/test/test-clone.sh

141 lines
3.5 KiB
Bash
Raw Normal View History

2016-02-09 12:52:38 +00:00
#!/usr/bin/env bash
. "test/testlib.sh"
2016-02-12 14:49:56 +00:00
ensure_git_version_isnt $VERSION_LOWER "2.2.0"
2016-02-09 12:52:38 +00:00
begin_test "clone"
(
set -e
reponame="$(basename "$0" ".sh")"
setup_remote_repo "$reponame"
clone_repo "$reponame" repo
git lfs track "*.dat" 2>&1 | tee track.log
grep "Tracking \*.dat" track.log
# generate some test data & commits with random LFS data
echo "[
{
\"CommitDate\":\"$(get_date -10d)\",
\"Files\":[
{\"Filename\":\"file1.dat\",\"Size\":100},
{\"Filename\":\"file2.dat\",\"Size\":75}]
},
{
\"CommitDate\":\"$(get_date -7d)\",
\"Files\":[
{\"Filename\":\"file1.dat\",\"Size\":110},
{\"Filename\":\"file3.dat\",\"Size\":66},
{\"Filename\":\"file4.dat\",\"Size\":23}]
},
{
\"CommitDate\":\"$(get_date -10d)\",
\"Files\":[
{\"Filename\":\"file5.dat\",\"Size\":120},
{\"Filename\":\"file6.dat\",\"Size\":30}]
}
]" | lfstest-testutils addcommits
git push origin master
# Now clone again, test specific clone dir
cd "$TRASHDIR"
newclonedir="testclone1"
git lfs clone "$GITSERVER/$reponame" "$newclonedir" 2>&1 | tee lfsclone.log
grep "Cloning into" lfsclone.log
grep "Git LFS:" lfsclone.log
# should be no filter errors
[ ! $(grep "filter" lfsclone.log) ]
[ ! $(grep "error" lfsclone.log) ]
# should be cloned into location as per arg
[ -d "$newclonedir" ]
# check a few file sizes to make sure pulled
pushd "$newclonedir"
[ $(wc -c < "file1.dat") -eq 110 ]
[ $(wc -c < "file2.dat") -eq 75 ]
[ $(wc -c < "file3.dat") -eq 66 ]
popd
# Now check clone with implied dir
rm -rf "$reponame"
git lfs clone "$GITSERVER/$reponame" 2>&1 | tee lfsclone.log
grep "Cloning into" lfsclone.log
grep "Git LFS:" lfsclone.log
# should be no filter errors
[ ! $(grep "filter" lfsclone.log) ]
[ ! $(grep "error" lfsclone.log) ]
# clone location should be implied
[ -d "$reponame" ]
pushd "$reponame"
[ $(wc -c < "file1.dat") -eq 110 ]
[ $(wc -c < "file2.dat") -eq 75 ]
[ $(wc -c < "file3.dat") -eq 66 ]
popd
)
end_test
begin_test "cloneSSL"
(
set -e
if $TRAVIS; then
echo "Skipping SSL tests, Travis has weird behaviour in validating custom certs, test locally only"
exit 0
fi
reponame="test-cloneSSL"
setup_remote_repo "$reponame"
clone_repo_ssl "$reponame" "$reponame"
git lfs track "*.dat" 2>&1 | tee track.log
grep "Tracking \*.dat" track.log
# generate some test data & commits with random LFS data
echo "[
{
\"CommitDate\":\"$(get_date -5d)\",
\"Files\":[
{\"Filename\":\"file1.dat\",\"Size\":100},
{\"Filename\":\"file2.dat\",\"Size\":75}]
},
{
\"CommitDate\":\"$(get_date -1d)\",
\"Files\":[
{\"Filename\":\"file3.dat\",\"Size\":30}]
}
]" | lfstest-testutils addcommits
git push origin master
# Now SSL clone again with 'git lfs clone', test specific clone dir
cd "$TRASHDIR"
2016-03-10 11:33:51 +00:00
newclonedir="testcloneSSL1"
git lfs clone "$SSLGITSERVER/$reponame" "$newclonedir" 2>&1 | tee lfsclone.log
grep "Cloning into" lfsclone.log
grep "Git LFS:" lfsclone.log
# should be no filter errors
[ ! $(grep "filter" lfsclone.log) ]
[ ! $(grep "error" lfsclone.log) ]
# should be cloned into location as per arg
[ -d "$newclonedir" ]
# check a few file sizes to make sure pulled
pushd "$newclonedir"
2016-03-10 11:33:51 +00:00
[ $(wc -c < "file1.dat") -eq 100 ]
[ $(wc -c < "file2.dat") -eq 75 ]
[ $(wc -c < "file3.dat") -eq 30 ]
popd
# Now check SSL clone with standard 'git clone' and smudge download
rm -rf "$reponame"
2016-03-10 11:33:51 +00:00
git clone "$SSLGITSERVER/$reponame"
)
end_test