Skip to main content
aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorChristian Halstrick2010-08-03 20:27:41 +0000
committerStefan Lay2010-08-04 11:36:27 +0000
commit7bbe203578def873f0409454d7035d69347fc31e (patch)
tree4eb713105d5dbc1a3fe72adf81499956d04b7a49
parent9a008d68b57713932c135e4333a4930d547272ca (diff)
downloadjgit-7bbe203578def873f0409454d7035d69347fc31e.tar.gz
jgit-7bbe203578def873f0409454d7035d69347fc31e.tar.xz
jgit-7bbe203578def873f0409454d7035d69347fc31e.zip
add fsTick() to RepositoryTestCase
An utility method which was in RacyGitTests has been moved to RepositoryTestCase. Also the javadoc has been improved. This method allows to wait long enough until the filesystem-timer has advanced. This is useful when it has to be guaranteed that two files modifications have different modification timestamps. Change-Id: I2ebd7cd7818feba6acffb3f835101d8fd281bd5a Signed-off-by: Christian Halstrick <christian.halstrick@sap.com>
-rw-r--r--org.eclipse.jgit.test/tst/org/eclipse/jgit/lib/RacyGitTests.java32
-rw-r--r--org.eclipse.jgit.test/tst/org/eclipse/jgit/lib/RepositoryTestCase.java36
2 files changed, 36 insertions, 32 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 c29f1a0d72..e208b27e6b 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
@@ -160,38 +160,6 @@ public class RacyGitTests extends RepositoryTestCase {
indexState(SMUDGE|MOD_TIME|LENGTH));
}
- /**
- * Waits until it is guaranteed that the filesystem timer (used e.g. for
- * lastModified) has a value greater than the lastmodified time of the given
- * file. This is done by touch a file, reading the lastmodified and sleeping
- * attribute sleeping
- *
- * @param lastFile
- * @return return the last measured value of the filesystem timer which is
- * greater than then the lastmodification time of lastfile.
- * @throws InterruptedException
- * @throws IOException
- */
- public static long fsTick(File lastFile) throws InterruptedException,
- IOException {
- long sleepTime = 1;
- File tmp = File.createTempFile("FileTreeIteratorWithTimeControl", null);
- try {
- long startTime = (lastFile == null) ? tmp.lastModified() : lastFile
- .lastModified();
- long actTime = tmp.lastModified();
- while (actTime <= startTime) {
- Thread.sleep(sleepTime);
- sleepTime *= 5;
- tmp.setLastModified(System.currentTimeMillis());
- actTime = tmp.lastModified();
- }
- return actTime;
- } finally {
- tmp.delete();
- }
- }
-
private void addToIndex(TreeSet<Long> modTimes)
throws FileNotFoundException, IOException {
DirCacheBuilder builder = db.lockDirCache().builder();
diff --git a/org.eclipse.jgit.test/tst/org/eclipse/jgit/lib/RepositoryTestCase.java b/org.eclipse.jgit.test/tst/org/eclipse/jgit/lib/RepositoryTestCase.java
index cb1f385560..36b28ae077 100644
--- a/org.eclipse.jgit.test/tst/org/eclipse/jgit/lib/RepositoryTestCase.java
+++ b/org.eclipse.jgit.test/tst/org/eclipse/jgit/lib/RepositoryTestCase.java
@@ -232,4 +232,40 @@ public abstract class RepositoryTestCase extends LocalDiskRepositoryTestCase {
}
return name;
}
+
+ /**
+ * Waits until it is guaranteed that a subsequent file modification has a
+ * younger modification timestamp than the modification timestamp of the
+ * given file. This is done by touching a temporary file, reading the
+ * lastmodified attribute and, if needed, sleeping. After sleeping this loop
+ * starts again until the filesystem timer has advanced enough.
+ *
+ * @param lastFile
+ * the file on which we want to wait until the filesystem timer
+ * has advanced more than the lastmodification timestamp of this
+ * file
+ * @return return the last measured value of the filesystem timer which is
+ * greater than then the lastmodification time of lastfile.
+ * @throws InterruptedException
+ * @throws IOException
+ */
+ public static long fsTick(File lastFile) throws InterruptedException,
+ IOException {
+ long sleepTime = 1;
+ File tmp = File.createTempFile("FileTreeIteratorWithTimeControl", null);
+ try {
+ long startTime = (lastFile == null) ? tmp.lastModified() : lastFile
+ .lastModified();
+ long actTime = tmp.lastModified();
+ while (actTime <= startTime) {
+ Thread.sleep(sleepTime);
+ sleepTime *= 5;
+ tmp.setLastModified(System.currentTimeMillis());
+ actTime = tmp.lastModified();
+ }
+ return actTime;
+ } finally {
+ tmp.delete();
+ }
+ }
}

Back to the top