diff --git a/org.eclipse.jgit.test/tst/org/eclipse/jgit/storage/file/GCTest.java b/org.eclipse.jgit.test/tst/org/eclipse/jgit/storage/file/GCTest.java index 17c918ba7..04fc68a6f 100644 --- a/org.eclipse.jgit.test/tst/org/eclipse/jgit/storage/file/GCTest.java +++ b/org.eclipse.jgit.test/tst/org/eclipse/jgit/storage/file/GCTest.java @@ -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. 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. 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 {