Add more thorough tests for merging multiple root commits
Change-Id: I7b87aab04daeee5be9930509d7da66100f231917
This commit is contained in:
parent
3fd27f2236
commit
c580bf9048
@ -218,6 +218,10 @@ public class PushOneCommit {
|
||||
this.force = force;
|
||||
}
|
||||
|
||||
public void noParents() {
|
||||
commitBuilder.noParents();
|
||||
}
|
||||
|
||||
public class Result {
|
||||
private final String ref;
|
||||
private final PushResult result;
|
||||
|
@ -15,6 +15,7 @@
|
||||
package com.google.gerrit.acceptance.rest.change;
|
||||
|
||||
import static com.google.common.truth.Truth.assertThat;
|
||||
import static com.google.common.truth.TruthJUnit.assume;
|
||||
|
||||
import com.google.gerrit.acceptance.PushOneCommit;
|
||||
import com.google.gerrit.acceptance.TestProjectInput;
|
||||
@ -84,4 +85,37 @@ public abstract class AbstractSubmitByMerge extends AbstractSubmit {
|
||||
"and upload the rebased commit for review.");
|
||||
assertThat(getRemoteHead()).isEqualTo(oldHead);
|
||||
}
|
||||
|
||||
@Test
|
||||
@TestProjectInput(createEmptyCommit = false)
|
||||
public void submitMultipleCommitsToEmptyRepoAsFastForward() throws Exception {
|
||||
PushOneCommit.Result change1 = createChange();
|
||||
PushOneCommit.Result change2 = createChange();
|
||||
approve(change1.getChangeId());
|
||||
submit(change2.getChangeId());
|
||||
assertThat(getRemoteHead().getId()).isEqualTo(change2.getCommitId());
|
||||
}
|
||||
|
||||
@Test
|
||||
@TestProjectInput(createEmptyCommit = false)
|
||||
public void submitMultipleCommitsToEmptyRepoWithOneMerge() throws Exception {
|
||||
assume().that(isSubmitWholeTopicEnabled()).isTrue();
|
||||
PushOneCommit.Result change1 = pushFactory.create(
|
||||
db, admin.getIdent(), testRepo, "Change 1", "a", "a")
|
||||
.to("refs/for/master/" + name("topic"));
|
||||
|
||||
PushOneCommit push2 = pushFactory.create(
|
||||
db, admin.getIdent(), testRepo, "Change 2", "b", "b");
|
||||
push2.noParents();
|
||||
PushOneCommit.Result change2 = push2.to("refs/for/master/" + name("topic"));
|
||||
change2.assertOkStatus();
|
||||
|
||||
approve(change1.getChangeId());
|
||||
submit(change2.getChangeId());
|
||||
|
||||
RevCommit head = getRemoteHead();
|
||||
assertThat(head.getParents()).hasLength(2);
|
||||
assertThat(head.getParent(0)).isEqualTo(change1.getCommit());
|
||||
assertThat(head.getParent(1)).isEqualTo(change2.getCommit());
|
||||
}
|
||||
}
|
||||
|
Loading…
Reference in New Issue
Block a user