41 lines
698 B
Bash
41 lines
698 B
Bash
|
#!/bin/sh
|
||
|
|
||
|
test_description='Test fsck skipList performance'
|
||
|
|
||
|
. ./perf-lib.sh
|
||
|
|
||
|
test_perf_fresh_repo
|
||
|
|
||
|
n=1000000
|
||
|
|
||
|
test_expect_success "setup $n bad commits" '
|
||
|
for i in $(test_seq 1 $n)
|
||
|
do
|
||
|
echo "commit refs/heads/master" &&
|
||
|
echo "committer C <c@example.com> 1234567890 +0000" &&
|
||
|
echo "data <<EOF" &&
|
||
|
echo "$i.Q." &&
|
||
|
echo "EOF"
|
||
|
done | q_to_nul | git fast-import
|
||
|
'
|
||
|
|
||
|
skip=0
|
||
|
while test $skip -le $n
|
||
|
do
|
||
|
test_expect_success "create skipList for $skip bad commits" '
|
||
|
git log --format=%H --max-count=$skip |
|
||
|
sort >skiplist
|
||
|
'
|
||
|
|
||
|
test_perf "fsck with $skip skipped bad commits" '
|
||
|
git -c fsck.skipList=skiplist fsck
|
||
|
'
|
||
|
|
||
|
case $skip in
|
||
|
0) skip=1 ;;
|
||
|
*) skip=${skip}0 ;;
|
||
|
esac
|
||
|
done
|
||
|
|
||
|
test_done
|