diff options
author | 2017-08-08 13:08:24 +0200 | |
---|---|---|
committer | 2017-08-09 11:27:20 +0200 | |
commit | deab0cf4184ed32d8f76efc3c33aefae8b54603d (patch) | |
tree | 8ce36f8bf3d4b3b1377e70b300185b08139c9972 /src/main/java/com/google/devtools/build/lib/packages | |
parent | 3cb136d5451e9d8af58f9a99990cad0592df101a (diff) |
Use java.time.Duration for timeouts
PiperOrigin-RevId: 164577062
Diffstat (limited to 'src/main/java/com/google/devtools/build/lib/packages')
-rw-r--r-- | src/main/java/com/google/devtools/build/lib/packages/TestTimeout.java | 20 |
1 files changed, 13 insertions, 7 deletions
diff --git a/src/main/java/com/google/devtools/build/lib/packages/TestTimeout.java b/src/main/java/com/google/devtools/build/lib/packages/TestTimeout.java index a14f68ef65..6e834a70d7 100644 --- a/src/main/java/com/google/devtools/build/lib/packages/TestTimeout.java +++ b/src/main/java/com/google/devtools/build/lib/packages/TestTimeout.java @@ -23,6 +23,7 @@ import com.google.common.collect.RangeMap; import com.google.devtools.build.lib.syntax.Type; import com.google.devtools.common.options.Converter; import com.google.devtools.common.options.OptionsParsingException; +import java.time.Duration; import java.util.ArrayList; import java.util.Arrays; import java.util.EnumMap; @@ -140,10 +141,15 @@ public enum TestTimeout { return super.toString().toUpperCase(); } - public int getTimeout() { + @Deprecated // use getTimeout instead + public int getTimeoutSeconds() { return timeout; } + public Duration getTimeout() { + return Duration.ofSeconds(timeout); + } + /** * Returns true iff the given time is not close to the upper bound timeout and is so short that it * should be assigned a different timeout. @@ -184,25 +190,25 @@ public enum TestTimeout { /** * Converter for the --test_timeout option. */ - public static class TestTimeoutConverter implements Converter<Map<TestTimeout, Integer>> { + public static class TestTimeoutConverter implements Converter<Map<TestTimeout, Duration>> { public TestTimeoutConverter() {} @Override - public Map<TestTimeout, Integer> convert(String input) throws OptionsParsingException { - List<Integer> values = new ArrayList<>(); + public Map<TestTimeout, Duration> convert(String input) throws OptionsParsingException { + List<Duration> values = new ArrayList<>(); for (String token : Splitter.on(',').limit(6).split(input)) { // Handle the case of "2," which is accepted as legal... Because Splitter.split is lazy, // there's no way of knowing if an empty string is a trailing or an intermediate one, // so we can't fully emulate String.split(String, 0). if (!token.isEmpty() || values.size() > 1) { try { - values.add(Integer.valueOf(token)); + values.add(Duration.ofSeconds(Integer.valueOf(token))); } catch (NumberFormatException e) { throw new OptionsParsingException("'" + input + "' is not an int"); } } } - EnumMap<TestTimeout, Integer> timeouts = Maps.newEnumMap(TestTimeout.class); + EnumMap<TestTimeout, Duration> timeouts = Maps.newEnumMap(TestTimeout.class); if (values.size() == 1) { timeouts.put(SHORT, values.get(0)); timeouts.put(MODERATE, values.get(0)); @@ -217,7 +223,7 @@ public enum TestTimeout { throw new OptionsParsingException("Invalid number of comma-separated entries"); } for (TestTimeout label : values()) { - if (!timeouts.containsKey(label) || timeouts.get(label) <= 0) { + if (!timeouts.containsKey(label) || timeouts.get(label).compareTo(Duration.ZERO) <= 0) { timeouts.put(label, label.getTimeout()); } } |