1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
|
test_description='Check content on patch page'
. ./setup.sh
CGIT_VERSION=$(sed -n "s/CGIT_VERSION = v\{0,1\}//p" "$TEST_OUTPUT_DIRECTORY/../build/VERSION")
check_cgit_signature() {
tail -2 tmp | head -1 | grep -x -F "cgit${1:+ $1}"
}
test_expect_success 'generate foo/patch' '
cgit_url "foo/patch" >tmp
'
test_expect_success 'compare with output of git-format-patch(1)' '
git -C repos/foo format-patch --subject-prefix="" \
--signature="cgit" --stdout HEAD^ >expect &&
strip_headers <tmp >actual &&
test_cmp expect actual
'
test_expect_success 'find initial commit' '
root=$(git -C repos/foo rev-list --max-parents=0 HEAD)
'
test_expect_success 'generate patch for initial commit' '
cgit_url "foo/patch&id=$root" >tmp
'
test_expect_success 'find `cgit` signature on the initial commit' '
check_cgit_signature
'
test_expect_success 'generate patches for multiple commits' '
id=$(git -C repos/foo rev-parse HEAD) &&
id2=$(git -C repos/foo rev-parse HEAD~3) &&
cgit_url "foo/patch&id=$id&id2=$id2" >tmp
'
test_expect_success 'compare the range with git-format-patch(1)' '
git -C repos/foo format-patch --subject-prefix="" \
-N --signature="cgit" --stdout HEAD~3..HEAD >expect &&
strip_headers <tmp >actual &&
test_cmp expect actual
'
test_expect_success 'max-patch-count bounds a patch range' '
{
echo "cache-size=0" &&
echo "max-patch-count=2" &&
echo "repo.url=foo" &&
echo "repo.path=$PWD/repos/foo/.git"
} >patchcountrc &&
cgit_rc patchcountrc "url=foo/patch&id=$id&id2=$root" >tmp &&
test $(grep -c "^From " tmp) -eq 2
'
test_expect_success 'the signature names the version when asked to' '
cgitrc_copy versionrc enable-version-info=1 &&
cgit_rc versionrc "url=foo/patch" >tmp &&
check_cgit_signature "$CGIT_VERSION"
'
test_done
|