Merge "Fixed instability in some GC tests."

This commit is contained in:
Matthias Sohn 2012-09-20 16:29:03 -04:00 committed by Gerrit Code Review @ Eclipse.org
commit 46d42404d3
1 changed files with 7 additions and 11 deletions

View File

@ -51,6 +51,7 @@
import java.util.Collection;
import java.io.IOException;
import java.util.Collections;
import java.util.Date;
import java.util.Iterator;
import java.util.concurrent.BrokenBarrierException;
import java.util.concurrent.Callable;
@ -66,6 +67,7 @@
import org.eclipse.jgit.junit.TestRepository.BranchBuilder;
import org.eclipse.jgit.lib.Constants;
import org.eclipse.jgit.junit.TestRepository.CommitBuilder;
import org.eclipse.jgit.lib.AnyObjectId;
import org.eclipse.jgit.lib.EmptyProgressMonitor;
import org.eclipse.jgit.lib.ObjectId;
import org.eclipse.jgit.lib.RepositoryTestCase;
@ -291,12 +293,8 @@ public Integer call() throws Exception {
@Test
public void nonReferencedNonExpiredObject_notPruned() throws Exception {
long start = now();
fsTick();
RevBlob a = tr.blob("a");
long delta = now() - start;
gc.setExpireAgeMillis(delta);
gc.setExpire(new Date(lastModified(a)));
gc.prune(Collections.<ObjectId> emptySet());
assertTrue(repo.hasObject(a));
}
@ -322,13 +320,11 @@ public void nonReferencedExpiredObjectTree_pruned() throws Exception {
@Test
public void nonReferencedObjects_onlyExpiredPruned() throws Exception {
RevBlob a = tr.blob("a");
fsTick();
long start = now();
gc.setExpire(new Date(lastModified(a) + 1));
fsTick();
RevBlob b = tr.blob("b");
gc.setExpireAgeMillis(now() - start);
gc.prune(Collections.<ObjectId> emptySet());
assertFalse(repo.hasObject(a));
assertTrue(repo.hasObject(b));
@ -700,8 +696,8 @@ private RevCommit commitChain(int depth) throws Exception {
return tip;
}
private static long now() {
return System.currentTimeMillis();
private long lastModified(AnyObjectId objectId) {
return repo.getObjectDatabase().fileFor(objectId).lastModified();
}
private static void fsTick() throws InterruptedException, IOException {