]>
Commit | Line | Data |
---|---|---|
c241371c ĐTCD |
1 | #!/bin/sh |
2 | # | |
3 | # Copyright (c) 2020 Doan Tran Cong Danh | |
4 | # | |
5 | ||
6 | test_description='test rebase --[no-]gpg-sign' | |
7 | ||
8 | . ./test-lib.sh | |
9 | . "$TEST_DIRECTORY/lib-rebase.sh" | |
10 | . "$TEST_DIRECTORY/lib-gpg.sh" | |
11 | ||
12 | if ! test_have_prereq GPG | |
13 | then | |
14 | skip_all='skip all test rebase --[no-]gpg-sign, gpg not available' | |
15 | test_done | |
16 | fi | |
17 | ||
18 | test_rebase_gpg_sign () { | |
19 | local must_fail= will=will fake_editor= | |
20 | if test "x$1" = "x!" | |
21 | then | |
22 | must_fail=test_must_fail | |
23 | will="won't" | |
24 | shift | |
25 | fi | |
26 | conf=$1 | |
27 | shift | |
28 | test_expect_success "rebase $* with commit.gpgsign=$conf $will sign commit" " | |
29 | git reset two && | |
30 | git config commit.gpgsign $conf && | |
31 | set_fake_editor && | |
32 | FAKE_LINES='r 1 p 2' git rebase --force-rebase --root $* && | |
33 | $must_fail git verify-commit HEAD^ && | |
34 | $must_fail git verify-commit HEAD | |
35 | " | |
36 | } | |
37 | ||
38 | test_expect_success 'setup' ' | |
39 | test_commit one && | |
40 | test_commit two && | |
41 | test_must_fail git verify-commit HEAD && | |
42 | test_must_fail git verify-commit HEAD^ | |
43 | ' | |
44 | ||
45 | test_expect_success 'setup: merge commit' ' | |
46 | test_commit fork-point && | |
47 | git switch -c side && | |
48 | test_commit three && | |
49 | git switch master && | |
50 | git merge --no-ff side && | |
51 | git tag merged | |
52 | ' | |
53 | ||
54 | test_rebase_gpg_sign ! false | |
55 | test_rebase_gpg_sign true | |
56 | test_rebase_gpg_sign ! true --no-gpg-sign | |
57 | test_rebase_gpg_sign ! true --gpg-sign --no-gpg-sign | |
58 | test_rebase_gpg_sign false --no-gpg-sign --gpg-sign | |
59 | test_rebase_gpg_sign true -i | |
60 | test_rebase_gpg_sign ! true -i --no-gpg-sign | |
61 | test_rebase_gpg_sign ! true -i --gpg-sign --no-gpg-sign | |
62 | test_rebase_gpg_sign false -i --no-gpg-sign --gpg-sign | |
63 | ||
64 | test_expect_failure 'rebase -p --no-gpg-sign override commit.gpgsign' ' | |
65 | git reset --hard merged && | |
66 | git config commit.gpgsign true && | |
67 | git rebase -p --no-gpg-sign --onto=one fork-point master && | |
68 | test_must_fail git verify-commit HEAD | |
69 | ' | |
70 | ||
71 | test_done |