use of com.google.gerrit.server.notedb.ChangeNotes in project gerrit by GerritCodeReview.
the class ConsistencyCheckerIT method duplicatePatchSetRevisions.
@Test
public void duplicatePatchSetRevisions() throws Exception {
ChangeNotes notes = insertChange();
PatchSet ps1 = psUtil.current(notes);
notes = incrementPatchSet(notes, serverSideTestRepo.getRevWalk().parseCommit(ps1.commitId()));
assertProblems(notes, null, problem("Multiple patch sets pointing to " + ps1.commitId().name() + ": [1, 2]"));
}
use of com.google.gerrit.server.notedb.ChangeNotes in project gerrit by GerritCodeReview.
the class ConsistencyCheckerIT method expectedMergedCommitIsOldPatchSetOfSameChange.
@Test
public void expectedMergedCommitIsOldPatchSetOfSameChange() throws Exception {
ChangeNotes notes = insertChange();
ObjectId commitId1 = psUtil.current(notes).commitId();
notes = incrementPatchSet(notes);
PatchSet ps2 = psUtil.current(notes);
serverSideTestRepo.branch(notes.getChange().getDest().branch()).update(serverSideTestRepo.getRevWalk().parseCommit(commitId1));
FixInput fix = new FixInput();
fix.expectMergedAs = commitId1.name();
assertProblems(notes, fix, problem("No patch set found for merged commit " + commitId1.name(), FIXED, "Marked change as merged"), problem("Expected merge commit " + commitId1.name() + " corresponds to patch set 1," + " not the current patch set 2", FIXED, "Deleted patch set"), problem("Expected merge commit " + commitId1.name() + " corresponds to patch set 1," + " not the current patch set 2", FIXED, "Inserted as patch set 3"));
notes = reload(notes);
PatchSet.Id psId3 = PatchSet.id(notes.getChangeId(), 3);
assertThat(notes.getChange().currentPatchSetId()).isEqualTo(psId3);
assertThat(notes.getChange().isMerged()).isTrue();
assertThat(psUtil.byChangeAsMap(notes).keySet()).containsExactly(ps2.id(), psId3);
assertThat(psUtil.get(notes, psId3).commitId()).isEqualTo(commitId1);
}
use of com.google.gerrit.server.notedb.ChangeNotes in project gerrit by GerritCodeReview.
the class ConsistencyCheckerIT method missingDestRef.
@Test
public void missingDestRef() throws Exception {
ChangeNotes notes = insertChange();
String ref = "refs/heads/master";
// Detach head so we're allowed to delete ref.
serverSideTestRepo.reset(serverSideTestRepo.getRepository().exactRef(ref).getObjectId());
RefUpdate ru = serverSideTestRepo.getRepository().updateRef(ref);
ru.setForceUpdate(true);
assertThat(ru.delete()).isEqualTo(RefUpdate.Result.FORCED);
assertProblems(notes, null, problem("Destination ref not found (may be new branch): " + ref));
}
use of com.google.gerrit.server.notedb.ChangeNotes in project gerrit by GerritCodeReview.
the class ConsistencyCheckerIT method expectedMergedCommitWithMismatchedChangeId.
@Test
public void expectedMergedCommitWithMismatchedChangeId() throws Exception {
ChangeNotes notes = insertChange();
String dest = notes.getChange().getDest().branch();
RevCommit parent = serverSideTestRepo.branch(dest).commit().message("parent").create();
RevCommit commit = serverSideTestRepo.getRevWalk().parseCommit(psUtil.current(notes).commitId());
serverSideTestRepo.branch(dest).update(commit);
String badId = "I0000000000000000000000000000000000000000";
RevCommit mergedAs = serverSideTestRepo.commit().parent(parent).message(commit.getShortMessage() + "\n\nChange-Id: " + badId + "\n").create();
serverSideTestRepo.getRevWalk().parseBody(mergedAs);
assertThat(mergedAs.getFooterLines(FooterConstants.CHANGE_ID)).containsExactly(badId);
serverSideTestRepo.update(dest, mergedAs);
assertNoProblems(notes, null);
FixInput fix = new FixInput();
fix.expectMergedAs = mergedAs.name();
assertProblems(notes, fix, problem("Expected merged commit " + mergedAs.name() + " has Change-Id: " + badId + ", but expected " + notes.getChange().getKey().get()));
}
use of com.google.gerrit.server.notedb.ChangeNotes in project gerrit by GerritCodeReview.
the class ConsistencyCheckerIT method expectedMergedCommitIsDanglingPatchSetNewerThanCurrent.
@Test
public void expectedMergedCommitIsDanglingPatchSetNewerThanCurrent() throws Exception {
ChangeNotes notes = insertChange();
PatchSet ps1 = psUtil.current(notes);
// Create dangling ref with no patch set.
PatchSet.Id psId2 = PatchSet.id(notes.getChangeId(), 2);
RevCommit commit2 = patchSetCommit(psId2);
serverSideTestRepo.branch(psId2.toRefName()).update(commit2);
serverSideTestRepo.branch(notes.getChange().getDest().branch()).update(commit2);
FixInput fix = new FixInput();
fix.expectMergedAs = commit2.name();
assertProblems(notes, fix, problem("No patch set found for merged commit " + commit2.name(), FIXED, "Marked change as merged"), problem("Expected merge commit " + commit2.name() + " corresponds to patch set 2," + " not the current patch set 1", FIXED, "Inserted as patch set 2"));
notes = reload(notes);
assertThat(notes.getChange().currentPatchSetId()).isEqualTo(psId2);
assertThat(notes.getChange().isMerged()).isTrue();
assertThat(psUtil.byChangeAsMap(notes).keySet()).containsExactly(ps1.id(), psId2);
assertThat(psUtil.get(notes, psId2).commitId()).isEqualTo(commit2);
}
Aggregations