add simple tests of consistency across rebase types
[alt-git.git] / t / t3421-rebase-topology-linear.sh
blob60365d1238ec727c4954c880479bda41ed0ec086
1 #!/bin/sh
3 test_description='basic rebase topology tests'
4 . ./test-lib.sh
5 . "$TEST_DIRECTORY"/lib-rebase.sh
7 # a---b---c
8 # \
9 # d---e
10 test_expect_success 'setup' '
11 test_commit a &&
12 test_commit b &&
13 test_commit c &&
14 git checkout b &&
15 test_commit d &&
16 test_commit e
19 test_run_rebase () {
20 result=$1
21 shift
22 test_expect_$result "simple rebase $*" "
23 reset_rebase &&
24 git rebase $* c e &&
25 test_cmp_rev c HEAD~2 &&
26 test_linear_range 'd e' c..
29 test_run_rebase success ''
30 test_run_rebase success -m
31 test_run_rebase success -i
32 test_run_rebase success -p
34 test_run_rebase () {
35 result=$1
36 shift
37 test_expect_$result "rebase $* is no-op if upstream is an ancestor" "
38 reset_rebase &&
39 git rebase $* b e &&
40 test_cmp_rev e HEAD
43 test_run_rebase success ''
44 test_run_rebase success -m
45 test_run_rebase success -i
46 test_run_rebase success -p
48 test_run_rebase () {
49 result=$1
50 shift
51 test_expect_$result "rebase $* -f rewrites even if upstream is an ancestor" "
52 reset_rebase &&
53 git rebase $* -f b e &&
54 ! test_cmp_rev e HEAD &&
55 test_cmp_rev b HEAD~2 &&
56 test_linear_range 'd e' b..
59 test_run_rebase success ''
60 test_run_rebase success -m
61 test_run_rebase success -i
62 test_run_rebase failure -p
64 test_run_rebase () {
65 result=$1
66 shift
67 test_expect_$result "rebase $* fast-forwards from ancestor of upstream" "
68 reset_rebase &&
69 git rebase $* e b &&
70 test_cmp_rev e HEAD
73 test_run_rebase success ''
74 test_run_rebase success -m
75 test_run_rebase success -i
76 test_run_rebase success -p
78 test_done