blob: 1219aa226dc7259172dba38da3f7354870e0929b [file] [log] [blame]
Brian Gernhardte90ecb62007-11-04 01:50:23 -04001#!/bin/sh
2#
3# Copyright (c) 2006 Brian C Gernhardt
4#
5
6test_description='Format-patch numbering options'
7
Ævar Arnfjörð Bjarmasonab1f6922022-04-13 22:01:51 +02008TEST_PASSES_SANITIZE_LEAK=true
Brian Gernhardte90ecb62007-11-04 01:50:23 -04009. ./test-lib.sh
10
11test_expect_success setup '
12
13 echo A > file &&
14 git add file &&
15 git commit -m First &&
16
17 echo B >> file &&
18 git commit -a -m Second &&
19
20 echo C >> file &&
21 git commit -a -m Third
22
23'
24
25# Each of these gets used multiple times.
26
27test_num_no_numbered() {
28 cnt=$(grep "^Subject: \[PATCH\]" $1 | wc -l) &&
29 test $cnt = $2
30}
31
32test_single_no_numbered() {
33 test_num_no_numbered $1 1
34}
35
36test_no_numbered() {
37 test_num_no_numbered $1 2
38}
39
Jacob Keller957ed3a2016-08-23 15:45:50 -070040test_single_cover_letter_numbered() {
41 grep "^Subject: \[PATCH 0/1\]" $1 &&
42 grep "^Subject: \[PATCH 1/1\]" $1
43}
44
Brian Gernhardte90ecb62007-11-04 01:50:23 -040045test_single_numbered() {
46 grep "^Subject: \[PATCH 1/1\]" $1
47}
48
49test_numbered() {
50 grep "^Subject: \[PATCH 1/2\]" $1 &&
51 grep "^Subject: \[PATCH 2/2\]" $1
52}
53
Brian Gernhardta567fdc2008-10-02 16:55:39 -040054test_expect_success 'single patch defaults to no numbers' '
55 git format-patch --stdout HEAD~1 >patch0.single &&
56 test_single_no_numbered patch0.single
57'
Brian Gernhardte90ecb62007-11-04 01:50:23 -040058
Brian Gernhardta567fdc2008-10-02 16:55:39 -040059test_expect_success 'multiple patch defaults to numbered' '
60
61 git format-patch --stdout HEAD~2 >patch0.multiple &&
62 test_numbered patch0.multiple
Brian Gernhardte90ecb62007-11-04 01:50:23 -040063
64'
65
66test_expect_success 'Use --numbered' '
67
Brian Gernhardta567fdc2008-10-02 16:55:39 -040068 git format-patch --numbered --stdout HEAD~1 >patch1 &&
69 test_single_numbered patch1
Brian Gernhardte90ecb62007-11-04 01:50:23 -040070
71'
72
73test_expect_success 'format.numbered = true' '
74
75 git config format.numbered true &&
76 git format-patch --stdout HEAD~2 >patch2 &&
77 test_numbered patch2
78
79'
80
81test_expect_success 'format.numbered && single patch' '
82
83 git format-patch --stdout HEAD^ > patch3 &&
84 test_single_numbered patch3
85
86'
87
88test_expect_success 'format.numbered && --no-numbered' '
89
90 git format-patch --no-numbered --stdout HEAD~2 >patch4 &&
91 test_no_numbered patch4
92
93'
94
Jim Meyeringca6b91d2009-05-09 10:12:01 +020095test_expect_success 'format.numbered && --keep-subject' '
96
97 git format-patch --keep-subject --stdout HEAD^ >patch4a &&
98 grep "^Subject: Third" patch4a
99
100'
101
Brian Gernhardte90ecb62007-11-04 01:50:23 -0400102test_expect_success 'format.numbered = auto' '
103
Jonathan Niedera48fcd82010-10-30 20:46:54 -0500104 git config format.numbered auto &&
Brian Gernhardte90ecb62007-11-04 01:50:23 -0400105 git format-patch --stdout HEAD~2 > patch5 &&
106 test_numbered patch5
107
108'
109
110test_expect_success 'format.numbered = auto && single patch' '
111
112 git format-patch --stdout HEAD^ > patch6 &&
113 test_single_no_numbered patch6
114
115'
116
117test_expect_success 'format.numbered = auto && --no-numbered' '
118
119 git format-patch --no-numbered --stdout HEAD~2 > patch7 &&
120 test_no_numbered patch7
121
122'
123
Stephen Boydf044fe22009-05-16 02:24:45 -0700124test_expect_success '--start-number && --numbered' '
125
126 git format-patch --start-number 3 --numbered --stdout HEAD~1 > patch8 &&
127 grep "^Subject: \[PATCH 3/3\]" patch8
128'
129
Jacob Keller957ed3a2016-08-23 15:45:50 -0700130test_expect_success 'single patch with cover-letter defaults to numbers' '
131 git format-patch --cover-letter --stdout HEAD~1 >patch9.single &&
132 test_single_cover_letter_numbered patch9.single
133'
134
135test_expect_success 'Use --no-numbered and --cover-letter single patch' '
136 git format-patch --no-numbered --stdout --cover-letter HEAD~1 >patch10 &&
137 test_no_numbered patch10
138'
139
140
141
Brian Gernhardte90ecb62007-11-04 01:50:23 -0400142test_done