git/t/t5705-clone-2gb.sh
Ævar Arnfjörð Bjarmason 2c7e134cfe t/t5705-clone-2gb: change from skip_all=* to prereq skip
Change this test to skip test with test prerequisites, and to do setup
work in tests. This improves the skipped statistics on platforms where
the test isn't run.

Signed-off-by: Ævar Arnfjörð Bjarmason <avarab@gmail.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
2010-08-18 12:42:45 -07:00

54 lines
1.2 KiB
Bash
Executable File

#!/bin/sh
test_description='Test cloning a repository larger than 2 gigabyte'
. ./test-lib.sh
if test -z "$GIT_TEST_CLONE_2GB"
then
say 'Skipping expensive 2GB clone test; enable it with GIT_TEST_CLONE_2GB=t'
else
test_set_prereq CLONE_2GB
fi
test_expect_success CLONE_2GB 'setup' '
git config pack.compression 0 &&
git config pack.depth 0 &&
blobsize=$((100*1024*1024)) &&
blobcount=$((2*1024*1024*1024/$blobsize+1)) &&
i=1 &&
(while test $i -le $blobcount
do
printf "Generating blob $i/$blobcount\r" >&2 &&
printf "blob\nmark :$i\ndata $blobsize\n" &&
#test-genrandom $i $blobsize &&
printf "%-${blobsize}s" $i &&
echo "M 100644 :$i $i" >> commit
i=$(($i+1)) ||
echo $? > exit-status
done &&
echo "commit refs/heads/master" &&
echo "author A U Thor <author@email.com> 123456789 +0000" &&
echo "committer C O Mitter <committer@email.com> 123456789 +0000" &&
echo "data 5" &&
echo ">2gb" &&
cat commit) |
git fast-import --big-file-threshold=2 &&
test ! -f exit-status
'
test_expect_success CLONE_2GB 'clone - bare' '
git clone --bare --no-hardlinks . clone-bare
'
test_expect_success CLONE_2GB 'clone - with worktree, file:// protocol' '
git clone file://. clone-wt
'
test_done