From c5102fc5cec4336140889510a87ef1c57810911c Mon Sep 17 00:00:00 2001 From: Miguel Alcon Pinto Date: Wed, 25 Feb 2015 00:10:14 +0000 Subject: Compute action start time in critical path using Clock.currentTimeMillis instead of nanoTime. As nanoTime should only be used to compute time differences. To avoid having to pass two long values representing time (And calling twice to Clock.xxx methods per action executed) we compute the wall time by passing a clock and computing the difference from the start nano time. -- MOS_MIGRATED_REVID=87102963 --- .../java/com/google/devtools/build/lib/testutil/ManualClock.java | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) (limited to 'src/test/java/com/google/devtools/build/lib/testutil/ManualClock.java') diff --git a/src/test/java/com/google/devtools/build/lib/testutil/ManualClock.java b/src/test/java/com/google/devtools/build/lib/testutil/ManualClock.java index d4f6058169..de50bbdc68 100644 --- a/src/test/java/com/google/devtools/build/lib/testutil/ManualClock.java +++ b/src/test/java/com/google/devtools/build/lib/testutil/ManualClock.java @@ -29,9 +29,15 @@ public final class ManualClock implements Clock { return currentTimeMillis; } + /** + * Nano time should not be confused with wall time. Nano time is only mean to compute time + * differences. Because of this, we shift the time returned by 1000s, to test that the users + * of this class do not rely on nanoTime == currentTimeMillis. + */ @Override public long nanoTime() { - return TimeUnit.MILLISECONDS.toNanos(currentTimeMillis); + return TimeUnit.MILLISECONDS.toNanos(currentTimeMillis) + + TimeUnit.SECONDS.toNanos(1000); } public void advanceMillis(long time) { -- cgit v1.2.3