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 3289df7 Current tracked branch: Option added to show tests longer
that N seconds
3289df7 is described below
commit 3289df74676b819fd9357d001709590e1189f2a1
Author: Dmitriy Pavlov <[email protected]>
AuthorDate: Fri Jul 26 20:15:05 2019 +0300
Current tracked branch: Option added to show tests longer that N seconds
---
.../ignite/ci/tcbot/issue/IssueDetector.java | 6 ++-
.../org/apache/ignite/ci/web/model/Version.java | 2 +-
.../ignite/ci/web/rest/GetChainResultsAsHtml.java | 2 +-
.../ci/web/rest/build/GetBuildTestFailures.java | 2 +-
.../rest/tracked/GetTrackedBranchTestResults.java | 31 ++++++++-----
ignite-tc-helper-web/src/main/webapp/current.html | 54 ++++++++++++++--------
.../src/main/webapp/js/testfails-2.2.js | 4 +-
.../ci/tcbot/chain/TrackedBranchProcessorTest.java | 3 +-
.../ignite/tcbot/engine/chain/MultBuildRunCtx.java | 7 +++
.../tcbot/engine/chain/TestCompactedMult.java | 7 +++
.../ignite/tcbot/engine/pr/PrChainsProcessor.java | 4 +-
.../tracked/IDetailedStatusForTrackedBranch.java | 3 +-
.../tracked/TrackedBranchChainsProcessor.java | 5 +-
.../apache/ignite/tcbot/engine/ui/DsChainUi.java | 12 +++--
.../apache/ignite/tcbot/engine/ui/DsSuiteUi.java | 18 +++++---
15 files changed, 108 insertions(+), 52 deletions(-)
diff --git
a/ignite-tc-helper-web/src/main/java/org/apache/ignite/ci/tcbot/issue/IssueDetector.java
b/ignite-tc-helper-web/src/main/java/org/apache/ignite/ci/tcbot/issue/IssueDetector.java
index 7d6ebbb..d65449d 100644
---
a/ignite-tc-helper-web/src/main/java/org/apache/ignite/ci/tcbot/issue/IssueDetector.java
+++
b/ignite-tc-helper-web/src/main/java/org/apache/ignite/ci/tcbot/issue/IssueDetector.java
@@ -579,7 +579,8 @@ public class IssueDetector {
false,
null,
DisplayMode.None,
- null);
+ null,
+ -1);
DsSummaryUi failures =
tbProc.getTrackedBranchTestFailures(brachName,
@@ -590,7 +591,8 @@ public class IssueDetector {
false,
null,
DisplayMode.OnlyFailures,
- null);
+ null,
+ -1);
String issRes = registerIssuesAndNotifyLater(failures,
backgroundOpsCreds);
diff --git
a/ignite-tc-helper-web/src/main/java/org/apache/ignite/ci/web/model/Version.java
b/ignite-tc-helper-web/src/main/java/org/apache/ignite/ci/web/model/Version.java
index 79310e2..96d838f 100644
---
a/ignite-tc-helper-web/src/main/java/org/apache/ignite/ci/web/model/Version.java
+++
b/ignite-tc-helper-web/src/main/java/org/apache/ignite/ci/web/model/Version.java
@@ -28,7 +28,7 @@ package org.apache.ignite.ci.web.model;
public static final String GITHUB_REF =
"https://github.com/apache/ignite-teamcity-bot";
/** TC Bot Version. */
- public static final String VERSION = "20190725";
+ public static final String VERSION = "20190726";
/** Java version, where Web App is running. */
public String javaVer;
diff --git
a/ignite-tc-helper-web/src/main/java/org/apache/ignite/ci/web/rest/GetChainResultsAsHtml.java
b/ignite-tc-helper-web/src/main/java/org/apache/ignite/ci/web/rest/GetChainResultsAsHtml.java
index 6fc3b53..16cad16 100644
---
a/ignite-tc-helper-web/src/main/java/org/apache/ignite/ci/web/rest/GetChainResultsAsHtml.java
+++
b/ignite-tc-helper-web/src/main/java/org/apache/ignite/ci/web/rest/GetChainResultsAsHtml.java
@@ -91,7 +91,7 @@ public class GetChainResultsAsHtml {
status.chainName = ctx.suiteName();
IStringCompactor c = injector.getInstance(IStringCompactor.class);
- status.initFromContext(tcIgn, ctx, failRateBranch, c, false, null,
null);
+ status.initFromContext(tcIgn, ctx, failRateBranch, c, false, null,
null, -1);
res.append(showChainAtServerData(status));
diff --git
a/ignite-tc-helper-web/src/main/java/org/apache/ignite/ci/web/rest/build/GetBuildTestFailures.java
b/ignite-tc-helper-web/src/main/java/org/apache/ignite/ci/web/rest/build/GetBuildTestFailures.java
index 0960b68..c016bf3 100644
---
a/ignite-tc-helper-web/src/main/java/org/apache/ignite/ci/web/rest/build/GetBuildTestFailures.java
+++
b/ignite-tc-helper-web/src/main/java/org/apache/ignite/ci/web/rest/build/GetBuildTestFailures.java
@@ -140,7 +140,7 @@ public class GetBuildTestFailures {
if (cnt > 0)
runningUpdates.addAndGet(cnt);
- chainStatus.initFromContext(tcIgnited, ctx, failRateBranch,
injector.getInstance(IStringCompactor.class), false, null, null);
+ chainStatus.initFromContext(tcIgnited, ctx, failRateBranch,
injector.getInstance(IStringCompactor.class), false, null, null, -1);
res.addChainOnServer(chainStatus);
diff --git
a/ignite-tc-helper-web/src/main/java/org/apache/ignite/ci/web/rest/tracked/GetTrackedBranchTestResults.java
b/ignite-tc-helper-web/src/main/java/org/apache/ignite/ci/web/rest/tracked/GetTrackedBranchTestResults.java
index 474d40c..0458eb2 100644
---
a/ignite-tc-helper-web/src/main/java/org/apache/ignite/ci/web/rest/tracked/GetTrackedBranchTestResults.java
+++
b/ignite-tc-helper-web/src/main/java/org/apache/ignite/ci/web/rest/tracked/GetTrackedBranchTestResults.java
@@ -69,9 +69,10 @@ public class GetTrackedBranchTestResults {
@Nullable @QueryParam("tagSelected") String tagSelected,
@Nullable @QueryParam("displayMode") String displayMode,
@Nullable @QueryParam("sortOption") String sortOption,
- @Nullable @QueryParam("count") Integer mergeCnt) {
+ @Nullable @QueryParam("count") Integer mergeCnt,
+ @Nullable @QueryParam("showTestLongerThan") Integer
showTestLongerThan) {
return new
UpdateInfo().copyFrom(getTestFailsResultsNoSync(branchOrNull, checkAllLogs,
trustedTests, tagSelected,
- displayMode, sortOption, mergeCnt));
+ displayMode, sortOption, mergeCnt, showTestLongerThan));
}
@GET
@@ -83,8 +84,9 @@ public class GetTrackedBranchTestResults {
@Nullable @QueryParam("tagSelected") String tagSelected,
@Nullable @QueryParam("displayMode") String displayMode,
@Nullable @QueryParam("sortOption") String sortOption,
- @Nullable @QueryParam("count") Integer mergeCnt) {
- return getTestFailsResultsNoSync(branchOrNull, checkAllLogs,
trustedTests, tagSelected, displayMode, sortOption, mergeCnt).toString();
+ @Nullable @QueryParam("count") Integer mergeCnt,
+ @Nullable @QueryParam("showTestLongerThan") Integer
showTestLongerThan) {
+ return getTestFailsResultsNoSync(branchOrNull, checkAllLogs,
trustedTests, tagSelected, displayMode, sortOption, mergeCnt,
showTestLongerThan).toString();
}
@GET
@@ -96,8 +98,9 @@ public class GetTrackedBranchTestResults {
@Nullable @QueryParam("tagSelected") String tagSelected,
@Nullable @QueryParam("displayMode") String displayMode,
@Nullable @QueryParam("sortOption") String sortOption,
- @Nullable @QueryParam("count") Integer mergeCnt) {
- return latestBuildResults(branch, checkAllLogs, trustedTests,
tagSelected, SyncMode.NONE, displayMode, sortOption, mergeCnt);
+ @Nullable @QueryParam("count") Integer mergeCnt,
+ @Nullable @QueryParam("showTestLongerThan") Integer
showTestLongerThan) {
+ return latestBuildResults(branch, checkAllLogs, trustedTests,
tagSelected, SyncMode.NONE, displayMode, sortOption, mergeCnt,
showTestLongerThan);
}
@GET
@@ -110,8 +113,9 @@ public class GetTrackedBranchTestResults {
@Nullable @QueryParam("tagSelected") String tagSelected,
@Nullable @QueryParam("displayMode") String displayMode,
@Nullable @QueryParam("sortOption") String sortOption,
- @Nullable @QueryParam("count") Integer mergeCnt) {
- return latestBuildResults(branch, checkAllLogs, trustedTests,
tagSelected, SyncMode.RELOAD_QUEUED, displayMode, sortOption, mergeCnt);
+ @Nullable @QueryParam("count") Integer mergeCnt,
+ @Nullable @QueryParam("showTestLongerThan") Integer
showTestLongerThan) {
+ return latestBuildResults(branch, checkAllLogs, trustedTests,
tagSelected, SyncMode.RELOAD_QUEUED, displayMode, sortOption, mergeCnt,
showTestLongerThan);
}
@NotNull private DsSummaryUi latestBuildResults(
@@ -122,18 +126,22 @@ public class GetTrackedBranchTestResults {
@Nonnull SyncMode mode,
@Nullable String displayMode,
@Nullable String sortOption,
- @Nullable Integer mergeCnt) {
+ @Nullable Integer mergeCnt,
+ @Nullable Integer showTestLongerThan) {
ITcBotUserCreds creds = ITcBotUserCreds.get(req);
Injector injector = CtxListener.getInjector(ctx);
int actualMergeBuilds = (mergeCnt == null || mergeCnt < 1) ? 1 :
mergeCnt;
+ int maxDurationSec = (showTestLongerThan == null || showTestLongerThan
< 1) ? 0 : showTestLongerThan;
+
return injector.getInstance(IDetailedStatusForTrackedBranch.class)
.getTrackedBranchTestFailures(branch, checkAllLogs,
actualMergeBuilds, creds, mode,
Boolean.TRUE.equals(trustedTests), tagSelected,
DisplayMode.parseStringValue(displayMode),
- SortOption.parseStringValue(sortOption));
+ SortOption.parseStringValue(sortOption),
+ maxDurationSec);
}
@GET
@@ -171,7 +179,8 @@ public class GetTrackedBranchTestResults {
Injector injector = CtxListener.getInjector(ctx);
return injector.getInstance(TrackedBranchChainsProcessor.class)
- .getTrackedBranchTestFailures(branchOpt, checkAllLogs, cntLimit,
creds, mode, false, null, DisplayMode.OnlyFailures, null);
+ .getTrackedBranchTestFailures(branchOpt, checkAllLogs, cntLimit,
creds, mode,
+ false, null, DisplayMode.OnlyFailures, null, -1);
}
/**
diff --git a/ignite-tc-helper-web/src/main/webapp/current.html
b/ignite-tc-helper-web/src/main/webapp/current.html
index 221009b..43dcb39 100644
--- a/ignite-tc-helper-web/src/main/webapp/current.html
+++ b/ignite-tc-helper-web/src/main/webapp/current.html
@@ -38,11 +38,11 @@ function genLink() {
}
function showQueryForm() {
- let min,max;
+ let min, max;
let minFailRate = findGetParameter("minFailRate");
if (minFailRate != null) {
- min = parseInt(minFailRate) ;
+ min = parseInt(minFailRate);
} else {
min = 0;
}
@@ -51,7 +51,7 @@ function showQueryForm() {
if (maxFailRate != null) {
max = parseInt(maxFailRate);
} else {
- max=100;
+ max = 100;
}
@@ -72,6 +72,11 @@ function showQueryForm() {
absMinFailRate: 0,
absMaxFailRate: 100,
failRateRange: [min, max],
+
+ showTestLongerThan: '',
+
+ tagForHistorySelected: '',
+ tagsForHistoryPresent: []
},
methods: {
formChanged: function () {
@@ -105,19 +110,18 @@ function showQueryForm() {
gVue.$data.count = count;
}
- let trustedTests = findGetParameter("trustedTests");
- if (trustedTests != null) {
- gVue.$data.trustedTests = trustedTests==="true";
- }
+ gVue.$data.trustedTests = findGetParameter("trustedTests") === "true";
+ gVue.$data.checkAllLogs = findGetParameter("checkAllLogs") === "true";
+ gVue.$data.hideFlakyFailures = findGetParameter("hideFlakyFailures") ===
"true";
- let checkAllLogs = findGetParameter("checkAllLogs");
- if (checkAllLogs != null) {
- gVue.$data.checkAllLogs = checkAllLogs==="true";
- }
+ let showTestLongerThan = findGetParameter("showTestLongerThan");
+ if (showTestLongerThan != null)
+ gVue.$data.showTestLongerThan = showTestLongerThan;
- var hideFlakyFailuresP = findGetParameter("hideFlakyFailures");
- if (hideFlakyFailuresP != null) {
- gVue.$data.hideFlakyFailures = hideFlakyFailuresP==="true";
+ let tagForHistorySelected = findGetParameter("tagForHistorySelected");
+ if (tagForHistorySelected != null) {
+ gVue.$data.tagsForHistoryPresent.push(tagForHistorySelected);
+ gVue.$data.tagForHistorySelected = tagForHistorySelected;
}
genLink();
@@ -173,6 +177,12 @@ function parmsForRest() {
curReqParms += "&hideFlakyFailures=" + gVue.$data.hideFlakyFailures;
+ if (gVue.$data.tagForHistorySelected != null)
+ curReqParms += "&tagForHistorySelected=" +
gVue.$data.tagForHistorySelected;
+
+ if (gVue.$data.showTestLongerThan != null)
+ curReqParms += "&showTestLongerThan=" + gVue.$data.showTestLongerThan;
+
return curReqParms;
}
@@ -257,6 +267,7 @@ function loadPartialData() {
function showData(result) {
let setOfTags = new Set(gVue.$data.tagsPresent);
+ let setOfHistTags = new Set(gVue.$data.tagForHistorySelected);
for (let i = 0; i < result.servers.length; i++) {
let chain = result.servers[i];
@@ -268,12 +279,14 @@ function showData(result) {
const tag = suite.tags[k];
setOfTags.add(tag);
+ setOfHistTags.add(tag);
}
}
}
}
gVue.$data.tagsPresent = Array.from(setOfTags);
+ gVue.$data.tagsForHistoryPresent = Array.from(setOfHistTags);
//var txtUrl = "rest/tracked/results/txt" + parmsForRest();
@@ -317,12 +330,15 @@ function showData(result) {
<option value="SuiteDuration">Suite
Duration</option>
</select>
<br>
- <span>Merge Builds: </span> <input
v-model.number="count" type="number" @change="formChanged">
+ <span>Merge Builds: </span>
+ <input v-model.number="count" type="number"
@change="formChanged">
<span title="Show trusted tests
count">Trusted tests: </span>
<input type="checkbox" v-model="trustedTests"
@change="formChanged">
<span title="Download and parse all
logs">Check logs: </span>
<input type="checkbox" v-model="checkAllLogs"
@change="formChanged">
-
+ <br>
+ <span>Show test longer than, seconds: </span>
+ <input v-model.number="showTestLongerThan"
type="number" @change="formChanged">
</td>
<td style="width: 50%">
@@ -350,7 +366,8 @@ function showData(result) {
hide-details
single-line
type="number"
- style="width:
60px"></v-text-field>
+ style="width: 60px"
+
@change="formChanged"></v-text-field>
<span>Max failure rate: </span>
<v-text-field
@@ -359,7 +376,8 @@ function showData(result) {
hide-details
single-line
type="number"
- style="width:
60px"></v-text-field>
+ style="width: 60px"
+
@change="formChanged"></v-text-field>
</template>
<template v-slot:append>
diff --git a/ignite-tc-helper-web/src/main/webapp/js/testfails-2.2.js
b/ignite-tc-helper-web/src/main/webapp/js/testfails-2.2.js
index bcd935c..d9772fd 100644
--- a/ignite-tc-helper-web/src/main/webapp/js/testfails-2.2.js
+++ b/ignite-tc-helper-web/src/main/webapp/js/testfails-2.2.js
@@ -949,7 +949,9 @@ function showTestFailData(testFail, isFailureShown,
settings) {
}
- if (!isFailureShown && isDefinedAndFilled(testFail.durationPrintable))
+ let showDuration = (isDefinedAndFilled(testFail.success) &&
testFail.success === true) || !isFailureShown;
+
+ if (showDuration && isDefinedAndFilled(testFail.durationPrintable))
res += " duration " + testFail.durationPrintable;
if (bold)
diff --git
a/ignite-tc-helper-web/src/test/java/org/apache/ignite/ci/tcbot/chain/TrackedBranchProcessorTest.java
b/ignite-tc-helper-web/src/test/java/org/apache/ignite/ci/tcbot/chain/TrackedBranchProcessorTest.java
index 499337a..c1f83fc 100644
---
a/ignite-tc-helper-web/src/test/java/org/apache/ignite/ci/tcbot/chain/TrackedBranchProcessorTest.java
+++
b/ignite-tc-helper-web/src/test/java/org/apache/ignite/ci/tcbot/chain/TrackedBranchProcessorTest.java
@@ -121,7 +121,8 @@ public class TrackedBranchProcessorTest {
false,
1,
mock, SyncMode.RELOAD_QUEUED,
- false, null, DisplayMode.OnlyFailures, null);
+ false, null, DisplayMode.OnlyFailures, null,
+ -1);
Gson gson = new GsonBuilder().setPrettyPrinting().create();
System.out.println(gson.toJson(failures));
diff --git
a/tcbot-engine/src/main/java/org/apache/ignite/tcbot/engine/chain/MultBuildRunCtx.java
b/tcbot-engine/src/main/java/org/apache/ignite/tcbot/engine/chain/MultBuildRunCtx.java
index 2afa07a..8218ed0 100644
---
a/tcbot-engine/src/main/java/org/apache/ignite/tcbot/engine/chain/MultBuildRunCtx.java
+++
b/tcbot-engine/src/main/java/org/apache/ignite/tcbot/engine/chain/MultBuildRunCtx.java
@@ -707,4 +707,11 @@ public class MultBuildRunCtx implements ISuiteResults {
public boolean hasTestToReport(ITeamcityIgnited tcIgnited, Integer
baseBranchId) {
return !getFilteredTests(test -> test.includeIntoReport(tcIgnited,
baseBranchId)).isEmpty();
}
+
+ public boolean hasLongRunningTest(int maxSec) {
+ if (maxSec < 1)
+ return false;
+
+ return !getFilteredTests(test ->
test.hasLongRunningTest(maxSec)).isEmpty();
+ }
}
diff --git
a/tcbot-engine/src/main/java/org/apache/ignite/tcbot/engine/chain/TestCompactedMult.java
b/tcbot-engine/src/main/java/org/apache/ignite/tcbot/engine/chain/TestCompactedMult.java
index f54a509..3c2cab5 100644
---
a/tcbot-engine/src/main/java/org/apache/ignite/tcbot/engine/chain/TestCompactedMult.java
+++
b/tcbot-engine/src/main/java/org/apache/ignite/tcbot/engine/chain/TestCompactedMult.java
@@ -181,4 +181,11 @@ public class TestCompactedMult {
return false;
}
+
+ public boolean hasLongRunningTest(int sec) {
+ if (sec < 1)
+ return false;
+
+ return getAvgDurationMs() > TimeUnit.SECONDS.toMillis(sec);
+ }
}
diff --git
a/tcbot-engine/src/main/java/org/apache/ignite/tcbot/engine/pr/PrChainsProcessor.java
b/tcbot-engine/src/main/java/org/apache/ignite/tcbot/engine/pr/PrChainsProcessor.java
index 84ed0f1..740f5bc 100644
---
a/tcbot-engine/src/main/java/org/apache/ignite/tcbot/engine/pr/PrChainsProcessor.java
+++
b/tcbot-engine/src/main/java/org/apache/ignite/tcbot/engine/pr/PrChainsProcessor.java
@@ -165,7 +165,7 @@ public class PrChainsProcessor {
runningUpdates.addAndGet(cnt0);
//fail rate reference is always default (master)
- chainStatus.initFromContext(tcIgnited, ctx, baseBranchForTc,
compactor, false, null, null); // don't need for PR
+ chainStatus.initFromContext(tcIgnited, ctx, baseBranchForTc,
compactor, false, null, null, -1); // don't need for PR
initJiraAndGitInfo(chainStatus, jiraIntegration,
gitHubConnIgnited);
}
@@ -329,7 +329,7 @@ public class PrChainsProcessor {
DsSuiteUi suiteUi = new DsSuiteUi();
suiteUi.testFailures = failures;
- suiteUi.initFromContext(tcIgnited, ctx, baseBranch,
compactor, false, false);
+ suiteUi.initFromContext(tcIgnited, ctx, baseBranch,
compactor, false, false, -1);
return suiteUi;
}
diff --git
a/tcbot-engine/src/main/java/org/apache/ignite/tcbot/engine/tracked/IDetailedStatusForTrackedBranch.java
b/tcbot-engine/src/main/java/org/apache/ignite/tcbot/engine/tracked/IDetailedStatusForTrackedBranch.java
index 851ba38..5621432 100644
---
a/tcbot-engine/src/main/java/org/apache/ignite/tcbot/engine/tracked/IDetailedStatusForTrackedBranch.java
+++
b/tcbot-engine/src/main/java/org/apache/ignite/tcbot/engine/tracked/IDetailedStatusForTrackedBranch.java
@@ -36,6 +36,7 @@ public interface IDetailedStatusForTrackedBranch {
* @param tagSelected Selected tag based filter. If null or empty all data
is returned.
* @param displayMode Suites and tests display mode. Default - failures
only.
* @param sortOption Sort mode
+ * @param maxDurationSec Show test as failed if duration is greater than
provided seconds count.
*/
public DsSummaryUi getTrackedBranchTestFailures(
@Nullable String branch,
@@ -46,7 +47,7 @@ public interface IDetailedStatusForTrackedBranch {
boolean calcTrustedTests,
@Nullable String tagSelected,
@Nullable DisplayMode displayMode,
- @Nullable SortOption sortOption);
+ @Nullable SortOption sortOption, int maxDurationSec);
// * @param baseTrackedBranch Branch tracked branch in Bot, has a
priority if both TC & Bot branches (baseBranchForTcParm) present.
}
diff --git
a/tcbot-engine/src/main/java/org/apache/ignite/tcbot/engine/tracked/TrackedBranchChainsProcessor.java
b/tcbot-engine/src/main/java/org/apache/ignite/tcbot/engine/tracked/TrackedBranchChainsProcessor.java
index 8777df3..7bf1aba 100644
---
a/tcbot-engine/src/main/java/org/apache/ignite/tcbot/engine/tracked/TrackedBranchChainsProcessor.java
+++
b/tcbot-engine/src/main/java/org/apache/ignite/tcbot/engine/tracked/TrackedBranchChainsProcessor.java
@@ -70,7 +70,8 @@ public class TrackedBranchChainsProcessor implements
IDetailedStatusForTrackedBr
boolean calcTrustedTests,
@Nullable String tagSelected,
@Nullable DisplayMode displayMode,
- @Nullable SortOption sortOption) {
+ @Nullable SortOption sortOption,
+ int maxDurationSec) {
final DsSummaryUi res = new DsSummaryUi();
final AtomicInteger runningUpdates = new AtomicInteger();
@@ -126,7 +127,7 @@ public class TrackedBranchChainsProcessor implements
IDetailedStatusForTrackedBr
if (cnt > 0)
runningUpdates.addAndGet(cnt);
- chainStatus.initFromContext(tcIgnited, ctx, baseBranchTc,
compactor, calcTrustedTests, tagSelected, displayMode);
+ chainStatus.initFromContext(tcIgnited, ctx, baseBranchTc,
compactor, calcTrustedTests, tagSelected, displayMode, maxDurationSec);
return chainStatus;
})
diff --git
a/tcbot-engine/src/main/java/org/apache/ignite/tcbot/engine/ui/DsChainUi.java
b/tcbot-engine/src/main/java/org/apache/ignite/tcbot/engine/ui/DsChainUi.java
index 2b62ffd..14a1c06 100644
---
a/tcbot-engine/src/main/java/org/apache/ignite/tcbot/engine/ui/DsChainUi.java
+++
b/tcbot-engine/src/main/java/org/apache/ignite/tcbot/engine/ui/DsChainUi.java
@@ -165,7 +165,8 @@ public class DsChainUi {
IStringCompactor compactor,
boolean calcTrustedTests,
@Nullable String tagSelected,
- @Nullable DisplayMode displayMode) {
+ @Nullable DisplayMode displayMode,
+ int maxDurationSec) {
failedTests = 0;
failedToFinish = 0;
totalTests = 0;
@@ -198,11 +199,14 @@ public class DsChainUi {
if (dModeToUse == DisplayMode.None)
return; //don't convert any suite for UI
- if (suite.isFailed() || dModeToUse == DisplayMode.ShowAllSuites
- || suite.hasTestToReport(tcIgnited, baseBranchId)) {
+ if (suite.isFailed()
+ || dModeToUse == DisplayMode.ShowAllSuites
+ || suite.hasTestToReport(tcIgnited, baseBranchId)
+ || suite.hasLongRunningTest(maxDurationSec)) {
final DsSuiteUi suiteCurStatus = new DsSuiteUi();
- suiteCurStatus.initFromContext(tcIgnited, suite,
baseBranchTc, compactor, true, calcTrustedTests);
+ suiteCurStatus.initFromContext(tcIgnited, suite,
baseBranchTc, compactor, true, calcTrustedTests,
+ maxDurationSec);
failedTests += suiteCurStatus.failedTests != null ?
suiteCurStatus.failedTests : 0;
diff --git
a/tcbot-engine/src/main/java/org/apache/ignite/tcbot/engine/ui/DsSuiteUi.java
b/tcbot-engine/src/main/java/org/apache/ignite/tcbot/engine/ui/DsSuiteUi.java
index 58dac7e..0f7b059 100644
---
a/tcbot-engine/src/main/java/org/apache/ignite/tcbot/engine/ui/DsSuiteUi.java
+++
b/tcbot-engine/src/main/java/org/apache/ignite/tcbot/engine/ui/DsSuiteUi.java
@@ -30,7 +30,6 @@ import java.util.function.Function;
import java.util.stream.Collectors;
import javax.annotation.Nonnull;
import javax.annotation.Nullable;
-import org.apache.ignite.tcbot.common.TcBotConst;
import org.apache.ignite.tcbot.common.util.UrlUtil;
import org.apache.ignite.tcbot.engine.chain.MultBuildRunCtx;
import org.apache.ignite.tcbot.engine.chain.TestCompactedMult;
@@ -156,13 +155,15 @@ public class DsSuiteUi extends DsHistoryStatUi {
* @param compactor String Compactor.
* @param includeTests Include tests - usually {@code true}, but it may be
disabled for speeding up VISA collection.
* @param calcTrustedTests
+ * @param maxDurationSec 0 or negative means don't indclude. has no effect
if tests not included
*/
public DsSuiteUi initFromContext(ITeamcityIgnited tcIgnited,
- @Nonnull final MultBuildRunCtx suite,
- @Nullable final String baseBranch,
- @Nonnull IStringCompactor compactor,
- boolean includeTests,
- boolean calcTrustedTests) {
+ @Nonnull final MultBuildRunCtx suite,
+ @Nullable final String baseBranch,
+ @Nonnull IStringCompactor compactor,
+ boolean includeTests,
+ boolean calcTrustedTests,
+ int maxDurationSec) {
name = suite.suiteName();
@@ -194,7 +195,9 @@ public class DsSuiteUi extends DsHistoryStatUi {
Integer buildTypeIdId = suite.buildTypeIdId();
if (includeTests) {
- List<TestCompactedMult> tests = suite.getFilteredTests(test ->
test.includeIntoReport(tcIgnited, baseBranchId));
+ List<TestCompactedMult> tests = suite.getFilteredTests(test ->
+ test.hasLongRunningTest(maxDurationSec)
+ || test.includeIntoReport(tcIgnited, baseBranchId) );
Function<TestCompactedMult, Float> function = testCompactedMult ->
{
IRunHistory res = testCompactedMult.history(tcIgnited,
baseBranchId);
@@ -206,6 +209,7 @@ public class DsSuiteUi extends DsHistoryStatUi {
tests.forEach(occurrence -> {
final DsTestFailureUi failure = new DsTestFailureUi();
+
failure.initFromOccurrence(occurrence, tcIgnited,
suite.projectId(),
suite.branchName(), baseBranch, baseBranchId);
failure.initStat(occurrence, buildTypeIdId, tcIgnited,
baseBranchId, curBranchId);