You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@ignite.apache.org by dp...@apache.org on 2018/11/19 14:02:33 UTC
[ignite-teamcity-bot] branch master updated: Test duration added to
statistics (local)
This is an automated email from the ASF dual-hosted git repository.
dpavlov pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/ignite-teamcity-bot.git
The following commit(s) were added to refs/heads/master by this push:
new 07d2423 Test duration added to statistics (local)
07d2423 is described below
commit 07d2423dd0ba5963b0ac81b4c818a1f88b5852ed
Author: Dmitriy Pavlov <dp...@apache.org>
AuthorDate: Mon Nov 19 17:02:14 2018 +0300
Test duration added to statistics (local)
---
.../apache/ignite/ci/analysis/FullChainRunCtx.java | 16 ++++++++++++----
.../apache/ignite/ci/analysis/MultBuildRunCtx.java | 19 ++++++++++++++++---
.../apache/ignite/ci/analysis/SingleBuildRunCtx.java | 14 ++++++++++++++
.../ci/tcmodel/result/tests/TestOccurrence.java | 4 ----
.../ci/teamcity/ignited/fatbuild/TestCompacted.java | 4 ++--
.../web/model/current/ChainAtServerCurrentStatus.java | 11 ++++++++---
.../ci/web/model/current/SuiteCurrentStatus.java | 6 +++++-
.../src/main/webapp/js/testfails-2.1.js | 15 ++++-----------
8 files changed, 61 insertions(+), 28 deletions(-)
diff --git a/ignite-tc-helper-web/src/main/java/org/apache/ignite/ci/analysis/FullChainRunCtx.java b/ignite-tc-helper-web/src/main/java/org/apache/ignite/ci/analysis/FullChainRunCtx.java
index 0d01506..741ac43 100644
--- a/ignite-tc-helper-web/src/main/java/org/apache/ignite/ci/analysis/FullChainRunCtx.java
+++ b/ignite-tc-helper-web/src/main/java/org/apache/ignite/ci/analysis/FullChainRunCtx.java
@@ -40,8 +40,8 @@ public class FullChainRunCtx {
fakeStub = chainResults.isFakeStub();
}
- public List<MultBuildRunCtx> suites() {
- return buildCfgsResults;
+ public Stream<MultBuildRunCtx> suites() {
+ return buildCfgsResults.stream();
}
public Integer getSuiteBuildId() {
@@ -61,7 +61,7 @@ public class FullChainRunCtx {
}
public Stream<MultBuildRunCtx> failedChildSuites() {
- return suites().stream().filter(MultBuildRunCtx::isFailed);
+ return suites().filter(MultBuildRunCtx::isFailed);
}
/**
@@ -79,7 +79,7 @@ public class FullChainRunCtx {
* @return returns durations of all suites (last builds)
*/
private Stream<Long> getDurations() {
- return suites().stream().filter(ctx -> !ctx.isComposite()).map(MultBuildRunCtx::getBuildDuration);
+ return suites().filter(ctx -> !ctx.isComposite()).map(MultBuildRunCtx::getBuildDuration);
}
/**
@@ -105,4 +105,12 @@ public class FullChainRunCtx {
public boolean isFakeStub() {
return fakeStub;
}
+
+ public String getTestsDurationPrintable() {
+ long tests = suites().filter(ctx -> !ctx.isComposite())
+ .map(MultBuildRunCtx::getAvgTestsDuration)
+ .filter(Objects::nonNull).mapToLong(t -> t).sum();
+
+ return (TimeUtil.millisToDurationPrintable(tests));
+ }
}
diff --git a/ignite-tc-helper-web/src/main/java/org/apache/ignite/ci/analysis/MultBuildRunCtx.java b/ignite-tc-helper-web/src/main/java/org/apache/ignite/ci/analysis/MultBuildRunCtx.java
index 10b20fc..fe13d81 100644
--- a/ignite-tc-helper-web/src/main/java/org/apache/ignite/ci/analysis/MultBuildRunCtx.java
+++ b/ignite-tc-helper-web/src/main/java/org/apache/ignite/ci/analysis/MultBuildRunCtx.java
@@ -281,10 +281,9 @@ public class MultBuildRunCtx implements ISuiteResults {
}
/**
- * @return last build duration.
+ * @return average build duration.
*/
- @Nullable
- public Long getBuildDuration() {
+ @Nullable public Long getBuildDuration() {
final OptionalDouble average = buildsStream()
.map(SingleBuildRunCtx::getBuildDuration)
.filter(Objects::nonNull)
@@ -297,6 +296,20 @@ public class MultBuildRunCtx implements ISuiteResults {
return null;
}
+ /**
+ * @return sum of all tests execution duration (for several builds average).
+ */
+ @Nullable public Long getAvgTestsDuration() {
+ final OptionalDouble average = buildsStream()
+ .mapToLong(SingleBuildRunCtx::testsDuration)
+ .average();
+
+ if (average.isPresent())
+ return (long)average.getAsDouble();
+
+ return null;
+ }
+
@Nullable public String suiteName() {
return buildsStream().findFirst().map(SingleBuildRunCtx::suiteName).orElse(null);
}
diff --git a/ignite-tc-helper-web/src/main/java/org/apache/ignite/ci/analysis/SingleBuildRunCtx.java b/ignite-tc-helper-web/src/main/java/org/apache/ignite/ci/analysis/SingleBuildRunCtx.java
index 942d890..2e5b104 100644
--- a/ignite-tc-helper-web/src/main/java/org/apache/ignite/ci/analysis/SingleBuildRunCtx.java
+++ b/ignite-tc-helper-web/src/main/java/org/apache/ignite/ci/analysis/SingleBuildRunCtx.java
@@ -205,4 +205,18 @@ public class SingleBuildRunCtx implements ISuiteResults {
public boolean isCancelled() {
return buildCompacted.isCancelled(compactor);
}
+
+ /**
+ * @return Full run time required to run tests.
+ */
+ public long testsDuration() {
+ return getAllTests()
+ .mapToLong(t -> {
+ Integer duration = t.getDuration();
+ if (duration == null)
+ return 0;
+
+ return duration;
+ }).sum();
+ }
}
diff --git a/ignite-tc-helper-web/src/main/java/org/apache/ignite/ci/tcmodel/result/tests/TestOccurrence.java b/ignite-tc-helper-web/src/main/java/org/apache/ignite/ci/tcmodel/result/tests/TestOccurrence.java
index ad5f5e1..4a6ae2e 100644
--- a/ignite-tc-helper-web/src/main/java/org/apache/ignite/ci/tcmodel/result/tests/TestOccurrence.java
+++ b/ignite-tc-helper-web/src/main/java/org/apache/ignite/ci/tcmodel/result/tests/TestOccurrence.java
@@ -84,10 +84,6 @@ public class TestOccurrence {
return id;
}
- public long getDuration() {
- return duration != null ? duration : 0;
- }
-
public TestOccurrence setId(String id) {
this.id = id;
diff --git a/ignite-tc-helper-web/src/main/java/org/apache/ignite/ci/teamcity/ignited/fatbuild/TestCompacted.java b/ignite-tc-helper-web/src/main/java/org/apache/ignite/ci/teamcity/ignited/fatbuild/TestCompacted.java
index 2433849..902dbee 100644
--- a/ignite-tc-helper-web/src/main/java/org/apache/ignite/ci/teamcity/ignited/fatbuild/TestCompacted.java
+++ b/ignite-tc-helper-web/src/main/java/org/apache/ignite/ci/teamcity/ignited/fatbuild/TestCompacted.java
@@ -349,11 +349,11 @@ public class TestCompacted {
return status;
}
- @Nullable
- public Integer getDuration() {
+ @Nullable public Integer getDuration() {
return duration < 0 ? null : duration;
}
+ /** {@inheritDoc} */
@Override public String toString() {
return MoreObjects.toStringHelper(this)
.add("idInBuild", idInBuild)
diff --git a/ignite-tc-helper-web/src/main/java/org/apache/ignite/ci/web/model/current/ChainAtServerCurrentStatus.java b/ignite-tc-helper-web/src/main/java/org/apache/ignite/ci/web/model/current/ChainAtServerCurrentStatus.java
index cae9d95..8d6711f 100644
--- a/ignite-tc-helper-web/src/main/java/org/apache/ignite/ci/web/model/current/ChainAtServerCurrentStatus.java
+++ b/ignite-tc-helper-web/src/main/java/org/apache/ignite/ci/web/model/current/ChainAtServerCurrentStatus.java
@@ -69,6 +69,9 @@ public class ChainAtServerCurrentStatus {
/** Duration printable. */
public String durationPrintable;
+ /** Tests duration printable. */
+ public String testsDurationPrintable;
+
/** top long running suites */
public List<TestFailure> topLongRunning = new ArrayList<>();
@@ -108,10 +111,11 @@ public class ChainAtServerCurrentStatus {
}
);
durationPrintable = ctx.getDurationPrintable();
+ testsDurationPrintable = ctx.getTestsDurationPrintable();
webToHist = buildWebLink(teamcity, ctx);
webToBuild = buildWebLinkToBuild(teamcity, ctx);
- Stream<T2<MultBuildRunCtx, ITestFailures>> allLongRunning = ctx.suites().stream().flatMap(
+ Stream<T2<MultBuildRunCtx, ITestFailures>> allLongRunning = ctx.suites().flatMap(
suite -> suite.getTopLongRunning().map(t -> new T2<>(suite, t))
);
Comparator<T2<MultBuildRunCtx, ITestFailures>> durationComp
@@ -130,7 +134,7 @@ public class ChainAtServerCurrentStatus {
}
);
- Stream<T2<MultBuildRunCtx, Map.Entry<String, Long>>> allLogConsumers = ctx.suites().stream().flatMap(
+ Stream<T2<MultBuildRunCtx, Map.Entry<String, Long>>> allLogConsumers = ctx.suites().flatMap(
suite -> suite.getTopLogConsumers().map(t -> new T2<>(suite, t))
);
Comparator<T2<MultBuildRunCtx, Map.Entry<String, Long>>> longConsumingComp
@@ -184,6 +188,7 @@ public class ChainAtServerCurrentStatus {
Objects.equal(failedTests, status.failedTests) &&
Objects.equal(failedToFinish, status.failedToFinish) &&
Objects.equal(durationPrintable, status.durationPrintable) &&
+ Objects.equal(testsDurationPrintable, status.testsDurationPrintable) &&
Objects.equal(logConsumers, status.logConsumers) &&
Objects.equal(topLongRunning, status.topLongRunning) &&
Objects.equal(buildNotFound, status.buildNotFound);
@@ -192,7 +197,7 @@ public class ChainAtServerCurrentStatus {
/** {@inheritDoc} */
@Override public int hashCode() {
return Objects.hashCode(chainName, serverId, branchName, webToHist, webToBuild, suites,
- failedTests, failedToFinish, durationPrintable,
+ failedTests, failedToFinish, durationPrintable, testsDurationPrintable,
logConsumers, topLongRunning, buildNotFound);
}
diff --git a/ignite-tc-helper-web/src/main/java/org/apache/ignite/ci/web/model/current/SuiteCurrentStatus.java b/ignite-tc-helper-web/src/main/java/org/apache/ignite/ci/web/model/current/SuiteCurrentStatus.java
index 9e64711..ac33847 100644
--- a/ignite-tc-helper-web/src/main/java/org/apache/ignite/ci/web/model/current/SuiteCurrentStatus.java
+++ b/ignite-tc-helper-web/src/main/java/org/apache/ignite/ci/web/model/current/SuiteCurrentStatus.java
@@ -105,6 +105,8 @@ import static org.apache.ignite.ci.util.UrlUtil.escape;
public String durationPrintable;
+ public String testsDurationPrintable;
+
/**
* Advisory mark there is problem in this suite.
*/
@@ -135,6 +137,7 @@ import static org.apache.ignite.ci.util.UrlUtil.escape;
hasCriticalProblem = suite.hasCriticalProblem();
failedTests = suite.failedTests();
durationPrintable = millisToDurationPrintable(suite.getBuildDuration());
+ testsDurationPrintable = millisToDurationPrintable(suite.getAvgTestsDuration());
webToHist = buildWebLink(teamcity, suite);
webToHistBaseBranch = buildWebLink(teamcity, suite, baseBranch);
webToBuild = buildWebLinkToBuild(teamcity, suite);
@@ -342,6 +345,7 @@ import static org.apache.ignite.ci.util.UrlUtil.escape;
Objects.equal(userCommits, status.userCommits) &&
Objects.equal(failedTests, status.failedTests) &&
Objects.equal(durationPrintable, status.durationPrintable)&&
+ Objects.equal(testsDurationPrintable, status.testsDurationPrintable)&&
Objects.equal(warnOnly, status.warnOnly);
}
@@ -350,7 +354,7 @@ import static org.apache.ignite.ci.util.UrlUtil.escape;
return Objects.hashCode(name, result, hasCriticalProblem, webToHist, webToHistBaseBranch, webToBuild, testFailures,
topLongRunning, webUrlThreadDump, runningBuildCount, queuedBuildCount, serverId,
suiteId, branchName, failures, runs, failureRate,
- failsAllHist, criticalFails, userCommits, failedTests, durationPrintable,
+ failsAllHist, criticalFails, userCommits, failedTests, durationPrintable, testsDurationPrintable,
warnOnly);
}
diff --git a/ignite-tc-helper-web/src/main/webapp/js/testfails-2.1.js b/ignite-tc-helper-web/src/main/webapp/js/testfails-2.1.js
index e31fa3d..ca50ee8 100644
--- a/ignite-tc-helper-web/src/main/webapp/js/testfails-2.1.js
+++ b/ignite-tc-helper-web/src/main/webapp/js/testfails-2.1.js
@@ -81,10 +81,6 @@ function showChainCurrentStatusData(server, settings) {
}
var res = "";
- var altTxt = "";
-
- if (isDefinedAndFilled(server.durationPrintable))
- altTxt += "duration: " + server.durationPrintable;
res += "<table border='0px'>";
res += "<tr bgcolor='#F5F5FF'><td colspan='3'><b><a href='" + server.webToHist + "'>";
@@ -96,7 +92,7 @@ function showChainCurrentStatusData(server, settings) {
res += "</a> ";
res += "[";
- res += " <a href='" + server.webToBuild + "' title='" + altTxt + "'>";
+ res += " <a href='" + server.webToBuild + "' title=''>";
res += "tests " + server.failedTests + " suites " + server.failedToFinish + "";
res += " </a>";
res += "] ";
@@ -139,7 +135,7 @@ function showChainCurrentStatusData(server, settings) {
mInfo += " title='trigger builds'>on top</a><br>";
}
- mInfo += altTxt + "<br>";
+ mInfo += "Duration: " + server.durationPrintable + " (Tests: " + server.testsDurationPrintable + ")<br>";
if (isDefinedAndFilled(server.topLongRunning) && server.topLongRunning.length > 0) {
mInfo += "Top long running:<br>";
@@ -550,10 +546,7 @@ function showSuiteData(suite, settings) {
moreInfoTxt += "Last commits from: " + suite.userCommits + " <br>";
}
- moreInfoTxt += "Duration: " + suite.durationPrintable + " <br>";
-
- var altTxt = "";
- altTxt += "Duration: " + suite.durationPrintable + "; ";
+ moreInfoTxt += "Duration: " + suite.durationPrintable + " (Tests: " + suite.testsDurationPrintable + ")<br>";
var res = "";
res += "<tr bgcolor='#FAFAFF'><td align='right' valign='top'>";
@@ -587,7 +580,7 @@ function showSuiteData(suite, settings) {
res += "<span style='border-color: " + color + "; width:6px; height:6px; display: inline-block; border-width: 4px; color: black; border-style: solid;' title='" + failRateText + "'></span> ";
res += "<a href='" + suite.webToHist + "'>" + suite.name + "</a> " +
- "[ " + "<a href='" + suite.webToBuild + "' title='" + altTxt + "'> " +
+ "[ " + "<a href='" + suite.webToBuild + "' title=''> " +
"tests " + suite.failedTests + " " + suite.result;
if (isDefinedAndFilled(suite.warnOnly) && suite.warnOnly.length > 0) {