]>
Commit | Line | Data |
---|---|---|
12ace0b2 KH |
1 | #!/bin/sh |
2 | # | |
3 | # Copyright (c) 2007 Kristian Høgsberg <krh@redhat.com> | |
4 | # | |
5 | ||
6 | # FIXME: Test the various index usages, -i and -o, test reflog, | |
7 | # signoff, hooks | |
8 | ||
9 | test_description='git-commit' | |
10 | . ./test-lib.sh | |
11 | ||
12 | test_tick | |
13 | ||
14 | test_expect_success \ | |
15 | "initial status" \ | |
16 | "echo 'bongo bongo' >file && | |
17 | git-add file && \ | |
18 | git-status | grep 'Initial commit'" | |
19 | ||
20 | test_expect_failure \ | |
21 | "fail initial amend" \ | |
22 | "git-commit --amend" | |
23 | ||
24 | test_expect_success \ | |
25 | "initial commit" \ | |
26 | "git-commit -m initial" | |
27 | ||
28 | test_expect_failure \ | |
29 | "invalid options 1" \ | |
30 | "git-commit --amend -F file" | |
31 | ||
32 | test_expect_failure \ | |
33 | "invalid options 2" \ | |
34 | "git-commit -C HEAD -m illegal" | |
35 | ||
36 | test_expect_failure \ | |
37 | "using invalid commit with -C" \ | |
38 | "git-commit -C bogus" | |
39 | ||
40 | test_expect_failure \ | |
41 | "testing nothing to commit" \ | |
42 | "git-commit -m initial" | |
43 | ||
44 | test_expect_success \ | |
45 | "next commit" \ | |
46 | "echo 'bongo bongo bongo' >file \ | |
47 | git-commit -m next -a" | |
48 | ||
49 | test_expect_failure \ | |
50 | "commit message from non-existing file" \ | |
51 | "echo 'more bongo: bongo bongo bongo bongo' >file && \ | |
52 | git-commit -F gah -a" | |
53 | ||
54 | # Empty except stray tabs and spaces on a few lines. | |
55 | sed -e 's/@$//' >msg <<EOF | |
56 | @ | |
57 | ||
58 | @ | |
59 | Signed-off-by: hula | |
60 | EOF | |
61 | test_expect_failure \ | |
62 | "empty commit message" \ | |
63 | "git-commit -F msg -a" | |
64 | ||
65 | test_expect_success \ | |
66 | "commit message from file" \ | |
67 | "echo 'this is the commit message, coming from a file' >msg && \ | |
68 | git-commit -F msg -a" | |
69 | ||
70 | cat >editor <<\EOF | |
71 | #!/bin/sh | |
72 | sed -i -e "s/a file/an amend commit/g" $1 | |
73 | EOF | |
74 | chmod 755 editor | |
75 | ||
76 | test_expect_success \ | |
77 | "amend commit" \ | |
78 | "VISUAL=./editor git-commit --amend" | |
79 | ||
80 | test_expect_failure \ | |
81 | "passing --amend and -F" \ | |
82 | "echo 'enough with the bongos' >file && \ | |
83 | git-commit -F msg --amend ." | |
84 | ||
85 | test_expect_success \ | |
86 | "using message from other commit" \ | |
87 | "git-commit -C HEAD^ ." | |
88 | ||
89 | cat >editor <<\EOF | |
90 | #!/bin/sh | |
91 | sed -i -e "s/amend/older/g" $1 | |
92 | EOF | |
93 | chmod 755 editor | |
94 | ||
95 | test_expect_success \ | |
96 | "editing message from other commit" \ | |
97 | "echo 'hula hula' >file && \ | |
98 | VISUAL=./editor git-commit -c HEAD^ -a" | |
99 | ||
100 | test_expect_success \ | |
101 | "message from stdin" \ | |
102 | "echo 'silly new contents' >file && \ | |
103 | echo commit message from stdin | git-commit -F - -a" | |
104 | ||
105 | test_expect_success \ | |
106 | "overriding author from command line" \ | |
107 | "echo 'gak' >file && \ | |
108 | git-commit -m 'author' --author 'Rubber Duck <rduck@convoy.org>' -a" | |
109 | ||
110 | test_expect_success \ | |
111 | "interactive add" \ | |
112 | "echo 7 | git-commit --interactive | grep 'What now'" | |
113 | ||
114 | test_expect_success \ | |
115 | "showing committed revisions" \ | |
116 | "git-rev-list HEAD >current" | |
117 | ||
118 | # We could just check the head sha1, but checking each commit makes it | |
119 | # easier to isolate bugs. | |
120 | ||
121 | cat >expected <<\EOF | |
122 | 72c0dc9855b0c9dadcbfd5a31cab072e0cb774ca | |
123 | 9b88fc14ce6b32e3d9ee021531a54f18a5cf38a2 | |
124 | 3536bbb352c3a1ef9a420f5b4242d48578b92aa7 | |
125 | d381ac431806e53f3dd7ac2f1ae0534f36d738b9 | |
126 | 4fd44095ad6334f3ef72e4c5ec8ddf108174b54a | |
127 | 402702b49136e7587daa9280e91e4bb7cb2179f7 | |
128 | EOF | |
129 | ||
130 | test_expect_success \ | |
131 | 'validate git-rev-list output.' \ | |
132 | 'diff current expected' | |
133 | ||
134 | test_done |