3 # Copyright (c) 2006 Brian C Gernhardt
6 test_description
='Format-patch numbering options'
10 test_expect_success setup
'
14 git commit -m First &&
17 git commit -a -m Second &&
20 git commit -a -m Third
24 # Each of these gets used multiple times.
26 test_num_no_numbered
() {
27 cnt
=$
(grep "^Subject: \[PATCH\]" $1 |
wc -l) &&
31 test_single_no_numbered
() {
32 test_num_no_numbered
$1 1
36 test_num_no_numbered
$1 2
39 test_single_cover_letter_numbered
() {
40 grep "^Subject: \[PATCH 0/1\]" $1 &&
41 grep "^Subject: \[PATCH 1/1\]" $1
44 test_single_numbered
() {
45 grep "^Subject: \[PATCH 1/1\]" $1
49 grep "^Subject: \[PATCH 1/2\]" $1 &&
50 grep "^Subject: \[PATCH 2/2\]" $1
53 test_expect_success
'single patch defaults to no numbers' '
54 git format-patch --stdout HEAD~1 >patch0.single &&
55 test_single_no_numbered patch0.single
58 test_expect_success
'multiple patch defaults to numbered' '
60 git format-patch --stdout HEAD~2 >patch0.multiple &&
61 test_numbered patch0.multiple
65 test_expect_success
'Use --numbered' '
67 git format-patch --numbered --stdout HEAD~1 >patch1 &&
68 test_single_numbered patch1
72 test_expect_success
'format.numbered = true' '
74 git config format.numbered true &&
75 git format-patch --stdout HEAD~2 >patch2 &&
80 test_expect_success
'format.numbered && single patch' '
82 git format-patch --stdout HEAD^ > patch3 &&
83 test_single_numbered patch3
87 test_expect_success
'format.numbered && --no-numbered' '
89 git format-patch --no-numbered --stdout HEAD~2 >patch4 &&
90 test_no_numbered patch4
94 test_expect_success
'format.numbered && --keep-subject' '
96 git format-patch --keep-subject --stdout HEAD^ >patch4a &&
97 grep "^Subject: Third" patch4a
101 test_expect_success
'format.numbered = auto' '
103 git config format.numbered auto &&
104 git format-patch --stdout HEAD~2 > patch5 &&
109 test_expect_success
'format.numbered = auto && single patch' '
111 git format-patch --stdout HEAD^ > patch6 &&
112 test_single_no_numbered patch6
116 test_expect_success
'format.numbered = auto && --no-numbered' '
118 git format-patch --no-numbered --stdout HEAD~2 > patch7 &&
119 test_no_numbered patch7
123 test_expect_success
'--start-number && --numbered' '
125 git format-patch --start-number 3 --numbered --stdout HEAD~1 > patch8 &&
126 grep "^Subject: \[PATCH 3/3\]" patch8
129 test_expect_success
'single patch with cover-letter defaults to numbers' '
130 git format-patch --cover-letter --stdout HEAD~1 >patch9.single &&
131 test_single_cover_letter_numbered patch9.single
134 test_expect_success
'Use --no-numbered and --cover-letter single patch' '
135 git format-patch --no-numbered --stdout --cover-letter HEAD~1 >patch10 &&
136 test_no_numbered patch10