Use TestRepository's Git and Repository in acceptance tests

Avoid storing two references that have to be kept in sync, now that a
Git is available directly from TestRepository. Use a git() convenience
method to AbstractDaemonTest to shorten this. Similarly, add a repo()
convenience method to get the Repository.

Change-Id: I1ec8af8fead0876a2836f7972b5caf603847b25d
This commit is contained in:
Dave Borowitz
2015-03-18 09:00:13 -07:00
parent 3e027d60b8
commit e3612d0fb3
17 changed files with 76 additions and 77 deletions

View File

@@ -64,6 +64,7 @@ import org.apache.http.HttpStatus;
import org.eclipse.jgit.api.Git; import org.eclipse.jgit.api.Git;
import org.eclipse.jgit.errors.ConfigInvalidException; import org.eclipse.jgit.errors.ConfigInvalidException;
import org.eclipse.jgit.errors.RepositoryNotFoundException; import org.eclipse.jgit.errors.RepositoryNotFoundException;
import org.eclipse.jgit.internal.storage.dfs.InMemoryRepository;
import org.eclipse.jgit.junit.TestRepository; import org.eclipse.jgit.junit.TestRepository;
import org.eclipse.jgit.lib.Config; import org.eclipse.jgit.lib.Config;
import org.eclipse.jgit.lib.ObjectId; import org.eclipse.jgit.lib.ObjectId;
@@ -127,8 +128,7 @@ public abstract class AbstractDaemonTest {
@Inject @Inject
protected @GerritServerConfig Config cfg; protected @GerritServerConfig Config cfg;
protected Git git; protected TestRepository<InMemoryRepository> testRepo;
protected TestRepository<?> testRepo;
protected GerritServer server; protected GerritServer server;
protected TestAccount admin; protected TestAccount admin;
protected TestAccount user; protected TestAccount user;
@@ -211,7 +211,7 @@ public abstract class AbstractDaemonTest {
project = new Project.NameKey(projectInput.name); project = new Project.NameKey(projectInput.name);
createProject(projectInput); createProject(projectInput);
setRepo(cloneProject(project, sshSession)); testRepo = cloneProject(project, sshSession);
} }
private ProjectInput projectInput(Description description) { private ProjectInput projectInput(Description description) {
@@ -237,9 +237,12 @@ public abstract class AbstractDaemonTest {
return in; return in;
} }
protected void setRepo(TestRepository<?> testRepo) throws Exception { protected Git git() {
this.git = Git.wrap(testRepo.getRepository()); return testRepo.git();
this.testRepo = new TestRepository<>(git.getRepository()); }
protected InMemoryRepository repo() {
return testRepo.getRepository();
} }
protected void createProject(String name) throws RestApiException { protected void createProject(String name) throws RestApiException {
@@ -291,7 +294,7 @@ public abstract class AbstractDaemonTest {
} }
protected TestRepository<?>.CommitBuilder amendBuilder() throws Exception { protected TestRepository<?>.CommitBuilder amendBuilder() throws Exception {
ObjectId head = testRepo.getRepository().getRef("HEAD").getObjectId(); ObjectId head = repo().getRef("HEAD").getObjectId();
TestRepository<?>.CommitBuilder b = testRepo.amendRef("HEAD"); TestRepository<?>.CommitBuilder b = testRepo.amendRef("HEAD");
Optional<String> id = GitUtil.getChangeId(testRepo, head); Optional<String> id = GitUtil.getChangeId(testRepo, head);
// TestRepository behaves like "git commit --amend -m foo", which does not // TestRepository behaves like "git commit --amend -m foo", which does not

View File

@@ -24,7 +24,6 @@ import com.jcraft.jsch.JSchException;
import com.jcraft.jsch.Session; import com.jcraft.jsch.Session;
import org.eclipse.jgit.api.FetchCommand; import org.eclipse.jgit.api.FetchCommand;
import org.eclipse.jgit.api.Git;
import org.eclipse.jgit.api.PushCommand; import org.eclipse.jgit.api.PushCommand;
import org.eclipse.jgit.api.errors.GitAPIException; import org.eclipse.jgit.api.errors.GitAPIException;
import org.eclipse.jgit.internal.storage.dfs.DfsRepositoryDescription; import org.eclipse.jgit.internal.storage.dfs.DfsRepositoryDescription;
@@ -96,20 +95,21 @@ public class GitUtil {
return cloneProject(project, sshSession.getUrl() + "/" + project.get()); return cloneProject(project, sshSession.getUrl() + "/" + project.get());
} }
public static void fetch(Git git, String spec) throws GitAPIException { public static void fetch(TestRepository<?> testRepo, String spec)
FetchCommand fetch = git.fetch(); throws GitAPIException {
FetchCommand fetch = testRepo.git().fetch();
fetch.setRefSpecs(new RefSpec(spec)); fetch.setRefSpecs(new RefSpec(spec));
fetch.call(); fetch.call();
} }
public static PushResult pushHead(Git git, String ref, boolean pushTags) public static PushResult pushHead(TestRepository<?> testRepo, String ref,
throws GitAPIException { boolean pushTags) throws GitAPIException {
return pushHead(git, ref, pushTags, false); return pushHead(testRepo, ref, pushTags, false);
} }
public static PushResult pushHead(Git git, String ref, boolean pushTags, public static PushResult pushHead(TestRepository<?> testRepo, String ref,
boolean force) throws GitAPIException { boolean pushTags, boolean force) throws GitAPIException {
PushCommand pushCmd = git.push(); PushCommand pushCmd = testRepo.git().push();
pushCmd.setForce(force); pushCmd.setForce(force);
pushCmd.setRefSpecs(new RefSpec("HEAD:" + ref)); pushCmd.setRefSpecs(new RefSpec("HEAD:" + ref));
if (pushTags) { if (pushTags) {

View File

@@ -36,7 +36,6 @@ import com.google.inject.Provider;
import com.google.inject.assistedinject.Assisted; import com.google.inject.assistedinject.Assisted;
import com.google.inject.assistedinject.AssistedInject; import com.google.inject.assistedinject.AssistedInject;
import org.eclipse.jgit.api.Git;
import org.eclipse.jgit.api.TagCommand; import org.eclipse.jgit.api.TagCommand;
import org.eclipse.jgit.junit.TestRepository; import org.eclipse.jgit.junit.TestRepository;
import org.eclipse.jgit.lib.ObjectId; import org.eclipse.jgit.lib.ObjectId;
@@ -181,9 +180,8 @@ public class PushOneCommit {
if (changeId == null) { if (changeId == null) {
changeId = GitUtil.getChangeId(testRepo, c).get(); changeId = GitUtil.getChangeId(testRepo, c).get();
} }
Git git = Git.wrap(testRepo.getRepository());
if (tag != null) { if (tag != null) {
TagCommand tagCommand = git.tag().setName(tag.name); TagCommand tagCommand = testRepo.git().tag().setName(tag.name);
if (tag instanceof AnnotatedTag) { if (tag instanceof AnnotatedTag) {
AnnotatedTag annotatedTag = (AnnotatedTag)tag; AnnotatedTag annotatedTag = (AnnotatedTag)tag;
tagCommand.setAnnotated(true) tagCommand.setAnnotated(true)
@@ -194,7 +192,8 @@ public class PushOneCommit {
} }
tagCommand.call(); tagCommand.call();
} }
return new Result(ref, pushHead(git, ref, tag != null, force), c, subject); return new Result(ref, pushHead(testRepo, ref, tag != null, force), c,
subject);
} }
public void setTag(final Tag tag) { public void setTag(final Tag tag) {

View File

@@ -349,7 +349,7 @@ public class RevisionIT extends AbstractDaemonTest {
@Test @Test
public void mergeable() throws Exception { public void mergeable() throws Exception {
ObjectId initial = git.getRepository().getRef(HEAD).getLeaf().getObjectId(); ObjectId initial = repo().getRef(HEAD).getLeaf().getObjectId();
PushOneCommit push1 = PushOneCommit push1 =
pushFactory.create(db, admin.getIdent(), testRepo, PushOneCommit.SUBJECT, pushFactory.create(db, admin.getIdent(), testRepo, PushOneCommit.SUBJECT,
@@ -360,7 +360,7 @@ public class RevisionIT extends AbstractDaemonTest {
merge(r1); merge(r1);
// Reset HEAD to initial so the new change is a merge conflict. // Reset HEAD to initial so the new change is a merge conflict.
RefUpdate ru = git.getRepository().updateRef(HEAD); RefUpdate ru = repo().updateRef(HEAD);
ru.setNewObjectId(initial); ru.setNewObjectId(initial);
assertThat(ru.forceUpdate()).isEqualTo(RefUpdate.Result.FORCED); assertThat(ru.forceUpdate()).isEqualTo(RefUpdate.Result.FORCED);

View File

@@ -68,7 +68,7 @@ public abstract class AbstractPushForReview extends AbstractDaemonTest {
default: default:
throw new IllegalArgumentException("unexpected protocol: " + p); throw new IllegalArgumentException("unexpected protocol: " + p);
} }
setRepo(cloneProject(project, url + "/" + project.get())); testRepo = cloneProject(project, url + "/" + project.get());
} }
@Test @Test

View File

@@ -29,14 +29,14 @@ public class ForcePushIT extends AbstractDaemonTest {
@Test @Test
public void forcePushNotAllowed() throws Exception { public void forcePushNotAllowed() throws Exception {
ObjectId initial = git.getRepository().getRef(HEAD).getLeaf().getObjectId(); ObjectId initial = repo().getRef(HEAD).getLeaf().getObjectId();
PushOneCommit push1 = PushOneCommit push1 =
pushFactory.create(db, admin.getIdent(), testRepo, "change1", "a.txt", "content"); pushFactory.create(db, admin.getIdent(), testRepo, "change1", "a.txt", "content");
PushOneCommit.Result r1 = push1.to("refs/heads/master"); PushOneCommit.Result r1 = push1.to("refs/heads/master");
r1.assertOkStatus(); r1.assertOkStatus();
// Reset HEAD to initial so the new change is a non-fast forward // Reset HEAD to initial so the new change is a non-fast forward
RefUpdate ru = git.getRepository().updateRef(HEAD); RefUpdate ru = repo().updateRef(HEAD);
ru.setNewObjectId(initial); ru.setNewObjectId(initial);
assertThat(ru.forceUpdate()).isEqualTo(RefUpdate.Result.FORCED); assertThat(ru.forceUpdate()).isEqualTo(RefUpdate.Result.FORCED);
@@ -49,7 +49,7 @@ public class ForcePushIT extends AbstractDaemonTest {
@Test @Test
public void forcePushAllowed() throws Exception { public void forcePushAllowed() throws Exception {
ObjectId initial = git.getRepository().getRef(HEAD).getLeaf().getObjectId(); ObjectId initial = repo().getRef(HEAD).getLeaf().getObjectId();
grant(Permission.PUSH, project, "refs/*", true); grant(Permission.PUSH, project, "refs/*", true);
PushOneCommit push1 = PushOneCommit push1 =
pushFactory.create(db, admin.getIdent(), testRepo, "change1", "a.txt", "content"); pushFactory.create(db, admin.getIdent(), testRepo, "change1", "a.txt", "content");
@@ -57,7 +57,7 @@ public class ForcePushIT extends AbstractDaemonTest {
r1.assertOkStatus(); r1.assertOkStatus();
// Reset HEAD to initial so the new change is a non-fast forward // Reset HEAD to initial so the new change is a non-fast forward
RefUpdate ru = git.getRepository().updateRef(HEAD); RefUpdate ru = repo().updateRef(HEAD);
ru.setNewObjectId(initial); ru.setNewObjectId(initial);
assertThat(ru.forceUpdate()).isEqualTo(RefUpdate.Result.FORCED); assertThat(ru.forceUpdate()).isEqualTo(RefUpdate.Result.FORCED);

View File

@@ -103,9 +103,8 @@ public class SubmitOnPushIT extends AbstractDaemonTest {
public void submitOnPushToRefsMetaConfig() throws Exception { public void submitOnPushToRefsMetaConfig() throws Exception {
grant(Permission.SUBMIT, project, "refs/for/refs/meta/config"); grant(Permission.SUBMIT, project, "refs/for/refs/meta/config");
git.fetch().setRefSpecs(new RefSpec("refs/meta/config:refs/meta/config")).call(); git().fetch().setRefSpecs(new RefSpec("refs/meta/config:refs/meta/config")).call();
ObjectId objectId = git.getRepository().getRef("refs/meta/config").getObjectId(); testRepo.reset("refs/meta/config");
testRepo.reset(objectId);
PushOneCommit.Result r = pushTo("refs/for/refs/meta/config%submit"); PushOneCommit.Result r = pushTo("refs/for/refs/meta/config%submit");
r.assertOkStatus(); r.assertOkStatus();
@@ -116,7 +115,7 @@ public class SubmitOnPushIT extends AbstractDaemonTest {
@Test @Test
public void submitOnPushMergeConflict() throws Exception { public void submitOnPushMergeConflict() throws Exception {
ObjectId objectId = git.getRepository().getRef("HEAD").getObjectId(); ObjectId objectId = repo().getRef("HEAD").getObjectId();
push("refs/heads/master", "one change", "a.txt", "some content"); push("refs/heads/master", "one change", "a.txt", "some content");
testRepo.reset(objectId); testRepo.reset(objectId);
@@ -131,7 +130,7 @@ public class SubmitOnPushIT extends AbstractDaemonTest {
@Test @Test
public void submitOnPushSuccessfulMerge() throws Exception { public void submitOnPushSuccessfulMerge() throws Exception {
String master = "refs/heads/master"; String master = "refs/heads/master";
ObjectId objectId = git.getRepository().getRef("HEAD").getObjectId(); ObjectId objectId = repo().getRef("HEAD").getObjectId();
push(master, "one change", "a.txt", "some content"); push(master, "one change", "a.txt", "some content");
testRepo.reset(objectId); testRepo.reset(objectId);
@@ -196,7 +195,7 @@ public class SubmitOnPushIT extends AbstractDaemonTest {
push("refs/for/master", PushOneCommit.SUBJECT, "a.txt", "some content"); push("refs/for/master", PushOneCommit.SUBJECT, "a.txt", "some content");
r.assertOkStatus(); r.assertOkStatus();
git.push() git().push()
.setRefSpecs(new RefSpec(r.getCommitId().name() + ":refs/heads/master")) .setRefSpecs(new RefSpec(r.getCommitId().name() + ":refs/heads/master"))
.call(); .call();
assertCommit(project, "refs/heads/master"); assertCommit(project, "refs/heads/master");

View File

@@ -57,8 +57,8 @@ import com.google.gwtorm.server.OrmException;
import com.google.inject.Inject; import com.google.inject.Inject;
import org.apache.http.HttpStatus; import org.apache.http.HttpStatus;
import org.eclipse.jgit.api.Git;
import org.eclipse.jgit.diff.DiffFormatter; import org.eclipse.jgit.diff.DiffFormatter;
import org.eclipse.jgit.junit.TestRepository;
import org.eclipse.jgit.lib.Config; import org.eclipse.jgit.lib.Config;
import org.eclipse.jgit.lib.ObjectId; import org.eclipse.jgit.lib.ObjectId;
import org.eclipse.jgit.lib.Ref; import org.eclipse.jgit.lib.Ref;
@@ -279,17 +279,17 @@ public abstract class AbstractSubmit extends AbstractDaemonTest {
assertThat(submitter.getAccountId()).isEqualTo(admin.getId()); assertThat(submitter.getAccountId()).isEqualTo(admin.getId());
} }
protected void assertCherryPick(Git localGit, boolean contentMerge) protected void assertCherryPick(TestRepository<?> testRepo,
throws IOException { boolean contentMerge) throws IOException {
assertRebase(localGit, contentMerge); assertRebase(testRepo, contentMerge);
RevCommit remoteHead = getRemoteHead(); RevCommit remoteHead = getRemoteHead();
assertThat(remoteHead.getFooterLines("Reviewed-On")).isNotEmpty(); assertThat(remoteHead.getFooterLines("Reviewed-On")).isNotEmpty();
assertThat(remoteHead.getFooterLines("Reviewed-By")).isNotEmpty(); assertThat(remoteHead.getFooterLines("Reviewed-By")).isNotEmpty();
} }
protected void assertRebase(Git localGit, boolean contentMerge) protected void assertRebase(TestRepository<?> testRepo, boolean contentMerge)
throws IOException { throws IOException {
Repository repo = localGit.getRepository(); Repository repo = testRepo.getRepository();
RevCommit localHead = getHead(repo); RevCommit localHead = getHead(repo);
RevCommit remoteHead = getRemoteHead(); RevCommit remoteHead = getRemoteHead();
assert_().withFailureMessage( assert_().withFailureMessage(

View File

@@ -53,7 +53,7 @@ public class ChangeOwnerIT extends AbstractDaemonTest {
SshSession sshSession = new SshSession(server, user); SshSession sshSession = new SshSession(server, user);
initSsh(user); initSsh(user);
sshSession.open(); sshSession.open();
setRepo(cloneProject(project, sshSession)); testRepo = cloneProject(project, sshSession);
sshSession.close(); sshSession.close();
user2 = accounts.user2(); user2 = accounts.user2();
sessionDev = new RestSession(server, user2); sessionDev = new RestSession(server, user2);

View File

@@ -41,7 +41,7 @@ public class SubmitByCherryPickIT extends AbstractSubmit {
public void submitWithCherryPickIfFastForwardPossible() throws Exception { public void submitWithCherryPickIfFastForwardPossible() throws Exception {
PushOneCommit.Result change = createChange(); PushOneCommit.Result change = createChange();
submit(change.getChangeId()); submit(change.getChangeId());
assertCherryPick(git, false); assertCherryPick(testRepo, false);
assertThat(getRemoteHead().getParent(0)) assertThat(getRemoteHead().getParent(0))
.isEqualTo(change.getCommit().getParent(0)); .isEqualTo(change.getCommit().getParent(0));
} }
@@ -58,7 +58,7 @@ public class SubmitByCherryPickIT extends AbstractSubmit {
PushOneCommit.Result change2 = PushOneCommit.Result change2 =
createChange("Change 2", "b.txt", "other content"); createChange("Change 2", "b.txt", "other content");
submit(change2.getChangeId()); submit(change2.getChangeId());
assertCherryPick(git, false); assertCherryPick(testRepo, false);
RevCommit newHead = getRemoteHead(); RevCommit newHead = getRemoteHead();
assertThat(newHead.getParentCount()).isEqualTo(1); assertThat(newHead.getParentCount()).isEqualTo(1);
assertThat(newHead.getParent(0)).isEqualTo(oldHead); assertThat(newHead.getParent(0)).isEqualTo(oldHead);
@@ -82,7 +82,7 @@ public class SubmitByCherryPickIT extends AbstractSubmit {
PushOneCommit.Result change3 = PushOneCommit.Result change3 =
createChange("Change 3", "a.txt", "bbb\nccc\n"); createChange("Change 3", "a.txt", "bbb\nccc\n");
submit(change3.getChangeId()); submit(change3.getChangeId());
assertCherryPick(git, true); assertCherryPick(testRepo, true);
RevCommit newHead = getRemoteHead(); RevCommit newHead = getRemoteHead();
assertThat(newHead.getParent(0)).isEqualTo(oldHead); assertThat(newHead.getParent(0)).isEqualTo(oldHead);
assertApproved(change3.getChangeId()); assertApproved(change3.getChangeId());
@@ -122,7 +122,7 @@ public class SubmitByCherryPickIT extends AbstractSubmit {
PushOneCommit.Result change3 = PushOneCommit.Result change3 =
createChange("Change 3", "c.txt", "different content"); createChange("Change 3", "c.txt", "different content");
submit(change3.getChangeId()); submit(change3.getChangeId());
assertCherryPick(git, false); assertCherryPick(testRepo, false);
RevCommit newHead = getRemoteHead(); RevCommit newHead = getRemoteHead();
assertThat(newHead.getParent(0)).isEqualTo(oldHead); assertThat(newHead.getParent(0)).isEqualTo(oldHead);
assertApproved(change3.getChangeId()); assertApproved(change3.getChangeId());

View File

@@ -58,7 +58,7 @@ public class SubmitByRebaseIfNecessaryIT extends AbstractSubmit {
PushOneCommit.Result change2 = PushOneCommit.Result change2 =
createChange("Change 2", "b.txt", "other content"); createChange("Change 2", "b.txt", "other content");
submit(change2.getChangeId()); submit(change2.getChangeId());
assertRebase(git, false); assertRebase(testRepo, false);
RevCommit head = getRemoteHead(); RevCommit head = getRemoteHead();
assertThat(head.getParent(0)).isEqualTo(oldHead); assertThat(head.getParent(0)).isEqualTo(oldHead);
assertApproved(change2.getChangeId()); assertApproved(change2.getChangeId());
@@ -82,7 +82,7 @@ public class SubmitByRebaseIfNecessaryIT extends AbstractSubmit {
PushOneCommit.Result change3 = PushOneCommit.Result change3 =
createChange("Change 3", "a.txt", "bbb\nccc\n"); createChange("Change 3", "a.txt", "bbb\nccc\n");
submit(change3.getChangeId()); submit(change3.getChangeId());
assertRebase(git, true); assertRebase(testRepo, true);
RevCommit head = getRemoteHead(); RevCommit head = getRemoteHead();
assertThat(head.getParent(0)).isEqualTo(oldHead); assertThat(head.getParent(0)).isEqualTo(oldHead);
assertApproved(change3.getChangeId()); assertApproved(change3.getChangeId());

View File

@@ -45,7 +45,7 @@ public class BanCommitIT extends AbstractDaemonTest {
assertThat(info.alreadyBanned).isNull(); assertThat(info.alreadyBanned).isNull();
assertThat(info.ignored).isNull(); assertThat(info.ignored).isNull();
PushResult pushResult = pushHead(git, "refs/heads/master", false); PushResult pushResult = pushHead(testRepo, "refs/heads/master", false);
assertThat(pushResult.getRemoteUpdate("refs/heads/master").getMessage()) assertThat(pushResult.getRemoteUpdate("refs/heads/master").getMessage())
.startsWith("contains banned commit"); .startsWith("contains banned commit");
} }

View File

@@ -61,9 +61,9 @@ public class ListBranchesIT extends AbstractDaemonTest {
@Test @Test
public void listBranches() throws Exception { public void listBranches() throws Exception {
pushTo("refs/heads/master"); pushTo("refs/heads/master");
String headCommit = git.getRepository().getRef("HEAD").getTarget().getObjectId().getName(); String headCommit = repo().getRef("HEAD").getTarget().getObjectId().getName();
pushTo("refs/heads/dev"); pushTo("refs/heads/dev");
String devCommit = git.getRepository().getRef("HEAD").getTarget().getObjectId().getName(); String devCommit = repo().getRef("HEAD").getTarget().getObjectId().getName();
RestResponse r = adminSession.get("/projects/" + project.get() + "/branches"); RestResponse r = adminSession.get("/projects/" + project.get() + "/branches");
List<BranchInfo> expected = Lists.asList( List<BranchInfo> expected = Lists.asList(
new BranchInfo("refs/meta/config", null, false), new BranchInfo("refs/meta/config", null, false),
@@ -86,7 +86,7 @@ public class ListBranchesIT extends AbstractDaemonTest {
public void listBranchesSomeHidden() throws Exception { public void listBranchesSomeHidden() throws Exception {
blockRead(project, "refs/heads/dev"); blockRead(project, "refs/heads/dev");
pushTo("refs/heads/master"); pushTo("refs/heads/master");
String headCommit = git.getRepository().getRef("HEAD").getTarget().getObjectId().getName(); String headCommit = repo().getRef("HEAD").getTarget().getObjectId().getName();
pushTo("refs/heads/dev"); pushTo("refs/heads/dev");
RestResponse r = userSession.get("/projects/" + project.get() + "/branches"); RestResponse r = userSession.get("/projects/" + project.get() + "/branches");
// refs/meta/config is hidden since user is no project owner // refs/meta/config is hidden since user is no project owner
@@ -103,7 +103,7 @@ public class ListBranchesIT extends AbstractDaemonTest {
blockRead(project, "refs/heads/master"); blockRead(project, "refs/heads/master");
pushTo("refs/heads/master"); pushTo("refs/heads/master");
pushTo("refs/heads/dev"); pushTo("refs/heads/dev");
String devCommit = git.getRepository().getRef("HEAD").getTarget().getObjectId().getName(); String devCommit = repo().getRef("HEAD").getTarget().getObjectId().getName();
RestResponse r = userSession.get("/projects/" + project.get() + "/branches"); RestResponse r = userSession.get("/projects/" + project.get() + "/branches");
// refs/meta/config is hidden since user is no project owner // refs/meta/config is hidden since user is no project owner
assertBranches(Collections.singletonList(new BranchInfo("refs/heads/dev", assertBranches(Collections.singletonList(new BranchInfo("refs/heads/dev",

View File

@@ -23,7 +23,6 @@ import com.google.gerrit.acceptance.PushOneCommit;
import com.google.gerrit.reviewdb.client.RefNames; import com.google.gerrit.reviewdb.client.RefNames;
import com.google.gerrit.server.project.ProjectState; import com.google.gerrit.server.project.ProjectState;
import org.eclipse.jgit.api.Git;
import org.eclipse.jgit.junit.TestRepository; import org.eclipse.jgit.junit.TestRepository;
import org.eclipse.jgit.lib.Config; import org.eclipse.jgit.lib.Config;
import org.junit.Before; import org.junit.Before;
@@ -32,7 +31,7 @@ import org.junit.Test;
public class ProjectLevelConfigIT extends AbstractDaemonTest { public class ProjectLevelConfigIT extends AbstractDaemonTest {
@Before @Before
public void setUp() throws Exception { public void setUp() throws Exception {
fetch(git, RefNames.REFS_CONFIG + ":refs/heads/config"); fetch(testRepo, RefNames.REFS_CONFIG + ":refs/heads/config");
testRepo.reset("refs/heads/config"); testRepo.reset("refs/heads/config");
} }
@@ -69,8 +68,7 @@ public class ProjectLevelConfigIT extends AbstractDaemonTest {
parentCfg.setString("s2", "ss", "k4", "parentValue4"); parentCfg.setString("s2", "ss", "k4", "parentValue4");
TestRepository<?> parentTestRepo = cloneProject(allProjects, sshSession); TestRepository<?> parentTestRepo = cloneProject(allProjects, sshSession);
Git parentGit = Git.wrap(parentTestRepo.getRepository()); fetch(parentTestRepo, RefNames.REFS_CONFIG + ":refs/heads/config");
fetch(parentGit, RefNames.REFS_CONFIG + ":refs/heads/config");
parentTestRepo.reset("refs/heads/config"); parentTestRepo.reset("refs/heads/config");
PushOneCommit push = PushOneCommit push =
pushFactory.create(db, admin.getIdent(), parentTestRepo, "Create Project Level Config", pushFactory.create(db, admin.getIdent(), parentTestRepo, "Create Project Level Config",

View File

@@ -67,7 +67,7 @@ public class GetRelatedIT extends AbstractDaemonTest {
.message("subject: 2") .message("subject: 2")
.create(); .create();
String id2 = getChangeId(testRepo, c2).get(); String id2 = getChangeId(testRepo, c2).get();
pushHead(git, "refs/for/master", false); pushHead(testRepo, "refs/for/master", false);
for (RevCommit c : ImmutableList.of(c2, c1)) { for (RevCommit c : ImmutableList.of(c2, c1)) {
List<ChangeAndCommit> related = getRelated(getPatchSetId(c)); List<ChangeAndCommit> related = getRelated(getPatchSetId(c));
@@ -93,7 +93,7 @@ public class GetRelatedIT extends AbstractDaemonTest {
.message("subject: 2") .message("subject: 2")
.create(); .create();
String id2 = getChangeId(testRepo, c2).get(); String id2 = getChangeId(testRepo, c2).get();
pushHead(git, "refs/for/master", false); pushHead(testRepo, "refs/for/master", false);
PatchSet.Id c1ps1 = getPatchSetId(c1); PatchSet.Id c1ps1 = getPatchSetId(c1);
PatchSet.Id c2ps1 = getPatchSetId(c2); PatchSet.Id c2ps1 = getPatchSetId(c2);
@@ -101,7 +101,7 @@ public class GetRelatedIT extends AbstractDaemonTest {
testRepo.reset("HEAD~2"); testRepo.reset("HEAD~2");
testRepo.cherryPick(c2); testRepo.cherryPick(c2);
testRepo.cherryPick(c1); testRepo.cherryPick(c1);
pushHead(git, "refs/for/master", false); pushHead(testRepo, "refs/for/master", false);
PatchSet.Id c1ps2 = getPatchSetId(c1); PatchSet.Id c1ps2 = getPatchSetId(c1);
PatchSet.Id c2ps2 = getPatchSetId(c2); PatchSet.Id c2ps2 = getPatchSetId(c2);
@@ -127,7 +127,7 @@ public class GetRelatedIT extends AbstractDaemonTest {
@Test @Test
public void getRelatedReorderAndExtend() throws Exception { public void getRelatedReorderAndExtend() throws Exception {
// Create two commits and push. // Create two commits and push.
ObjectId initial = testRepo.getRepository().getRef("HEAD").getObjectId(); ObjectId initial = repo().getRef("HEAD").getObjectId();
RevCommit c1 = commitBuilder() RevCommit c1 = commitBuilder()
.add("a.txt", "1") .add("a.txt", "1")
.message("subject: 1") .message("subject: 1")
@@ -138,7 +138,7 @@ public class GetRelatedIT extends AbstractDaemonTest {
.message("subject: 2") .message("subject: 2")
.create(); .create();
String id2 = getChangeId(testRepo, c2).get(); String id2 = getChangeId(testRepo, c2).get();
pushHead(git, "refs/for/master", false); pushHead(testRepo, "refs/for/master", false);
PatchSet.Id c1ps1 = getPatchSetId(c1); PatchSet.Id c1ps1 = getPatchSetId(c1);
PatchSet.Id c2ps1 = getPatchSetId(c2); PatchSet.Id c2ps1 = getPatchSetId(c2);
@@ -151,7 +151,7 @@ public class GetRelatedIT extends AbstractDaemonTest {
.message("subject: 3") .message("subject: 3")
.create(); .create();
String id3 = getChangeId(testRepo, c3).get(); String id3 = getChangeId(testRepo, c3).get();
pushHead(git, "refs/for/master", false); pushHead(testRepo, "refs/for/master", false);
PatchSet.Id c1ps2 = getPatchSetId(c1); PatchSet.Id c1ps2 = getPatchSetId(c1);
PatchSet.Id c2ps2 = getPatchSetId(c2); PatchSet.Id c2ps2 = getPatchSetId(c2);
PatchSet.Id c3ps1 = getPatchSetId(c3); PatchSet.Id c3ps1 = getPatchSetId(c3);
@@ -197,7 +197,7 @@ public class GetRelatedIT extends AbstractDaemonTest {
.message("subject: 3") .message("subject: 3")
.create(); .create();
String id3 = getChangeId(testRepo, c3).get(); String id3 = getChangeId(testRepo, c3).get();
pushHead(git, "refs/for/master", false); pushHead(testRepo, "refs/for/master", false);
Change ch2 = getChange(c2).change(); Change ch2 = getChange(c2).change();
editModifier.createEdit(ch2, getPatchSet(ch2)); editModifier.createEdit(ch2, getPatchSet(ch2));

View File

@@ -55,7 +55,7 @@ public class PatchListCacheIT extends AbstractDaemonTest {
.add(FILE_D, "4") .add(FILE_D, "4")
.message(SUBJECT_1) .message(SUBJECT_1)
.create(); .create();
pushHead(git, "refs/heads/master", false); pushHead(testRepo, "refs/heads/master", false);
// Change 1, 1 (+FILE_A, -FILE_D) // Change 1, 1 (+FILE_A, -FILE_D)
RevCommit c = commitBuilder() RevCommit c = commitBuilder()
@@ -65,7 +65,7 @@ public class PatchListCacheIT extends AbstractDaemonTest {
.insertChangeId() .insertChangeId()
.create(); .create();
String id = getChangeId(testRepo, c).get(); String id = getChangeId(testRepo, c).get();
pushHead(git, "refs/for/master", false); pushHead(testRepo, "refs/for/master", false);
// Compare Change 1,1 with Base (+FILE_A, -FILE_D) // Compare Change 1,1 with Base (+FILE_A, -FILE_D)
List<PatchListEntry> entries = getCurrentPatches(id); List<PatchListEntry> entries = getCurrentPatches(id);
@@ -78,7 +78,7 @@ public class PatchListCacheIT extends AbstractDaemonTest {
c = amendBuilder() c = amendBuilder()
.add(FILE_B, "2") .add(FILE_B, "2")
.create(); .create();
pushHead(git, "refs/for/master", false); pushHead(testRepo, "refs/for/master", false);
entries = getCurrentPatches(id); entries = getCurrentPatches(id);
// Compare Change 1,2 with Base (+FILE_A, +FILE_B, -FILE_D) // Compare Change 1,2 with Base (+FILE_A, +FILE_B, -FILE_D)
@@ -95,7 +95,7 @@ public class PatchListCacheIT extends AbstractDaemonTest {
.add(FILE_D, "4") .add(FILE_D, "4")
.message(SUBJECT_1) .message(SUBJECT_1)
.create(); .create();
pushHead(git, "refs/heads/master", false); pushHead(testRepo, "refs/heads/master", false);
// Change 1,1 (+FILE_A, -FILE_D) // Change 1,1 (+FILE_A, -FILE_D)
RevCommit c = commitBuilder() RevCommit c = commitBuilder()
@@ -104,7 +104,7 @@ public class PatchListCacheIT extends AbstractDaemonTest {
.message(SUBJECT_2) .message(SUBJECT_2)
.create(); .create();
String id = getChangeId(testRepo, c).get(); String id = getChangeId(testRepo, c).get();
pushHead(git, "refs/for/master", false); pushHead(testRepo, "refs/for/master", false);
List<PatchListEntry> entries = getCurrentPatches(id); List<PatchListEntry> entries = getCurrentPatches(id);
assertThat(entries).hasSize(3); assertThat(entries).hasSize(3);
assertAdded(Patch.COMMIT_MSG, entries.get(0)); assertAdded(Patch.COMMIT_MSG, entries.get(0));
@@ -117,11 +117,11 @@ public class PatchListCacheIT extends AbstractDaemonTest {
.add(FILE_B, "2") .add(FILE_B, "2")
.message(SUBJECT_3) .message(SUBJECT_3)
.create(); .create();
pushHead(git, "refs/for/master", false); pushHead(testRepo, "refs/for/master", false);
// Change 1,2 (+FILE_A, -FILE_D)) // Change 1,2 (+FILE_A, -FILE_D))
testRepo.cherryPick(c); testRepo.cherryPick(c);
pushHead(git, "refs/for/master", false); pushHead(testRepo, "refs/for/master", false);
// Compare Change 1,2 with Base (+FILE_A, -FILE_D)) // Compare Change 1,2 with Base (+FILE_A, -FILE_D))
entries = getCurrentPatches(id); entries = getCurrentPatches(id);
@@ -137,7 +137,7 @@ public class PatchListCacheIT extends AbstractDaemonTest {
.add(FILE_D, "4") .add(FILE_D, "4")
.message(SUBJECT_1) .message(SUBJECT_1)
.create(); .create();
pushHead(git, "refs/heads/master", false); pushHead(testRepo, "refs/heads/master", false);
// Change 1,1 (+FILE_A, +FILE_C, -FILE_D) // Change 1,1 (+FILE_A, +FILE_C, -FILE_D)
RevCommit a = commitBuilder() RevCommit a = commitBuilder()
@@ -146,14 +146,14 @@ public class PatchListCacheIT extends AbstractDaemonTest {
.rm(FILE_D) .rm(FILE_D)
.message(SUBJECT_2) .message(SUBJECT_2)
.create(); .create();
pushHead(git, "refs/for/master", false); pushHead(testRepo, "refs/for/master", false);
// Change 1,2 (+FILE_A, +FILE_B, -FILE_D) // Change 1,2 (+FILE_A, +FILE_B, -FILE_D)
RevCommit b = amendBuilder() RevCommit b = amendBuilder()
.add(FILE_B, "2") .add(FILE_B, "2")
.rm(FILE_C) .rm(FILE_C)
.create(); .create();
pushHead(git, "refs/for/master", false); pushHead(testRepo, "refs/for/master", false);
// Compare Change 1,1 with Change 1,2 (+FILE_B) // Compare Change 1,1 with Change 1,2 (+FILE_B)
List<PatchListEntry> entries = getPatches(a, b); List<PatchListEntry> entries = getPatches(a, b);
@@ -168,7 +168,7 @@ public class PatchListCacheIT extends AbstractDaemonTest {
.add(FILE_D, "4") .add(FILE_D, "4")
.message(SUBJECT_1) .message(SUBJECT_1)
.create(); .create();
pushHead(git, "refs/heads/master", false); pushHead(testRepo, "refs/heads/master", false);
// Change 1,1 (+FILE_A, -FILE_D) // Change 1,1 (+FILE_A, -FILE_D)
RevCommit a = commitBuilder() RevCommit a = commitBuilder()
@@ -176,7 +176,7 @@ public class PatchListCacheIT extends AbstractDaemonTest {
.rm(FILE_D) .rm(FILE_D)
.message(SUBJECT_2) .message(SUBJECT_2)
.create(); .create();
pushHead(git, "refs/for/master", false); pushHead(testRepo, "refs/for/master", false);
// Change 2,1 (+FILE_B) // Change 2,1 (+FILE_B)
testRepo.reset("HEAD~1"); testRepo.reset("HEAD~1");
@@ -184,14 +184,14 @@ public class PatchListCacheIT extends AbstractDaemonTest {
.add(FILE_B, "2") .add(FILE_B, "2")
.message(SUBJECT_3) .message(SUBJECT_3)
.create(); .create();
pushHead(git, "refs/for/master", false); pushHead(testRepo, "refs/for/master", false);
// Change 1,2 (+FILE_A, +FILE_C, -FILE_D) // Change 1,2 (+FILE_A, +FILE_C, -FILE_D)
testRepo.cherryPick(a); testRepo.cherryPick(a);
RevCommit b = amendBuilder() RevCommit b = amendBuilder()
.add(FILE_C, "2") .add(FILE_C, "2")
.create(); .create();
pushHead(git, "refs/for/master", false); pushHead(testRepo, "refs/for/master", false);
// Compare Change 1,1 with Change 1,2 (+FILE_C) // Compare Change 1,1 with Change 1,2 (+FILE_C)
List<PatchListEntry> entries = getPatches(a, b); List<PatchListEntry> entries = getPatches(a, b);

View File

@@ -42,7 +42,7 @@ public class BanCommitIT extends AbstractDaemonTest {
.that(sshSession.hasError()).isFalse(); .that(sshSession.hasError()).isFalse();
assertThat(response.toLowerCase(Locale.US)).doesNotContain("error"); assertThat(response.toLowerCase(Locale.US)).doesNotContain("error");
PushResult pushResult = pushHead(git, "refs/heads/master", false); PushResult pushResult = pushHead(testRepo, "refs/heads/master", false);
assertThat(pushResult.getRemoteUpdate("refs/heads/master").getMessage()) assertThat(pushResult.getRemoteUpdate("refs/heads/master").getMessage())
.startsWith("contains banned commit"); .startsWith("contains banned commit");
} }