diff options
author | Christian Halstrick <christian.halstrick@sap.com> | 2018-07-17 12:00:04 +0200 |
---|---|---|
committer | Christian Halstrick <christian.halstrick@sap.com> | 2018-07-17 12:00:04 +0200 |
commit | 6db9371250866b76b7eb54f8bc1c69ff79c19098 (patch) | |
tree | 905bc557e1e6632a928c354c1fd4daea808bb85d | |
parent | e4774f45c4190ee0c5ec4f5f575d9d4df1df4959 (diff) | |
download | jgit-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.java | 8 |
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. |