aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorChristian Halstrick <christian.halstrick@sap.com>2018-07-17 12:00:04 +0200
committerChristian Halstrick <christian.halstrick@sap.com>2018-07-17 12:00:04 +0200
commit6db9371250866b76b7eb54f8bc1c69ff79c19098 (patch)
tree905bc557e1e6632a928c354c1fd4daea808bb85d
parente4774f45c4190ee0c5ec4f5f575d9d4df1df4959 (diff)
downloadjgit-6db9371250866b76b7eb54f8bc1c69ff79c19098.tar.gz
jgit-6db9371250866b76b7eb54f8bc1c69ff79c19098.zip
Ensure RacyGitTests don't raise false negatives
RacyGitTests depend on filesystem timer resolution. We wait for a file system timer tick, remember that time as t1, modify a file and assume that this file has a lastmodified of t1. If this assumption is not fulfilled then ignore the test result. Bug: 526111 Change-Id: Ia38b7d2f99171ef54b8f9fe5be343cf9fcfd3971
-rw-r--r--org.eclipse.jgit.test/tst/org/eclipse/jgit/lib/RacyGitTests.java8
1 files changed, 6 insertions, 2 deletions
diff --git a/org.eclipse.jgit.test/tst/org/eclipse/jgit/lib/RacyGitTests.java b/org.eclipse.jgit.test/tst/org/eclipse/jgit/lib/RacyGitTests.java
index 8d9ccab1bd..3542dfad2d 100644
--- a/org.eclipse.jgit.test/tst/org/eclipse/jgit/lib/RacyGitTests.java
+++ b/org.eclipse.jgit.test/tst/org/eclipse/jgit/lib/RacyGitTests.java
@@ -45,6 +45,7 @@ package org.eclipse.jgit.lib;
import static java.lang.Long.valueOf;
import static org.junit.Assert.assertEquals;
import static org.junit.Assert.assertTrue;
+import static org.junit.Assume.assumeTrue;
import java.io.File;
import java.io.FileOutputStream;
@@ -157,10 +158,13 @@ public class RacyGitTests extends RepositoryTestCase {
// Remember the last modTime of index file. All modifications times of
// further modification are translated to this value so it looks that
// files have been modified in the same time slot as the index file
- modTimes.add(Long.valueOf(db.getIndexFile().lastModified()));
+ long indexMod = db.getIndexFile().lastModified();
+ modTimes.add(Long.valueOf(indexMod));
// modify one file
- addToWorkDir("a", "a2");
+ long aMod = addToWorkDir("a", "a2").lastModified();
+ assumeTrue(aMod == indexMod);
+
// now update the index the index. 'a' has to be racily clean -- because
// it's modification time is exactly the same as the previous index file
// mod time.