From db341527949fe98e56a0a463f74c55398f005a45 Mon Sep 17 00:00:00 2001 From: Robin Rosenberg Date: Wed, 23 Jan 2013 07:55:13 +0100 Subject: [PATCH 1/2] Attempt to stabilize FileTreeIterator test on Windows My guess is that the higher resolution of timestamps provided by Java on Windows causes this test to occasionally fail. Bug: 396662 Change-Id: Ia10d76e95fe6156c7ad05972619160e461606805 --- .../tst/org/eclipse/jgit/treewalk/FileTreeIteratorTest.java | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/org.eclipse.jgit.test/tst/org/eclipse/jgit/treewalk/FileTreeIteratorTest.java b/org.eclipse.jgit.test/tst/org/eclipse/jgit/treewalk/FileTreeIteratorTest.java index bf22569df..a416c742f 100644 --- a/org.eclipse.jgit.test/tst/org/eclipse/jgit/treewalk/FileTreeIteratorTest.java +++ b/org.eclipse.jgit.test/tst/org/eclipse/jgit/treewalk/FileTreeIteratorTest.java @@ -253,14 +253,16 @@ public class FileTreeIteratorTest extends RepositoryTestCase { // Hopefully fsTick will make sure our entry gets smudged fsTick(f); writeTrashFile("file", "content"); + long lastModified = f.lastModified(); git.add().addFilepattern("file").call(); writeTrashFile("file", "conten2"); + f.setLastModified(lastModified); DirCacheEntry dce = db.readDirCache().getEntry("file"); FileTreeIterator fti = new FileTreeIterator(trash, db.getFS(), db .getConfig().get(WorkingTreeOptions.KEY)); while (!fti.getEntryPathString().equals("file")) fti.next(1); - // If the fsTick trick does not work we could skip the compareMetaData + // If the rounding trick does not work we could skip the compareMetaData // test and hope that we are usually testing the intended code path. assertEquals(MetadataDiff.SMUDGED, fti.compareMetadata(dce)); assertTrue(fti.isModified(dce, false)); From e522d95a51422e76e3da1b781b24142ad65abcc9 Mon Sep 17 00:00:00 2001 From: Robin Rosenberg Date: Wed, 23 Jan 2013 08:27:12 +0100 Subject: [PATCH 2/2] Attempt to stabilize GCTest File system time stamps and System.currentTimeMillis() may not necessarily be running on the same clock so add some slack. Bug: 396662 Change-Id: I25204d9e3181e15368da2902447518c6ce205017 --- .../tst/org/eclipse/jgit/storage/file/GCTest.java | 11 +++++++++++ 1 file changed, 11 insertions(+) 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 8b6c00388..820a8ae07 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 @@ -304,6 +304,7 @@ public class GCTest extends LocalDiskRepositoryTestCase { public void nonReferencedExpiredObject_pruned() throws Exception { RevBlob a = tr.blob("a"); gc.setExpireAgeMillis(0); + fsTick(); gc.prune(Collections. emptySet()); assertFalse(repo.hasObject(a)); } @@ -313,6 +314,7 @@ public class GCTest extends LocalDiskRepositoryTestCase { RevBlob a = tr.blob("a"); RevTree t = tr.tree(tr.file("a", a)); gc.setExpireAgeMillis(0); + fsTick(); gc.prune(Collections. emptySet()); assertFalse(repo.hasObject(t)); assertFalse(repo.hasObject(a)); @@ -336,6 +338,7 @@ public class GCTest extends LocalDiskRepositoryTestCase { RevBlob a = tr.blob("a"); tr.lightweightTag("t", a); gc.setExpireAgeMillis(0); + fsTick(); gc.prune(Collections. emptySet()); assertTrue(repo.hasObject(a)); } @@ -347,6 +350,7 @@ public class GCTest extends LocalDiskRepositoryTestCase { tr.lightweightTag("t", t); gc.setExpireAgeMillis(0); + fsTick(); gc.prune(Collections. emptySet()); assertTrue(repo.hasObject(t)); assertTrue(repo.hasObject(a)); @@ -357,6 +361,7 @@ public class GCTest extends LocalDiskRepositoryTestCase { RevCommit tip = commitChain(10); tr.branch("b").update(tip); gc.setExpireAgeMillis(0); + fsTick(); gc.prune(Collections. emptySet()); do { assertTrue(repo.hasObject(tip)); @@ -376,6 +381,7 @@ public class GCTest extends LocalDiskRepositoryTestCase { update.setForceUpdate(true); update.delete(); gc.setExpireAgeMillis(0); + fsTick(); gc.prune(Collections. emptySet()); assertTrue(gc.getStatistics().numberOfLooseObjects == 0); } @@ -404,6 +410,7 @@ public class GCTest extends LocalDiskRepositoryTestCase { update.delete(); gc.setExpireAgeMillis(0); + fsTick(); gc.prune(Collections. emptySet()); assertTrue(repo.hasObject(b2Tip)); } @@ -532,6 +539,7 @@ public class GCTest extends LocalDiskRepositoryTestCase { assertEquals(0, stats.numberOfPackedObjects); gc.setExpireAgeMillis(0); + fsTick(); gc.gc(); stats = gc.getStatistics(); assertEquals(0, stats.numberOfLooseObjects); @@ -581,6 +589,7 @@ public class GCTest extends LocalDiskRepositoryTestCase { assertEquals(8, stats.numberOfLooseObjects); assertEquals(0, stats.numberOfPackedObjects); gc.setExpireAgeMillis(0); + fsTick(); gc.gc(); stats = gc.getStatistics(); assertEquals(0, stats.numberOfLooseObjects); @@ -640,6 +649,7 @@ public class GCTest extends LocalDiskRepositoryTestCase { assertEquals(9, stats.numberOfLooseObjects); assertEquals(0, stats.numberOfPackedObjects); gc.setExpireAgeMillis(0); + fsTick(); gc.gc(); stats = gc.getStatistics(); assertEquals(0, stats.numberOfLooseObjects); @@ -657,6 +667,7 @@ public class GCTest extends LocalDiskRepositoryTestCase { stats = gc.getStatistics(); assertEquals(8, stats.numberOfLooseObjects); gc.setExpireAgeMillis(0); + fsTick(); gc.prune(Collections. emptySet()); stats = gc.getStatistics(); assertEquals(8, stats.numberOfLooseObjects);