]>
Commit | Line | Data |
---|---|---|
00ebc977 JK |
1 | #!/bin/sh |
2 | ||
3 | test_description='test subject preservation with format-patch | am' | |
4 | . ./test-lib.sh | |
5 | ||
6 | make_patches() { | |
7 | type=$1 | |
8 | subject=$2 | |
9 | test_expect_success "create patches with $type subject" ' | |
10 | git reset --hard baseline && | |
11 | echo $type >file && | |
12 | git commit -a -m "$subject" && | |
13 | git format-patch -1 --stdout >$type.patch && | |
14 | git format-patch -1 --stdout -k >$type-k.patch | |
15 | ' | |
16 | } | |
17 | ||
18 | check_subject() { | |
19 | git reset --hard baseline && | |
20 | git am $2 $1.patch && | |
21 | git log -1 --pretty=format:%B >actual && | |
22 | test_cmp expect actual | |
23 | } | |
24 | ||
25 | test_expect_success 'setup baseline commit' ' | |
26 | test_commit baseline file | |
27 | ' | |
28 | ||
29 | SHORT_SUBJECT='short subject' | |
30 | make_patches short "$SHORT_SUBJECT" | |
31 | ||
32 | LONG_SUBJECT1='this is a long subject that is virtually guaranteed' | |
33 | LONG_SUBJECT2='to require wrapping via format-patch if it is all' | |
34 | LONG_SUBJECT3='going to appear on a single line' | |
35 | LONG_SUBJECT="$LONG_SUBJECT1 $LONG_SUBJECT2 $LONG_SUBJECT3" | |
36 | make_patches long "$LONG_SUBJECT" | |
37 | ||
38 | MULTILINE_SUBJECT="$LONG_SUBJECT1 | |
39 | $LONG_SUBJECT2 | |
40 | $LONG_SUBJECT3" | |
41 | make_patches multiline "$MULTILINE_SUBJECT" | |
42 | ||
43 | echo "$SHORT_SUBJECT" >expect | |
44 | test_expect_success 'short subject preserved (format-patch | am)' ' | |
45 | check_subject short | |
46 | ' | |
47 | test_expect_success 'short subject preserved (format-patch -k | am)' ' | |
48 | check_subject short-k | |
49 | ' | |
50 | test_expect_success 'short subject preserved (format-patch -k | am -k)' ' | |
51 | check_subject short-k -k | |
52 | ' | |
53 | ||
54 | echo "$LONG_SUBJECT" >expect | |
55 | test_expect_success 'long subject preserved (format-patch | am)' ' | |
56 | check_subject long | |
57 | ' | |
58 | test_expect_success 'long subject preserved (format-patch -k | am)' ' | |
59 | check_subject long-k | |
60 | ' | |
5b38456e | 61 | test_expect_success 'long subject preserved (format-patch -k | am -k)' ' |
00ebc977 JK |
62 | check_subject long-k -k |
63 | ' | |
64 | ||
65 | echo "$LONG_SUBJECT" >expect | |
66 | test_expect_success 'multiline subject unwrapped (format-patch | am)' ' | |
67 | check_subject multiline | |
68 | ' | |
69 | test_expect_success 'multiline subject unwrapped (format-patch -k | am)' ' | |
70 | check_subject multiline-k | |
71 | ' | |
72 | echo "$MULTILINE_SUBJECT" >expect | |
9553d2b2 | 73 | test_expect_success 'multiline subject preserved (format-patch -k | am -k)' ' |
00ebc977 JK |
74 | check_subject multiline-k -k |
75 | ' | |
76 | ||
77 | test_done |