Skip to content

Commit b8c6f24

Browse files
dschogitster
authored andcommitted
t3427: condense the unnecessarily repetitive test cases into three
Previously, this test script performed essentially three rebases and verified breakages by testing the post-rebase commits' messages. To do so, the rebases were performed multiple times, though, once per commit message to test. This wastes electricity (and CO2) and time. Let's condense the test cases to the essential number: the number of different rebases to validate. On Windows, where the scripted nature of the `--preserve-merges` backend hurts performance rather badly, this reduces the overall runtime in this developer's setup from ~1m to ~28s while still performing the exact same testing as before. Signed-off-by: Johannes Schindelin <johannes.schindelin@gmx.de> Signed-off-by: Junio C Hamano <gitster@pobox.com>
1 parent d51b771 commit b8c6f24

1 file changed

Lines changed: 11 additions & 50 deletions

File tree

t/t3427-rebase-subtree.sh

Lines changed: 11 additions & 50 deletions
Original file line numberDiff line numberDiff line change
@@ -64,70 +64,31 @@ test_expect_success 'setup' '
6464
'
6565

6666
# FAILURE: Does not preserve master4.
67-
test_expect_failure REBASE_P \
68-
'Rebase -Xsubtree --preserve-merges --onto commit 4' '
67+
test_expect_failure REBASE_P 'Rebase -Xsubtree --preserve-merges --onto commit' '
6968
reset_rebase &&
70-
git checkout -b rebase-preserve-merges-4 to-rebase &&
71-
git rebase -Xsubtree=files_subtree --preserve-merges --onto files-master master &&
72-
verbose test "$(commit_message HEAD~)" = "files_subtree/master4"
73-
'
74-
75-
# FAILURE: Does not preserve master5.
76-
test_expect_failure REBASE_P \
77-
'Rebase -Xsubtree --preserve-merges --onto commit 5' '
78-
reset_rebase &&
79-
git checkout -b rebase-preserve-merges-5 to-rebase &&
69+
git checkout -b rebase-preserve-merges to-rebase &&
8070
git rebase -Xsubtree=files_subtree --preserve-merges --onto files-master master &&
71+
verbose test "$(commit_message HEAD~)" = "files_subtree/master4" &&
8172
verbose test "$(commit_message HEAD)" = "files_subtree/master5"
8273
'
8374

8475
# FAILURE: Does not preserve master4.
85-
test_expect_failure REBASE_P \
86-
'Rebase -Xsubtree --keep-empty --preserve-merges --onto commit 4' '
76+
test_expect_failure REBASE_P 'Rebase -Xsubtree --keep-empty --preserve-merges --onto commit' '
8777
reset_rebase &&
88-
git checkout -b rebase-keep-empty-4 to-rebase &&
89-
git rebase -Xsubtree=files_subtree --keep-empty --preserve-merges --onto files-master master &&
90-
verbose test "$(commit_message HEAD~2)" = "files_subtree/master4"
91-
'
92-
93-
# FAILURE: Does not preserve master5.
94-
test_expect_failure REBASE_P \
95-
'Rebase -Xsubtree --keep-empty --preserve-merges --onto commit 5' '
96-
reset_rebase &&
97-
git checkout -b rebase-keep-empty-5 to-rebase &&
98-
git rebase -Xsubtree=files_subtree --keep-empty --preserve-merges --onto files-master master &&
99-
verbose test "$(commit_message HEAD~)" = "files_subtree/master5"
100-
'
101-
102-
# FAILURE: Does not preserve Empty.
103-
test_expect_failure REBASE_P \
104-
'Rebase -Xsubtree --keep-empty --preserve-merges --onto empty commit' '
105-
reset_rebase &&
106-
git checkout -b rebase-keep-empty-empty to-rebase &&
78+
git checkout -b rebase-keep-empty to-rebase &&
10779
git rebase -Xsubtree=files_subtree --keep-empty --preserve-merges --onto files-master master &&
80+
verbose test "$(commit_message HEAD~2)" = "files_subtree/master4" &&
81+
verbose test "$(commit_message HEAD~)" = "files_subtree/master5" &&
10882
verbose test "$(commit_message HEAD)" = "Empty commit"
10983
'
11084

11185
# FAILURE: fatal: Could not parse object
112-
test_expect_failure 'Rebase -Xsubtree --onto commit 4' '
113-
reset_rebase &&
114-
git checkout -b rebase-onto-4 to-rebase &&
115-
git rebase -Xsubtree=files_subtree --onto files-master master &&
116-
verbose test "$(commit_message HEAD~2)" = "files_subtree/master4"
117-
'
118-
119-
# FAILURE: fatal: Could not parse object
120-
test_expect_failure 'Rebase -Xsubtree --onto commit 5' '
121-
reset_rebase &&
122-
git checkout -b rebase-onto-5 to-rebase &&
123-
git rebase -Xsubtree=files_subtree --onto files-master master &&
124-
verbose test "$(commit_message HEAD~)" = "files_subtree/master5"
125-
'
126-
# FAILURE: fatal: Could not parse object
127-
test_expect_failure 'Rebase -Xsubtree --onto empty commit' '
86+
test_expect_failure 'Rebase -Xsubtree --onto commit' '
12887
reset_rebase &&
129-
git checkout -b rebase-onto-empty to-rebase &&
88+
git checkout -b rebase-onto to-rebase &&
13089
git rebase -Xsubtree=files_subtree --onto files-master master &&
90+
verbose test "$(commit_message HEAD~2)" = "files_subtree/master4" &&
91+
verbose test "$(commit_message HEAD~)" = "files_subtree/master5" &&
13192
verbose test "$(commit_message HEAD)" = "Empty commit"
13293
'
13394

0 commit comments

Comments
 (0)