@@ -8,78 +8,71 @@ This test runs git rebase --signoff and make sure that it works.
88TEST_PASSES_SANITIZE_LEAK=true
99. ./test-lib.sh
1010
11- # A simple file to commit
12- cat > file << EOF
13- a
14- EOF
11+ test_expect_success ' setup' '
12+ git commit --allow-empty -m "Initial empty commit" &&
13+ test_commit first file a &&
14+
15+ ident="$GIT_COMMITTER_NAME <$GIT_COMMITTER_EMAIL>" &&
1516
16- # Expected commit message for initial commit after rebase --signoff
17- cat > expected-initial-signed << EOF
18- Initial empty commit
17+ # Expected commit message for initial commit after rebase --signoff
18+ cat >expected-initial-signed <<- EOF &&
19+ Initial empty commit
1920
20- Signed-off-by: $( git var GIT_COMMITTER_IDENT | sed -e " s/>.*/>/ " )
21- EOF
21+ Signed-off-by: $ident
22+ EOF
2223
23- # Expected commit message after rebase --signoff
24- cat > expected-signed << EOF
25- first
24+ # Expected commit message after rebase --signoff
25+ cat >expected-signed <<- EOF &&
26+ first
2627
27- Signed-off-by: $( git var GIT_COMMITTER_IDENT | sed -e " s/>.*/>/ " )
28- EOF
28+ Signed-off-by: $ident
29+ EOF
2930
30- # Expected commit message after rebase without --signoff (or with --no-signoff)
31- cat > expected-unsigned << EOF
32- first
33- EOF
31+ # Expected commit message after rebase without --signoff (or with --no-signoff)
32+ cat >expected-unsigned <<- EOF &&
33+ first
34+ EOF
3435
36+ git config alias.rbs "rebase --signoff"
37+ '
3538
3639# We configure an alias to do the rebase --signoff so that
3740# on the next subtest we can show that --no-signoff overrides the alias
38- test_expect_success ' rebase --signoff adds a sign-off line' '
39- git commit --allow-empty -m "Initial empty commit" &&
40- git add file && git commit -m first &&
41- git config alias.rbs "rebase --signoff" &&
42- git rbs HEAD^ &&
43- git cat-file commit HEAD | sed -e "1,/^\$/d" > actual &&
44- test_cmp expected-signed actual
41+ test_expect_success ' rebase --apply --signoff adds a sign-off line' '
42+ git rbs --apply HEAD^ &&
43+ test_commit_message HEAD expected-signed
4544'
4645
4746test_expect_success ' rebase --no-signoff does not add a sign-off line' '
4847 git commit --amend -m "first" &&
4948 git rbs --no-signoff HEAD^ &&
50- git cat-file commit HEAD | sed -e "1,/^\$/d" > actual &&
51- test_cmp expected-unsigned actual
49+ test_commit_message HEAD expected-unsigned
5250'
5351
5452test_expect_success ' rebase --exec --signoff adds a sign-off line' '
5553 test_when_finished "rm exec" &&
5654 git commit --amend -m "first" &&
5755 git rebase --exec "touch exec" --signoff HEAD^ &&
5856 test_path_is_file exec &&
59- git cat-file commit HEAD | sed -e "1,/^\$/d" >actual &&
60- test_cmp expected-signed actual
57+ test_commit_message HEAD expected-signed
6158'
6259
6360test_expect_success ' rebase --root --signoff adds a sign-off line' '
6461 git commit --amend -m "first" &&
6562 git rebase --root --keep-empty --signoff &&
66- git cat-file commit HEAD^ | sed -e "1,/^\$/d" >actual &&
67- test_cmp expected-initial-signed actual &&
68- git cat-file commit HEAD | sed -e "1,/^\$/d" >actual &&
69- test_cmp expected-signed actual
63+ test_commit_message HEAD^ expected-initial-signed &&
64+ test_commit_message HEAD expected-signed
7065'
7166
7267test_expect_success ' rebase -i --signoff fails' '
7368 git commit --amend -m "first" &&
7469 git rebase -i --signoff HEAD^ &&
75- git cat-file commit HEAD | sed -e "1,/^\$/d" >actual &&
76- test_cmp expected-signed actual
70+ test_commit_message HEAD expected-signed
7771'
7872
7973test_expect_success ' rebase -m --signoff fails' '
8074 git commit --amend -m "first" &&
8175 git rebase -m --signoff HEAD^ &&
82- git cat-file commit HEAD | sed -e "1,/^\$/d" >actual &&
83- test_cmp expected-signed actual
76+ test_commit_message HEAD expected-signed
8477'
8578test_done
0 commit comments