From: Christian Halstrick Date: Fri, 20 Aug 2010 08:15:53 +0000 (+0200) Subject: Fix ReadTreeTests to not rely on cached index X-Git-Tag: v0.9.1~110 X-Git-Url: https://source.dussan.org/?a=commitdiff_plain;h=refs%2Fchanges%2F52%2F1352%2F1;p=jgit.git Fix ReadTreeTests to not rely on cached index ReadTreeTests relied on Repository.getIndex() which on platforms which coarse FileSystemTimers failed to detect index modifications. By explicitly reloading and writing the index this problem is solved. Change-Id: I0a98babfc2068a3b6b7d2257834988e1154f5b26 Signed-off-by: Christian Halstrick Signed-off-by: Matthias Sohn --- diff --git a/org.eclipse.jgit.test/tst/org/eclipse/jgit/lib/ReadTreeTest.java b/org.eclipse.jgit.test/tst/org/eclipse/jgit/lib/ReadTreeTest.java index 2fa45c8211..fe2d0b248c 100644 --- a/org.eclipse.jgit.test/tst/org/eclipse/jgit/lib/ReadTreeTest.java +++ b/org.eclipse.jgit.test/tst/org/eclipse/jgit/lib/ReadTreeTest.java @@ -651,6 +651,10 @@ public abstract class ReadTreeTest extends RepositoryTestCase { String expectedValue; String path; GitIndex theIndex=db.getIndex(); + // Without an explicit refresh we might miss index updates. If the index + // is updated multiple times inside a FileSystemTimer tick db.getIndex will + // not reload the index and return a cached (stale) index. + theIndex.read(); assertEquals("Index has not the right size.", i.size(), theIndex.getMembers().length); for (int j = 0; j < theIndex.getMembers().length; j++) { diff --git a/org.eclipse.jgit.test/tst/org/eclipse/jgit/lib/WorkDirCheckout_ReadTreeTest.java b/org.eclipse.jgit.test/tst/org/eclipse/jgit/lib/WorkDirCheckout_ReadTreeTest.java index 7b5c3cdc57..c41a04cc90 100644 --- a/org.eclipse.jgit.test/tst/org/eclipse/jgit/lib/WorkDirCheckout_ReadTreeTest.java +++ b/org.eclipse.jgit.test/tst/org/eclipse/jgit/lib/WorkDirCheckout_ReadTreeTest.java @@ -57,8 +57,10 @@ public class WorkDirCheckout_ReadTreeTest extends ReadTreeTest { } public void checkout() throws IOException { - wdc = new WorkDirCheckout(db, db.getWorkTree(), theHead, db.getIndex(), theMerge); + GitIndex index = db.getIndex(); + wdc = new WorkDirCheckout(db, db.getWorkTree(), theHead, index, theMerge); wdc.checkout(); + index.write(); } public ArrayList getRemoved() {