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
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
|
test_description='Check content on patch page'
. ./setup.sh
check_cgit_signature() {
tail -2 tmp | head -1 | grep "^cgit"
}
CGIT_VERSION=$(sed -n "s/CGIT_VERSION = //p" \
"$TEST_OUTPUT_DIRECTORY/../build/VERSION")
test_expect_success 'generate foo/patch' '
cgit_query "url=foo/patch" >tmp
'
test_expect_success 'find `From:` line' '
grep "^From: " tmp
'
test_expect_success 'find `Date:` line' '
grep "^Date: " tmp
'
test_expect_success 'find `Subject:` line' '
grep "^Subject: commit 5" tmp
'
test_expect_success 'find `cgit` signature' '
check_cgit_signature
'
test_expect_success 'compare with output of git-format-patch(1)' '
git --git-dir="$PWD/repos/foo/.git" format-patch --subject-prefix="" \
--signature="cgit $CGIT_VERSION" --stdout HEAD^ >tmp2 &&
strip_headers <tmp >tmp_ &&
test_cmp tmp_ tmp2
'
test_expect_success 'find initial commit' '
root=$(git --git-dir="$PWD/repos/foo/.git" \
rev-list --max-parents=0 HEAD)
'
test_expect_success 'generate patch for initial commit' '
cgit_query "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 --git-dir="$PWD/repos/foo/.git" rev-parse HEAD) &&
id2=$(git --git-dir="$PWD/repos/foo/.git" rev-parse HEAD~3) &&
cgit_query "url=foo/patch&id=$id&id2=$id2" >tmp
'
test_expect_success 'find `cgit` signature on the range' '
check_cgit_signature
'
test_expect_success 'compare the range with git-format-patch(1)' '
git --git-dir="$PWD/repos/foo/.git" format-patch --subject-prefix="" \
-N --signature="cgit $CGIT_VERSION" --stdout \
HEAD~3..HEAD >tmp2 &&
strip_headers <tmp >tmp_ &&
test_cmp tmp_ tmp2
'
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 &&
id=$(git --git-dir="$PWD/repos/foo/.git" rev-parse HEAD) &&
root=$(git --git-dir="$PWD/repos/foo/.git" \
rev-list --max-parents=0 HEAD) &&
CGIT_CONFIG="$PWD/patchcountrc" \
QUERY_STRING="url=foo/patch&id=$id&id2=$root" cgit >tmp &&
test $(grep -c "^From " tmp) -eq 2
'
test_done
|