This causes cgit to serve error pages, which is undesirable. This reverts commit5229c9b232, reversing changes made tof2b211131f.
92 lines
1.8 KiB
Bash
Executable file
92 lines
1.8 KiB
Bash
Executable file
#!/bin/sh
|
|
|
|
test_description='Test that adding/removing many notes triggers automatic fanout restructuring'
|
|
|
|
. ./test-lib.sh
|
|
|
|
test_expect_success 'creating many notes with git-notes' '
|
|
num_notes=300 &&
|
|
i=0 &&
|
|
while test $i -lt $num_notes
|
|
do
|
|
i=$(($i + 1)) &&
|
|
test_tick &&
|
|
echo "file for commit #$i" > file &&
|
|
git add file &&
|
|
git commit -q -m "commit #$i" &&
|
|
git notes add -m "note #$i" || return 1
|
|
done
|
|
'
|
|
|
|
test_expect_success 'many notes created correctly with git-notes' '
|
|
git log | grep "^ " > output &&
|
|
i=300 &&
|
|
while test $i -gt 0
|
|
do
|
|
echo " commit #$i" &&
|
|
echo " note #$i" &&
|
|
i=$(($i - 1));
|
|
done > expect &&
|
|
test_cmp expect output
|
|
'
|
|
|
|
test_expect_success 'many notes created with git-notes triggers fanout' '
|
|
# Expect entire notes tree to have a fanout == 1
|
|
git ls-tree -r --name-only refs/notes/commits |
|
|
while read path
|
|
do
|
|
case "$path" in
|
|
??/??????????????????????????????????????)
|
|
: true
|
|
;;
|
|
*)
|
|
echo "Invalid path \"$path\"" &&
|
|
return 1
|
|
;;
|
|
esac
|
|
done
|
|
'
|
|
|
|
test_expect_success 'deleting most notes with git-notes' '
|
|
num_notes=250 &&
|
|
i=0 &&
|
|
git rev-list HEAD |
|
|
while test $i -lt $num_notes && read sha1
|
|
do
|
|
i=$(($i + 1)) &&
|
|
test_tick &&
|
|
git notes remove "$sha1" ||
|
|
exit 1
|
|
done
|
|
'
|
|
|
|
test_expect_success 'most notes deleted correctly with git-notes' '
|
|
git log HEAD~250 | grep "^ " > output &&
|
|
i=50 &&
|
|
while test $i -gt 0
|
|
do
|
|
echo " commit #$i" &&
|
|
echo " note #$i" &&
|
|
i=$(($i - 1));
|
|
done > expect &&
|
|
test_cmp expect output
|
|
'
|
|
|
|
test_expect_success 'deleting most notes triggers fanout consolidation' '
|
|
# Expect entire notes tree to have a fanout == 0
|
|
git ls-tree -r --name-only refs/notes/commits |
|
|
while read path
|
|
do
|
|
case "$path" in
|
|
????????????????????????????????????????)
|
|
: true
|
|
;;
|
|
*)
|
|
echo "Invalid path \"$path\"" &&
|
|
return 1
|
|
;;
|
|
esac
|
|
done
|
|
'
|
|
|
|
test_done
|