Merge branch 'stable-2.14' into stable-2.15

* stable-2.14:
  TestTimeUtil: Also stub out JGit's SystemReader [redux]
  AccountManager: Remove unused import

Change-Id: I28f145bf9c9376d891c25a2bfe79ac7f9b658e55
This commit is contained in:
David Pursehouse
2017-11-20 09:34:19 +09:00

View File

@@ -20,6 +20,10 @@ import static java.util.concurrent.TimeUnit.MILLISECONDS;
import java.sql.Timestamp;
import java.util.concurrent.TimeUnit;
import java.util.concurrent.atomic.AtomicLong;
import org.eclipse.jgit.lib.Config;
import org.eclipse.jgit.storage.file.FileBasedConfig;
import org.eclipse.jgit.util.FS;
import org.eclipse.jgit.util.SystemReader;
import org.joda.time.DateTime;
import org.joda.time.DateTimeUtils;
import org.joda.time.DateTimeUtils.MillisProvider;
@@ -56,6 +60,7 @@ public class TestTimeUtil {
public static synchronized void setClockStep(long clockStep, TimeUnit clockStepUnit) {
checkState(clockMs != null, "call resetWithClockStep first");
clockStepMs = MILLISECONDS.convert(clockStep, clockStepUnit);
DateTimeUtils.setCurrentMillisProvider(
new MillisProvider() {
@Override
@@ -63,6 +68,47 @@ public class TestTimeUtil {
return clockMs.getAndAdd(clockStepMs);
}
});
SystemReader.setInstance(null);
final SystemReader defaultReader = SystemReader.getInstance();
SystemReader r =
new SystemReader() {
@Override
public String getHostname() {
return defaultReader.getHostname();
}
@Override
public String getenv(String variable) {
return defaultReader.getenv(variable);
}
@Override
public String getProperty(String key) {
return defaultReader.getProperty(key);
}
@Override
public FileBasedConfig openUserConfig(Config parent, FS fs) {
return defaultReader.openUserConfig(parent, fs);
}
@Override
public FileBasedConfig openSystemConfig(Config parent, FS fs) {
return defaultReader.openSystemConfig(parent, fs);
}
@Override
public long getCurrentTime() {
return clockMs.getAndAdd(clockStepMs);
}
@Override
public int getTimezone(long when) {
return defaultReader.getTimezone(when);
}
};
SystemReader.setInstance(r);
}
/**
@@ -86,10 +132,15 @@ public class TestTimeUtil {
clockMs.addAndGet(clockStepUnit.toMillis(clockStep));
}
/** Reset the clock to use the actual system clock. */
/**
* Reset the clock to use the actual system clock.
*
* <p>As a side effect, resets the {@link SystemReader} to the original default instance.
*/
public static synchronized void useSystemTime() {
clockMs = null;
DateTimeUtils.setCurrentMillisSystem();
SystemReader.setInstance(null);
}
private TestTimeUtil() {}