Author: jukka
Date: Tue Mar 25 03:28:24 2014
New Revision: 1581211
URL: http://svn.apache.org/r1581211
Log:
OAK-1564: ClockTest on Windows fails
Add 3ms to allow for Thread.sleep() anomalies
Modified:
jackrabbit/oak/trunk/oak-core/src/test/java/org/apache/jackrabbit/oak/stats/ClockTest.java
Modified:
jackrabbit/oak/trunk/oak-core/src/test/java/org/apache/jackrabbit/oak/stats/ClockTest.java
URL:
http://svn.apache.org/viewvc/jackrabbit/oak/trunk/oak-core/src/test/java/org/apache/jackrabbit/oak/stats/ClockTest.java?rev=1581211&r1=1581210&r2=1581211&view=diff
==============================================================================
---
jackrabbit/oak/trunk/oak-core/src/test/java/org/apache/jackrabbit/oak/stats/ClockTest.java
(original)
+++
jackrabbit/oak/trunk/oak-core/src/test/java/org/apache/jackrabbit/oak/stats/ClockTest.java
Tue Mar 25 03:28:24 2014
@@ -29,16 +29,22 @@ public class ClockTest {
* Helper for checking how accurate the system clock is.
*/
public static void main(String[] args) {
- System.out.println("average clock granularity: " +
getAverageClockGranularity());
+ System.out.println(
+ "average clock granularity: " + getAverageClockGranularity());
}
@Test
public void testClockDrift() throws InterruptedException {
ScheduledExecutorService executor =
Executors.newSingleThreadScheduledExecutor();
+
+ // Set the drift limit to twice as high as granularity,
+ // plus 3ms for Thread.sleep() inaccuracy in the fast clock
final long granularity = getAverageClockGranularity();
- final long limit = (2 * granularity) / 1000; // allow a drift twice as
high
- final String diag = "(estimated limit was " + limit + "ms, measured
granularity was " + ( granularity / 1000f) + "ms)";
+ final long limit = (2 * granularity) / 1000 + 3;
+ final String diag =
+ "(estimated limit was " + limit + "ms,"
+ + " measured granularity was " + (granularity / 1000f) + "ms)";
try {
Clock[] clocks = new Clock[] {
@@ -49,14 +55,18 @@ public class ClockTest {
for (Clock clock : clocks) {
long drift = clock.getTime() - System.currentTimeMillis();
- assertTrue("unexpected drift: " + Math.abs(drift) + "ms " +
diag, Math.abs(drift) <= limit);
+ assertTrue(
+ clock + " unexpected drift: " + drift + "ms " + diag,
+ Math.abs(drift) <= limit);
}
Thread.sleep(100);
for (Clock clock : clocks) {
long drift = clock.getTime() - System.currentTimeMillis();
- assertTrue("unexpected drift: " + Math.abs(drift) + "ms " +
diag, Math.abs(drift) <= limit);
+ assertTrue(
+ clock + " unexpected drift ater 100ms: " + drift + "ms
" + diag,
+ Math.abs(drift) <= limit);
}
} finally {
executor.shutdown();