]>
Commit | Line | Data |
---|---|---|
048cdd46 JH |
1 | #!/bin/sh |
2 | ||
3 | test_description='Test that adding many notes triggers automatic fanout restructuring' | |
4 | ||
5 | . ./test-lib.sh | |
6 | ||
7 | test_expect_success 'creating many notes with git-notes' ' | |
8 | num_notes=300 && | |
9 | i=0 && | |
10 | while test $i -lt $num_notes | |
11 | do | |
12 | i=$(($i + 1)) && | |
13 | test_tick && | |
14 | echo "file for commit #$i" > file && | |
15 | git add file && | |
16 | git commit -q -m "commit #$i" && | |
17 | git notes edit -m "note #$i" || return 1 | |
18 | done | |
19 | ' | |
20 | ||
21 | test_expect_success 'many notes created correctly with git-notes' ' | |
22 | git log | grep "^ " > output && | |
23 | i=300 && | |
24 | while test $i -gt 0 | |
25 | do | |
26 | echo " commit #$i" && | |
27 | echo " note #$i" && | |
28 | i=$(($i - 1)); | |
29 | done > expect && | |
30 | test_cmp expect output | |
31 | ' | |
32 | ||
33 | test_expect_success 'many notes created with git-notes triggers fanout' ' | |
34 | # Expect entire notes tree to have a fanout == 1 | |
35 | git ls-tree -r --name-only refs/notes/commits | | |
36 | while read path | |
37 | do | |
38 | case "$path" in | |
39 | ??/??????????????????????????????????????) | |
40 | : true | |
41 | ;; | |
42 | *) | |
43 | echo "Invalid path \"$path\"" && | |
44 | return 1 | |
45 | ;; | |
46 | esac | |
47 | done | |
48 | ' | |
49 | ||
50 | test_done |