Close RevWalks in tests

Change-Id: Id28804ace2572e8f659271660e78454a0d6ccc49
Signed-off-by: Thomas Wolf <thomas.wolf@paranor.ch>
This commit is contained in:
Thomas Wolf 2019-10-16 17:49:52 +02:00 committed by Matthias Sohn
parent 88bd901492
commit 762f6212b4
7 changed files with 422 additions and 359 deletions

View File

@ -2136,11 +2136,13 @@ public void testFastForwardRebaseWithAutoStash() throws Exception {
private List<DiffEntry> getStashedDiff() throws AmbiguousObjectException,
IncorrectObjectTypeException, IOException, MissingObjectException {
ObjectId stashId = db.resolve("stash@{0}");
RevWalk revWalk = new RevWalk(db);
try (RevWalk revWalk = new RevWalk(db)) {
RevCommit stashCommit = revWalk.parseCommit(stashId);
List<DiffEntry> diffs = diffWorkingAgainstHead(stashCommit, revWalk);
List<DiffEntry> diffs = diffWorkingAgainstHead(stashCommit,
revWalk);
return diffs;
}
}
private TreeWalk createTreeWalk() {
TreeWalk walk = new TreeWalk(db);

View File

@ -680,19 +680,21 @@ private FileRepository setupRepoForShallowFetch() throws Exception {
private static PackIndex writePack(FileRepository repo,
Set<? extends ObjectId> want, Set<ObjectIdSet> excludeObjects)
throws IOException {
RevWalk walk = new RevWalk(repo);
try (RevWalk walk = new RevWalk(repo)) {
return writePack(repo, walk, 0, want, NONE, excludeObjects);
}
}
private static PackIndex writeShallowPack(FileRepository repo, int depth,
Set<? extends ObjectId> want, Set<? extends ObjectId> have,
Set<? extends ObjectId> shallow) throws IOException {
// During negotiation, UploadPack would have set up a DepthWalk and
// marked the client's "shallow" commits. Emulate that here.
DepthWalk.RevWalk walk = new DepthWalk.RevWalk(repo, depth - 1);
try (DepthWalk.RevWalk walk = new DepthWalk.RevWalk(repo, depth - 1)) {
walk.assumeShallow(shallow);
return writePack(repo, walk, depth, want, have, EMPTY_ID_SET);
}
}
private static PackIndex writePack(FileRepository repo, RevWalk walk,
int depth, Set<? extends ObjectId> want,
@ -707,6 +709,7 @@ private static PackIndex writePack(FileRepository repo, RevWalk walk,
if (depth > 0) {
pw.setShallowPack(depth, null);
}
// ow doesn't need to be closed; caller closes walk.
ObjectWalk ow = walk.toObjectWalkWithSameObjects();
pw.preparePack(NullProgressMonitor.INSTANCE, ow, want, have, NONE);

View File

@ -441,8 +441,9 @@ public void testUpdate_RefusesRefsTxnNamespace() throws IOException {
ReceiveCommand cmd = command(null, B, "refs/txn/tmp");
BatchRefUpdate batch = refdb.newBatchUpdate();
batch.addCommand(cmd);
batch.execute(new RevWalk(repo), NullProgressMonitor.INSTANCE);
try (RevWalk rw = new RevWalk(repo)) {
batch.execute(rw, NullProgressMonitor.INSTANCE);
}
assertEquals(REJECTED_OTHER_REASON, cmd.getResult());
assertEquals(MessageFormat.format(JGitText.get().invalidRefName,
"refs/txn/tmp"), cmd.getMessage());
@ -461,8 +462,9 @@ public void testUpdate_RefusesDotLockInRefName() throws IOException {
ReceiveCommand cmd = command(null, B, "refs/heads/pu.lock");
BatchRefUpdate batch = refdb.newBatchUpdate();
batch.addCommand(cmd);
batch.execute(new RevWalk(repo), NullProgressMonitor.INSTANCE);
try (RevWalk rw = new RevWalk(repo)) {
batch.execute(rw, NullProgressMonitor.INSTANCE);
}
assertEquals(REJECTED_OTHER_REASON, cmd.getResult());
assertEquals(JGitText.get().funnyRefname, cmd.getMessage());
assertEquals(txnId, getTxnCommitted());
@ -481,7 +483,9 @@ public void testUpdate_RefusesOrigHeadOnBare() throws IOException {
ReceiveCommand cmd = command(null, B, ORIG_HEAD);
BatchRefUpdate batch = refdb.newBatchUpdate();
batch.addCommand(cmd);
batch.execute(new RevWalk(repo), NullProgressMonitor.INSTANCE);
try (RevWalk rw = new RevWalk(repo)) {
batch.execute(rw, NullProgressMonitor.INSTANCE);
}
assertEquals(REJECTED_OTHER_REASON, cmd.getResult());
assertEquals(
MessageFormat.format(JGitText.get().invalidRefName, ORIG_HEAD),
@ -500,7 +504,9 @@ public void testBatchRefUpdate_NonFastForwardAborts() throws IOException {
command(B, A, "refs/heads/masters"));
BatchRefUpdate batchUpdate = refdb.newBatchUpdate();
batchUpdate.addCommand(commands);
batchUpdate.execute(new RevWalk(repo), NullProgressMonitor.INSTANCE);
try (RevWalk rw = new RevWalk(repo)) {
batchUpdate.execute(rw, NullProgressMonitor.INSTANCE);
}
assertEquals(txnId, getTxnCommitted());
assertEquals(REJECTED_NONFASTFORWARD,
@ -523,7 +529,9 @@ public void testBatchRefUpdate_ForceUpdate() throws IOException {
BatchRefUpdate batchUpdate = refdb.newBatchUpdate();
batchUpdate.setAllowNonFastForwards(true);
batchUpdate.addCommand(commands);
batchUpdate.execute(new RevWalk(repo), NullProgressMonitor.INSTANCE);
try (RevWalk rw = new RevWalk(repo)) {
batchUpdate.execute(rw, NullProgressMonitor.INSTANCE);
}
assertNotEquals(txnId, getTxnCommitted());
Map<String, Ref> refs = refdb.getRefs(ALL);
@ -547,13 +555,15 @@ public void testBatchRefUpdate_NonFastForwardDoesNotDoExpensiveMergeCheck()
BatchRefUpdate batchUpdate = refdb.newBatchUpdate();
batchUpdate.setAllowNonFastForwards(true);
batchUpdate.addCommand(commands);
batchUpdate.execute(new RevWalk(repo) {
try (RevWalk rw = new RevWalk(repo) {
@Override
public boolean isMergedInto(RevCommit base, RevCommit tip) {
fail("isMergedInto() should not be called");
return false;
}
}, NullProgressMonitor.INSTANCE);
}) {
batchUpdate.execute(rw, NullProgressMonitor.INSTANCE);
}
assertNotEquals(txnId, getTxnCommitted());
Map<String, Ref> refs = refdb.getRefs(ALL);
@ -574,7 +584,9 @@ public void testBatchRefUpdate_ConflictCausesAbort() throws IOException {
BatchRefUpdate batchUpdate = refdb.newBatchUpdate();
batchUpdate.setAllowNonFastForwards(true);
batchUpdate.addCommand(commands);
batchUpdate.execute(new RevWalk(repo), NullProgressMonitor.INSTANCE);
try (RevWalk rw = new RevWalk(repo)) {
batchUpdate.execute(rw, NullProgressMonitor.INSTANCE);
}
assertEquals(txnId, getTxnCommitted());
assertEquals(LOCK_FAILURE, commands.get(0).getResult());
@ -601,7 +613,9 @@ public void testBatchRefUpdate_NoConflictIfDeleted() throws IOException {
BatchRefUpdate batchUpdate = refdb.newBatchUpdate();
batchUpdate.setAllowNonFastForwards(true);
batchUpdate.addCommand(commands);
batchUpdate.execute(new RevWalk(repo), NullProgressMonitor.INSTANCE);
try (RevWalk rw = new RevWalk(repo)) {
batchUpdate.execute(rw, NullProgressMonitor.INSTANCE);
}
assertNotEquals(txnId, getTxnCommitted());
assertEquals(OK, commands.get(0).getResult());

View File

@ -44,7 +44,6 @@
import static org.junit.Assert.assertEquals;
import java.io.IOException;
import java.util.LinkedList;
import java.util.List;
@ -55,7 +54,6 @@
import org.eclipse.jgit.junit.RepositoryTestCase;
import org.eclipse.jgit.lib.ObjectId;
import org.eclipse.jgit.lib.Ref;
import org.eclipse.jgit.lib.Repository;
import org.junit.Before;
import org.junit.Test;
@ -83,7 +81,11 @@ public void testDrawTextAlignment() throws Exception {
git.commit().setMessage("commit on master").call();
MergeResult mergeCall = merge(db.resolve("topic"));
ObjectId start = mergeCall.getNewHead();
PlotCommitList<PlotLane> commitList = createCommitList(start);
try (PlotWalk walk = new PlotWalk(db)) {
walk.markStart(walk.parseCommit(start));
PlotCommitList<PlotLane> commitList = new PlotCommitList<>();
commitList.source(walk);
commitList.fillTo(1000);
for (int i = 0; i < commitList.size(); i++)
plotRenderer.paintCommit(commitList.get(i), 30);
@ -91,15 +93,6 @@ public void testDrawTextAlignment() throws Exception {
List<Integer> indentations = plotRenderer.indentations;
assertEquals(indentations.get(2), indentations.get(3));
}
private PlotCommitList<PlotLane> createCommitList(ObjectId start)
throws IOException {
TestPlotWalk walk = new TestPlotWalk(db);
walk.markStart(walk.parseCommit(start));
PlotCommitList<PlotLane> commitList = new PlotCommitList<>();
commitList.source(walk);
commitList.fillTo(1000);
return commitList;
}
private MergeResult merge(ObjectId includeId) throws GitAPIException {
@ -107,12 +100,6 @@ private MergeResult merge(ObjectId includeId) throws GitAPIException {
.include(includeId).call();
}
private static class TestPlotWalk extends PlotWalk {
public TestPlotWalk(Repository repo) {
super(repo);
}
}
private static class TestPlotRenderer extends
AbstractPlotRenderer<PlotLane, Object> {

View File

@ -135,7 +135,7 @@ public void testLinear() throws Exception {
final RevCommit b = commit(a);
final RevCommit c = commit(b);
PlotWalk pw = new PlotWalk(db);
try (PlotWalk pw = new PlotWalk(db)) {
pw.markStart(pw.lookupCommit(c.getId()));
PlotCommitList<PlotLane> pcl = new PlotCommitList<>();
@ -148,6 +148,7 @@ public void testLinear() throws Exception {
test.commit(a).lanePos(0).parents();
test.noMoreCommits();
}
}
@Test
public void testMerged() throws Exception {
@ -156,7 +157,7 @@ public void testMerged() throws Exception {
final RevCommit c = commit(a);
final RevCommit d = commit(b, c);
PlotWalk pw = new PlotWalk(db);
try (PlotWalk pw = new PlotWalk(db)) {
pw.markStart(pw.lookupCommit(d.getId()));
PlotCommitList<PlotLane> pcl = new PlotCommitList<>();
@ -170,6 +171,7 @@ public void testMerged() throws Exception {
test.commit(a).lanePos(0).parents();
test.noMoreCommits();
}
}
@Test
public void testSideBranch() throws Exception {
@ -177,7 +179,7 @@ public void testSideBranch() throws Exception {
final RevCommit b = commit(a);
final RevCommit c = commit(a);
PlotWalk pw = new PlotWalk(db);
try (PlotWalk pw = new PlotWalk(db)) {
pw.markStart(pw.lookupCommit(b.getId()));
pw.markStart(pw.lookupCommit(c.getId()));
@ -192,6 +194,7 @@ public void testSideBranch() throws Exception {
test.commit(a).lanePos(0).parents();
test.noMoreCommits();
}
}
@Test
public void test2SideBranches() throws Exception {
@ -200,7 +203,7 @@ public void test2SideBranches() throws Exception {
final RevCommit c = commit(a);
final RevCommit d = commit(a);
PlotWalk pw = new PlotWalk(db);
try (PlotWalk pw = new PlotWalk(db)) {
pw.markStart(pw.lookupCommit(b.getId()));
pw.markStart(pw.lookupCommit(c.getId()));
pw.markStart(pw.lookupCommit(d.getId()));
@ -217,6 +220,7 @@ public void test2SideBranches() throws Exception {
test.commit(a).lanePos(0).parents();
test.noMoreCommits();
}
}
@Test
public void testBug300282_1() throws Exception {
@ -228,10 +232,10 @@ public void testBug300282_1() throws Exception {
final RevCommit f = commit(a);
final RevCommit g = commit(f);
PlotWalk pw = new PlotWalk(db);
// TODO: when we add unnecessary commit's as tips (e.g. a commit which
// is a parent of another tip) the walk will return those commits twice.
// Find out why!
try (PlotWalk pw = new PlotWalk(db)) {
// TODO: when we add unnecessary commit's as tips (e.g. a commit
// which is a parent of another tip) the walk will return those
// commits twice. Find out why!
// pw.markStart(pw.lookupCommit(a.getId()));
pw.markStart(pw.lookupCommit(b.getId()));
pw.markStart(pw.lookupCommit(c.getId()));
@ -257,6 +261,7 @@ public void testBug300282_1() throws Exception {
test.commit(a).lanePos(0).parents();
test.noMoreCommits();
}
}
@Test
public void testBug368927() throws Exception {
@ -270,7 +275,7 @@ public void testBug368927() throws Exception {
final RevCommit h = commit(f);
final RevCommit i = commit(h);
PlotWalk pw = new PlotWalk(db);
try (PlotWalk pw = new PlotWalk(db)) {
pw.markStart(pw.lookupCommit(i.getId()));
pw.markStart(pw.lookupCommit(g.getId()));
@ -290,6 +295,7 @@ public void testBug368927() throws Exception {
test.commit(b).lanePos(posI).parents(a);
test.commit(a).lanePos(0).parents();
}
}
// test the history of the egit project between 9fdaf3c1 and e76ad9170f
@Test
@ -330,7 +336,7 @@ public void testEgitHistory() throws Exception {
final RevCommit merge_fixed_logged_npe = commit(sort_roots,
fix_logged_npe);
PlotWalk pw = new PlotWalk(db);
try (PlotWalk pw = new PlotWalk(db)) {
pw.markStart(pw.lookupCommit(merge_fixed_logged_npe.getId()));
PlotCommitList<PlotLane> pcl = new PlotCommitList<>();
@ -339,19 +345,22 @@ public void testEgitHistory() throws Exception {
CommitListAssert test = new CommitListAssert(pcl);
// Note: all positions of side branches are rather arbitrary, but some
// Note: all positions of side branches are rather arbitrary, but
// some
// may not overlap. Testing for the positions yielded by the current
// implementation, which was manually checked to not overlap.
final int mainPos = 0;
test.commit(merge_fixed_logged_npe).parents(sort_roots, fix_logged_npe)
.lanePos(mainPos);
test.commit(merge_fixed_logged_npe)
.parents(sort_roots, fix_logged_npe).lanePos(mainPos);
test.commit(fix_logged_npe).parents(merge_changeset_implementation)
.lanePos(1);
test.commit(sort_roots).parents(merge_update_eclipse).lanePos(mainPos);
test.commit(merge_update_eclipse).parents(add_a_clear, update_eclipse)
test.commit(sort_roots).parents(merge_update_eclipse)
.lanePos(mainPos);
test.commit(merge_update_eclipse)
.parents(add_a_clear, update_eclipse).lanePos(mainPos);
test.commit(add_a_clear).parents(fix_broken).lanePos(mainPos);
test.commit(fix_broken).parents(merge_disable_comment).lanePos(mainPos);
test.commit(fix_broken).parents(merge_disable_comment)
.lanePos(mainPos);
test.commit(merge_disable_comment)
.parents(merge_resolve_handler, disable_comment)
.lanePos(mainPos);
@ -370,8 +379,8 @@ public void testEgitHistory() throws Exception {
test.commit(update_eclipse_iplog2).parents(merge_use_remote)
.lanePos(mainPos);
test.commit(disable_source).parents(merge_use_remote).lanePos(1);
test.commit(merge_use_remote).parents(update_eclipse_iplog, use_remote)
.lanePos(mainPos);
test.commit(merge_use_remote)
.parents(update_eclipse_iplog, use_remote).lanePos(mainPos);
test.commit(changeset_implementation).parents(clear_repositorycache)
.lanePos(2);
test.commit(update_eclipse_iplog).parents(merge_add_Maven)
@ -392,6 +401,7 @@ public void testEgitHistory() throws Exception {
test.commit(merge_fix).parents().lanePos(mainPos);
test.noMoreCommits();
}
}
// test a history where a merge commit has two time the same parent
@Test
@ -403,7 +413,7 @@ public void testDuplicateParents() throws Exception {
final RevCommit s1 = commit(m2);
final RevCommit s2 = commit(s1);
PlotWalk pw = new PlotWalk(db);
try (PlotWalk pw = new PlotWalk(db)) {
pw.markStart(pw.lookupCommit(m3));
pw.markStart(pw.lookupCommit(s2));
PlotCommitList<PlotLane> pcl = new PlotCommitList<>();
@ -418,6 +428,7 @@ public void testDuplicateParents() throws Exception {
test.commit(m1).nrOfPassingLanes(0);
test.noMoreCommits();
}
}
/**
* The graph shows the problematic original positioning. Due to this some
@ -465,7 +476,7 @@ public void testBug419359() throws Exception {
final RevCommit a4 = commit(a3);
final RevCommit a5 = commit(a3, a4);
PlotWalk pw = new PlotWalk(db);
try (PlotWalk pw = new PlotWalk(db)) {
pw.markStart(pw.lookupCommit(b3.getId()));
pw.markStart(pw.lookupCommit(c.getId()));
pw.markStart(pw.lookupCommit(e.getId()));
@ -490,6 +501,7 @@ public void testBug419359() throws Exception {
assertNotEquals("b lane is blocked by d", bPos,
pcl.get(5).lane.position);
}
}
/**
* <pre>
@ -517,7 +529,7 @@ public void testMultipleMerges() throws Exception {
final RevCommit a4 = commit(a3, b2);
final RevCommit b3 = commit(b2);
PlotWalk pw = new PlotWalk(db);
try (PlotWalk pw = new PlotWalk(db)) {
pw.markStart(pw.lookupCommit(a4));
pw.markStart(pw.lookupCommit(b3));
PlotCommitList<PlotLane> pcl = new PlotCommitList<>();
@ -535,6 +547,7 @@ public void testMultipleMerges() throws Exception {
test.commit(a1).lanePos(posA);
test.noMoreCommits();
}
}
/**
* <pre>
@ -562,7 +575,7 @@ public void testMergeBlockedBySelf() throws Exception {
final RevCommit b3 = commit(b2);
final RevCommit a4 = commit(a3);
PlotWalk pw = new PlotWalk(db);
try (PlotWalk pw = new PlotWalk(db)) {
pw.markStart(pw.lookupCommit(a4));
pw.markStart(pw.lookupCommit(b3));
PlotCommitList<PlotLane> pcl = new PlotCommitList<>();
@ -582,6 +595,7 @@ public void testMergeBlockedBySelf() throws Exception {
test.commit(a1).lanePos(posA);
test.noMoreCommits();
}
}
/**
* <pre>
@ -611,7 +625,7 @@ public void testMergeBlockedByOther() throws Exception {
final RevCommit a4 = commit(a3, b1);
final RevCommit b2 = commit(b1);
PlotWalk pw = new PlotWalk(db);
try (PlotWalk pw = new PlotWalk(db)) {
pw.markStart(pw.lookupCommit(a4));
pw.markStart(pw.lookupCommit(b2));
pw.markStart(pw.lookupCommit(c));
@ -630,6 +644,7 @@ public void testMergeBlockedByOther() throws Exception {
test.commit(a1).lanePos(posA);
test.noMoreCommits();
}
}
/**
* <pre>
@ -651,7 +666,7 @@ public void testDanglingCommitShouldContinueLane() throws Exception {
final RevCommit a3 = commit(a2);
final RevCommit b1 = commit(a1);
PlotWalk pw = new PlotWalk(db);
try (PlotWalk pw = new PlotWalk(db)) {
pw.markStart(pw.lookupCommit(a3));
pw.markStart(pw.lookupCommit(b1));
PlotCommitList<PlotLane> pcl = new PlotCommitList<>();
@ -660,7 +675,8 @@ public void testDanglingCommitShouldContinueLane() throws Exception {
Set<Integer> positions = asSet(0, 1);
CommitListAssert test = new CommitListAssert(pcl);
PlotLane laneB = test.commit(b1).lanePos(positions).current.getLane();
PlotLane laneB = test.commit(b1).lanePos(positions).current
.getLane();
int posA = test.commit(a3).lanePos(positions).getLanePos();
test.commit(a2).lanePos(posA);
assertArrayEquals(
@ -668,13 +684,14 @@ public void testDanglingCommitShouldContinueLane() throws Exception {
new PlotLane[] { laneB }, test.current.passingLanes);
test.noMoreCommits();
}
}
@Test
public void testTwoRoots1() throws Exception {
final RevCommit a = commit();
final RevCommit b = commit();
PlotWalk pw = new PlotWalk(db);
try (PlotWalk pw = new PlotWalk(db)) {
pw.markStart(pw.lookupCommit(a));
pw.markStart(pw.lookupCommit(b));
PlotCommitList<PlotLane> pcl = new PlotCommitList<>();
@ -686,6 +703,7 @@ public void testTwoRoots1() throws Exception {
test.commit(a).lanePos(0);
test.noMoreCommits();
}
}
@Test
public void testTwoRoots2() throws Exception {
@ -693,7 +711,7 @@ public void testTwoRoots2() throws Exception {
final RevCommit b1 = commit();
final RevCommit b2 = commit(b1);
PlotWalk pw = new PlotWalk(db);
try (PlotWalk pw = new PlotWalk(db)) {
pw.markStart(pw.lookupCommit(a));
pw.markStart(pw.lookupCommit(b2));
PlotCommitList<PlotLane> pcl = new PlotCommitList<>();
@ -706,4 +724,5 @@ public void testTwoRoots2() throws Exception {
test.commit(a).lanePos(0);
test.noMoreCommits();
}
}
}

View File

@ -107,18 +107,18 @@ public void testParse_NoParents() throws Exception {
body.append("\n");
final RevWalk rw = new RevWalk(db);
final RevCommit c;
c = new RevCommit(id("9473095c4cb2f12aefe1db8a355fe3fafba42f67"));
assertNull(c.getTree());
assertNull(c.parents);
try (RevWalk rw = new RevWalk(db)) {
c.parseCanonical(rw, body.toString().getBytes(UTF_8));
assertNotNull(c.getTree());
assertEquals(treeId, c.getTree().getId());
assertSame(rw.lookupTree(treeId), c.getTree());
}
assertNotNull(c.parents);
assertEquals(0, c.parents.length);
assertEquals("", c.getFullMessage());
@ -148,9 +148,11 @@ private RevCommit create(String msg) throws Exception {
final RevCommit c;
c = new RevCommit(id("9473095c4cb2f12aefe1db8a355fe3fafba42f67"));
c.parseCanonical(new RevWalk(db), b.toString().getBytes(UTF_8));
try (RevWalk rw = new RevWalk(db)) {
c.parseCanonical(rw, b.toString().getBytes(UTF_8));
return c;
}
}
@Test
public void testParse_WeirdHeaderOnlyCommit() throws Exception {
@ -161,8 +163,9 @@ public void testParse_WeirdHeaderOnlyCommit() throws Exception {
final RevCommit c;
c = new RevCommit(id("9473095c4cb2f12aefe1db8a355fe3fafba42f67"));
c.parseCanonical(new RevWalk(db), b.toString().getBytes(UTF_8));
try (RevWalk rw = new RevWalk(db)) {
c.parseCanonical(rw, b.toString().getBytes(UTF_8));
}
assertEquals("", c.getFullMessage());
assertEquals("", c.getShortMessage());
}
@ -176,8 +179,9 @@ public void testParse_incompleteAuthorAndCommitter() throws Exception {
final RevCommit c;
c = new RevCommit(id("9473095c4cb2f12aefe1db8a355fe3fafba42f67"));
c.parseCanonical(new RevWalk(db), b.toString().getBytes(UTF_8));
try (RevWalk rw = new RevWalk(db)) {
c.parseCanonical(rw, b.toString().getBytes(UTF_8));
}
assertEquals(new PersonIdent("", "a_u_thor@example.com", 1218123387000l, 7), c.getAuthorIdent());
assertEquals(new PersonIdent("", "", 1218123390000l, -5), c.getCommitterIdent());
}
@ -194,8 +198,9 @@ public void testParse_implicit_UTF8_encoded() throws Exception {
b.write("\u304d\u308c\u3044\n".getBytes(UTF_8));
final RevCommit c;
c = new RevCommit(id("9473095c4cb2f12aefe1db8a355fe3fafba42f67")); // bogus id
c.parseCanonical(new RevWalk(db), b.toByteArray());
try (RevWalk rw = new RevWalk(db)) {
c.parseCanonical(rw, b.toByteArray());
}
assertSame(UTF_8, c.getEncoding());
assertEquals("F\u00f6r fattare", c.getAuthorIdent().getName());
assertEquals("Sm\u00f6rg\u00e5sbord", c.getShortMessage());
@ -214,8 +219,9 @@ public void testParse_implicit_mixed_encoded() throws Exception {
b.write("\u304d\u308c\u3044\n".getBytes(UTF_8));
final RevCommit c;
c = new RevCommit(id("9473095c4cb2f12aefe1db8a355fe3fafba42f67")); // bogus id
c.parseCanonical(new RevWalk(db), b.toByteArray());
try (RevWalk rw = new RevWalk(db)) {
c.parseCanonical(rw, b.toByteArray());
}
assertSame(UTF_8, c.getEncoding());
assertEquals("F\u00f6r fattare", c.getAuthorIdent().getName());
assertEquals("Sm\u00f6rg\u00e5sbord", c.getShortMessage());
@ -240,7 +246,9 @@ public void testParse_explicit_encoded() throws Exception {
b.write("Hi\n".getBytes("EUC-JP"));
final RevCommit c;
c = new RevCommit(id("9473095c4cb2f12aefe1db8a355fe3fafba42f67")); // bogus id
c.parseCanonical(new RevWalk(db), b.toByteArray());
try (RevWalk rw = new RevWalk(db)) {
c.parseCanonical(rw, b.toByteArray());
}
assertEquals("EUC-JP", c.getEncoding().name());
assertEquals("F\u00f6r fattare", c.getAuthorIdent().getName());
@ -270,7 +278,9 @@ public void testParse_explicit_bad_encoded() throws Exception {
b.write("Hi\n".getBytes(UTF_8));
final RevCommit c;
c = new RevCommit(id("9473095c4cb2f12aefe1db8a355fe3fafba42f67")); // bogus id
c.parseCanonical(new RevWalk(db), b.toByteArray());
try (RevWalk rw = new RevWalk(db)) {
c.parseCanonical(rw, b.toByteArray());
}
assertEquals("EUC-JP", c.getEncoding().name());
assertEquals("F\u00f6r fattare", c.getAuthorIdent().getName());
@ -301,7 +311,9 @@ public void testParse_explicit_bad_encoded2() throws Exception {
b.write("Hi\n".getBytes(UTF_8));
final RevCommit c;
c = new RevCommit(id("9473095c4cb2f12aefe1db8a355fe3fafba42f67")); // bogus id
c.parseCanonical(new RevWalk(db), b.toByteArray());
try (RevWalk rw = new RevWalk(db)) {
c.parseCanonical(rw, b.toByteArray());
}
assertEquals("ISO-8859-1", c.getEncoding().name());
assertEquals("F\u00f6r fattare", c.getAuthorIdent().getName());
@ -323,7 +335,9 @@ public void testParse_incorrectUtf8Name() throws Exception {
RevCommit c = new RevCommit(
id("9473095c4cb2f12aefe1db8a355fe3fafba42f67"));
c.parseCanonical(new RevWalk(db), b.toByteArray());
try (RevWalk rw = new RevWalk(db)) {
c.parseCanonical(rw, b.toByteArray());
}
assertEquals("'utf8'", c.getEncodingName());
assertEquals("Sm\u00f6rg\u00e5sbord\n", c.getFullMessage());
@ -347,7 +361,9 @@ public void testParse_illegalEncoding() throws Exception {
RevCommit c = new RevCommit(
id("9473095c4cb2f12aefe1db8a355fe3fafba42f67"));
c.parseCanonical(new RevWalk(db), b.toByteArray());
try (RevWalk rw = new RevWalk(db)) {
c.parseCanonical(rw, b.toByteArray());
}
assertEquals("utf-8logoutputencoding=gbk", c.getEncodingName());
assertEquals("message\n", c.getFullMessage());
assertEquals("message", c.getShortMessage());
@ -374,7 +390,9 @@ public void testParse_unsupportedEncoding() throws Exception {
RevCommit c = new RevCommit(
id("9473095c4cb2f12aefe1db8a355fe3fafba42f67"));
c.parseCanonical(new RevWalk(db), b.toByteArray());
try (RevWalk rw = new RevWalk(db)) {
c.parseCanonical(rw, b.toByteArray());
}
assertEquals("it_IT.UTF8", c.getEncodingName());
assertEquals("message\n", c.getFullMessage());
assertEquals("message", c.getShortMessage());
@ -507,7 +525,9 @@ public void testParse_gpgSig() throws Exception {
final RevCommit c;
c = new RevCommit(id("9473095c4cb2f12aefe1db8a355fe3fafba42f67"));
c.parseCanonical(new RevWalk(db), commit.getBytes(UTF_8));
try (RevWalk rw = new RevWalk(db)) {
c.parseCanonical(rw, commit.getBytes(UTF_8));
}
String gpgSig = new String(c.getRawGpgSignature(), UTF_8);
assertTrue(gpgSig.startsWith("-----BEGIN"));
assertTrue(gpgSig.endsWith("END PGP SIGNATURE-----"));

View File

@ -91,18 +91,19 @@ private void testOneType(int typeCode) throws Exception {
b.append("tagger A U. Thor <a_u_thor@example.com> 1218123387 +0700\n");
b.append("\n");
final RevWalk rw = new RevWalk(db);
final RevTag c;
c = new RevTag(id("9473095c4cb2f12aefe1db8a355fe3fafba42f67"));
assertNull(c.getObject());
assertNull(c.getTagName());
try (RevWalk rw = new RevWalk(db)) {
c.parseCanonical(rw, b.toString().getBytes(UTF_8));
assertNotNull(c.getObject());
assertEquals(id, c.getObject().getId());
assertSame(rw.lookupAny(id, typeCode), c.getObject());
}
}
@Test
public void testParseAllFields() throws Exception {
@ -134,18 +135,18 @@ public void testParseAllFields() throws Exception {
body.append("\n");
final RevWalk rw = new RevWalk(db);
final RevTag c;
c = new RevTag(id("9473095c4cb2f12aefe1db8a355fe3fafba42f67"));
assertNull(c.getObject());
assertNull(c.getTagName());
try (RevWalk rw = new RevWalk(db)) {
c.parseCanonical(rw, body.toString().getBytes(UTF_8));
assertNotNull(c.getObject());
assertEquals(treeId, c.getObject().getId());
assertSame(rw.lookupTree(treeId), c.getObject());
}
assertNotNull(c.getTagName());
assertEquals(name, c.getTagName());
assertEquals("", c.getFullMessage());
@ -182,17 +183,18 @@ public void testParseOldStyleNoTagger() throws Exception {
body.append("\n");
body.append(message);
final RevWalk rw = new RevWalk(db);
final RevTag c;
c = new RevTag(id("9473095c4cb2f12aefe1db8a355fe3fafba42f67"));
assertNull(c.getObject());
assertNull(c.getTagName());
try (RevWalk rw = new RevWalk(db)) {
c.parseCanonical(rw, body.toString().getBytes(UTF_8));
assertNotNull(c.getObject());
assertEquals(treeId, c.getObject().getId());
assertSame(rw.lookupTree(treeId), c.getObject());
}
assertNotNull(c.getTagName());
assertEquals(name, c.getTagName());
@ -213,7 +215,9 @@ private RevTag create(String msg) throws Exception {
final RevTag c;
c = new RevTag(id("9473095c4cb2f12aefe1db8a355fe3fafba42f67"));
c.parseCanonical(new RevWalk(db), b.toString().getBytes(UTF_8));
try (RevWalk rw = new RevWalk(db)) {
c.parseCanonical(rw, b.toString().getBytes(UTF_8));
}
return c;
}
@ -234,7 +238,9 @@ public void testParse_implicit_UTF8_encoded() throws Exception {
b.write("\u304d\u308c\u3044\n".getBytes(UTF_8));
final RevTag c;
c = new RevTag(id("9473095c4cb2f12aefe1db8a355fe3fafba42f67"));
c.parseCanonical(new RevWalk(db), b.toByteArray());
try (RevWalk rw = new RevWalk(db)) {
c.parseCanonical(rw, b.toByteArray());
}
assertEquals("F\u00f6r fattare", c.getTaggerIdent().getName());
assertEquals("Sm\u00f6rg\u00e5sbord", c.getShortMessage());
@ -257,7 +263,9 @@ public void testParse_implicit_mixed_encoded() throws Exception {
b.write("\u304d\u308c\u3044\n".getBytes(UTF_8));
final RevTag c;
c = new RevTag(id("9473095c4cb2f12aefe1db8a355fe3fafba42f67"));
c.parseCanonical(new RevWalk(db), b.toByteArray());
try (RevWalk rw = new RevWalk(db)) {
c.parseCanonical(rw, b.toByteArray());
}
assertEquals("F\u00f6r fattare", c.getTaggerIdent().getName());
assertEquals("Sm\u00f6rg\u00e5sbord", c.getShortMessage());
@ -287,7 +295,9 @@ public void testParse_explicit_encoded() throws Exception {
b.write("Hi\n".getBytes("EUC-JP"));
final RevTag c;
c = new RevTag(id("9473095c4cb2f12aefe1db8a355fe3fafba42f67"));
c.parseCanonical(new RevWalk(db), b.toByteArray());
try (RevWalk rw = new RevWalk(db)) {
c.parseCanonical(rw, b.toByteArray());
}
assertEquals("F\u00f6r fattare", c.getTaggerIdent().getName());
assertEquals("\u304d\u308c\u3044", c.getShortMessage());
@ -320,7 +330,9 @@ public void testParse_explicit_bad_encoded() throws Exception {
b.write("Hi\n".getBytes(UTF_8));
final RevTag c;
c = new RevTag(id("9473095c4cb2f12aefe1db8a355fe3fafba42f67"));
c.parseCanonical(new RevWalk(db), b.toByteArray());
try (RevWalk rw = new RevWalk(db)) {
c.parseCanonical(rw, b.toByteArray());
}
assertEquals("F\u00f6r fattare", c.getTaggerIdent().getName());
assertEquals("\u304d\u308c\u3044", c.getShortMessage());
@ -355,7 +367,9 @@ public void testParse_explicit_bad_encoded2() throws Exception {
b.write("Hi\n".getBytes(UTF_8));
final RevTag c;
c = new RevTag(id("9473095c4cb2f12aefe1db8a355fe3fafba42f67"));
c.parseCanonical(new RevWalk(db), b.toByteArray());
try (RevWalk rw = new RevWalk(db)) {
c.parseCanonical(rw, b.toByteArray());
}
assertEquals("F\u00f6r fattare", c.getTaggerIdent().getName());
assertEquals("\u304d\u308c\u3044", c.getShortMessage());
@ -374,7 +388,9 @@ public void testParse_illegalEncoding() throws Exception {
b.write("message\n".getBytes(UTF_8));
RevTag t = new RevTag(id("9473095c4cb2f12aefe1db8a355fe3fafba42f67"));
t.parseCanonical(new RevWalk(db), b.toByteArray());
try (RevWalk rw = new RevWalk(db)) {
t.parseCanonical(rw, b.toByteArray());
}
assertEquals("t", t.getTaggerIdent().getName());
assertEquals("message", t.getShortMessage());
@ -393,7 +409,9 @@ public void testParse_unsupportedEncoding() throws Exception {
b.write("message\n".getBytes(UTF_8));
RevTag t = new RevTag(id("9473095c4cb2f12aefe1db8a355fe3fafba42f67"));
t.parseCanonical(new RevWalk(db), b.toByteArray());
try (RevWalk rw = new RevWalk(db)) {
t.parseCanonical(rw, b.toByteArray());
}
assertEquals("t", t.getTaggerIdent().getName());
assertEquals("message", t.getShortMessage());