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

commit 2c6d19c2bf64083d09962195a63b9b1523e655cf
Author: Dmitriy Pavlov <[email protected]>
AuthorDate: Tue Sep 11 15:15:04 2018 +0300

    IGNITE-9542: Refactored fail rates for test: base and current branch 
separation.
---
 .../ci/web/model/current/SuiteCurrentStatus.java   |   1 +
 .../ignite/ci/web/model/current/TestFailure.java   |  50 +++++++++-------
 .../model/{current => hist}/FailureSummary.java    |   5 +-
 .../ignite/ci/web/model/hist/TestHistory.java      |  65 +++++++++++++++++++++
 .../ignite/ci/web/rest/GetChainResultsAsHtml.java  |  51 ++++++++++++----
 ignite-tc-helper-web/src/main/webapp/all.html      |   4 +-
 .../src/main/webapp/build-comparator.html          |   4 +-
 ignite-tc-helper-web/src/main/webapp/build.html    |   4 +-
 ignite-tc-helper-web/src/main/webapp/current.html  |   4 +-
 .../src/main/webapp/img/error-icon-4.png           | Bin 8843 -> 0 bytes
 .../js/{testfails-2.0.js => testfails-2.1.js}      |  44 +++++++++-----
 ignite-tc-helper-web/src/main/webapp/pr.html       |   4 +-
 .../src/main/webapp/statistics.html                |   4 +-
 13 files changed, 181 insertions(+), 59 deletions(-)

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 91945c1..707a7cb 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
@@ -40,6 +40,7 @@ import org.apache.ignite.ci.analysis.TestLogCheckResult;
 import org.apache.ignite.ci.issue.EventTemplates;
 import org.apache.ignite.ci.issue.ProblemRef;
 import org.apache.ignite.ci.tcmodel.result.tests.TestOccurrenceFull;
+import org.apache.ignite.ci.web.model.hist.FailureSummary;
 import org.apache.ignite.ci.web.rest.GetBuildLog;
 import org.jetbrains.annotations.NotNull;
 
diff --git 
a/ignite-tc-helper-web/src/main/java/org/apache/ignite/ci/web/model/current/TestFailure.java
 
b/ignite-tc-helper-web/src/main/java/org/apache/ignite/ci/web/model/current/TestFailure.java
index 559fb3e..69ea5dc 100644
--- 
a/ignite-tc-helper-web/src/main/java/org/apache/ignite/ci/web/model/current/TestFailure.java
+++ 
b/ignite-tc-helper-web/src/main/java/org/apache/ignite/ci/web/model/current/TestFailure.java
@@ -35,6 +35,9 @@ import org.apache.ignite.ci.issue.EventTemplates;
 import org.apache.ignite.ci.issue.ProblemRef;
 import org.apache.ignite.ci.logs.LogMsgToWarn;
 import org.apache.ignite.ci.tcmodel.result.tests.TestOccurrenceFull;
+import org.apache.ignite.ci.web.model.hist.FailureSummary;
+import org.apache.ignite.ci.web.model.hist.TestHistory;
+import org.jetbrains.annotations.NotNull;
 
 import static org.apache.ignite.ci.util.TimeUtil.getDurationPrintable;
 import static org.apache.ignite.ci.util.UrlUtil.escape;
@@ -43,7 +46,7 @@ import static 
org.apache.ignite.ci.web.model.current.SuiteCurrentStatus.branchFo
 /**
  * UI model for test failure, probably merged with its history
  */
-@SuppressWarnings("WeakerAccess") public class TestFailure extends 
FailureSummary {
+@SuppressWarnings("WeakerAccess") public class TestFailure {
     /** Test full Name */
     public String name;
 
@@ -53,15 +56,15 @@ import static 
org.apache.ignite.ci.web.model.current.SuiteCurrentStatus.branchFo
     /** test short name with class and method */
     @Nullable public String testName;
 
-    /** Current filtered failures count, Usually 1 for get current */
+    /**
+     * Current filtered failures count, Usually 1 for get current (latest),
+     * may indicate several failures for history (merged recent runs).
+     */
     public Integer curFailures;
 
     /** Latest runs, 0,1,2 values for each run. */
     @Nullable public List<Integer> latestRuns;
 
-    /** Failure summary in tracked branch according to all runs history. */
-    @Nonnull public FailureSummary failsAllHist = new FailureSummary();
-
     /** Link to test history */
     @Nullable public String webUrl;
 
@@ -82,6 +85,14 @@ import static 
org.apache.ignite.ci.web.model.current.SuiteCurrentStatus.branchFo
 
     @Nullable public String flakyComments;
 
+    /** History cur branch. If it is absent, history is to be taken from 
histBaseBranch. */
+    @Nullable public TestHistory histCurBranch;
+
+    /**
+     * This history is created only for PR/Branch failures, it contains data 
from the base branch (e.g. master).
+     */
+    @NotNull public TestHistory histBaseBranch = new TestHistory();
+
     /**
      * @param failure
      * @param testFullOpt all related full test ocurrences
@@ -173,6 +184,11 @@ import static 
org.apache.ignite.ci.web.model.current.SuiteCurrentStatus.branchFo
             + "&tab=testDetails";
     }
 
+    /**
+     * @param runStatSupplier Run stat supplier.
+     * @param failRateNormalizedBranch Base branch: Fail rate and flakyness 
detection normalized branch.
+     * @param curBranchNormalized Cur branch normalized.
+     */
     public void initStat(@Nullable final Function<TestInBranch, RunStat> 
runStatSupplier,
         String failRateNormalizedBranch,
         String curBranchNormalized) {
@@ -184,14 +200,9 @@ import static 
org.apache.ignite.ci.web.model.current.SuiteCurrentStatus.branchFo
         final RunStat stat = runStatSupplier.apply(testInBranch);
 
         if (stat != null) {
-            failures = stat.getFailuresCount();
-            runs = stat.getRunsCount();
-            failureRate = stat.getFailPercentPrintable();
-
-            failsAllHist.failures = stat.getFailuresAllHist();
-            failsAllHist.runs = stat.getRunsAllHist();
-            failsAllHist.failureRate = stat.getFailPercentAllHistPrintable();
+            histBaseBranch.init(stat);
 
+            flakyComments = stat.getFlakyComments();
         }
 
         RunStat latestRunsSrcInBranch = null;
@@ -216,7 +227,6 @@ import static 
org.apache.ignite.ci.web.model.current.SuiteCurrentStatus.branchFo
             if (recentContributedTestId != null)
                 problemRef = new ProblemRef("Recently contributed test 
failure");
 
-            flakyComments = latestRunsSrcInBranch.getFlakyComments();
         }
     }
 
@@ -232,21 +242,19 @@ import static 
org.apache.ignite.ci.web.model.current.SuiteCurrentStatus.branchFo
             Objects.equal(suiteName, failure.suiteName) &&
             Objects.equal(testName, failure.testName) &&
             Objects.equal(curFailures, failure.curFailures) &&
-            Objects.equal(failures, failure.failures) &&
-            Objects.equal(runs, failure.runs) &&
-            Objects.equal(failureRate, failure.failureRate) &&
-            Objects.equal(failsAllHist, failure.failsAllHist) &&
             Objects.equal(webUrl, failure.webUrl) &&
             Objects.equal(webIssueUrl, failure.webIssueUrl) &&
             Objects.equal(webIssueText, failure.webIssueText) &&
-            Objects.equal(durationPrintable, failure.durationPrintable)&&
-            Objects.equal(warnings, failure.warnings);
+            Objects.equal(durationPrintable, failure.durationPrintable) &&
+            Objects.equal(warnings, failure.warnings) &&
+            Objects.equal(histBaseBranch, failure.histBaseBranch) &&
+            Objects.equal(histCurBranch, failure.histCurBranch);
     }
 
     /** {@inheritDoc} */
     @Override public int hashCode() {
-        return Objects.hashCode(name, suiteName, testName, curFailures, 
failures, runs, failureRate, failsAllHist,
-            webUrl, webIssueUrl, webIssueText, investigated, 
durationPrintable, warnings);
+        return Objects.hashCode(name, suiteName, testName, curFailures,
+            webUrl, webIssueUrl, webIssueText, investigated, 
durationPrintable, warnings, histBaseBranch, histCurBranch);
     }
 
     /** {@inheritDoc} */
diff --git 
a/ignite-tc-helper-web/src/main/java/org/apache/ignite/ci/web/model/current/FailureSummary.java
 
b/ignite-tc-helper-web/src/main/java/org/apache/ignite/ci/web/model/hist/FailureSummary.java
similarity index 92%
rename from 
ignite-tc-helper-web/src/main/java/org/apache/ignite/ci/web/model/current/FailureSummary.java
rename to 
ignite-tc-helper-web/src/main/java/org/apache/ignite/ci/web/model/hist/FailureSummary.java
index e67bd16..b831e85 100644
--- 
a/ignite-tc-helper-web/src/main/java/org/apache/ignite/ci/web/model/current/FailureSummary.java
+++ 
b/ignite-tc-helper-web/src/main/java/org/apache/ignite/ci/web/model/hist/FailureSummary.java
@@ -15,11 +15,14 @@
  * limitations under the License.
  */
 
-package org.apache.ignite.ci.web.model.current;
+package org.apache.ignite.ci.web.model.hist;
 
 import com.google.common.base.Objects;
 import javax.annotation.Nullable;
 
+/**
+ * Test failure summary: contains statistic of failures and total runs for 
suite or for test.
+ */
 public class FailureSummary {
     /** Registered number of failures from TC helper DB */
     @Nullable public Integer failures;
diff --git 
a/ignite-tc-helper-web/src/main/java/org/apache/ignite/ci/web/model/hist/TestHistory.java
 
b/ignite-tc-helper-web/src/main/java/org/apache/ignite/ci/web/model/hist/TestHistory.java
new file mode 100644
index 0000000..c8bc40a
--- /dev/null
+++ 
b/ignite-tc-helper-web/src/main/java/org/apache/ignite/ci/web/model/hist/TestHistory.java
@@ -0,0 +1,65 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package org.apache.ignite.ci.web.model.hist;
+
+import com.google.common.base.Objects;
+import java.util.List;
+import javax.annotation.Nullable;
+import org.apache.ignite.ci.analysis.RunStat;
+
+/**
+ * Summary of failures - all history and recent runs for suite or for suite.
+ */
+public class TestHistory {
+    /** 'All the time' runs history statistic. */
+    @Nullable public FailureSummary allTime = new FailureSummary();
+
+    /** Latest runs history statistic. */
+    @Nullable public FailureSummary recent = new FailureSummary();
+
+    /** Latest runs, 0,1,2 values for each run. */
+    @Nullable public List<Integer> latestRuns;
+
+    public void init(RunStat stat) {
+        recent.failures = stat.getFailuresCount();
+        recent.runs = stat.getRunsCount();
+        recent.failureRate = stat.getFailPercentPrintable();
+
+        allTime.failures = stat.getFailuresAllHist();
+        allTime.runs = stat.getRunsAllHist();
+        allTime.failureRate = stat.getFailPercentAllHistPrintable();
+
+        latestRuns = stat != null ? stat.getLatestRunResults() : null;
+    }
+
+    @Override public boolean equals(Object o) {
+        if (this == o)
+            return true;
+        if (o == null || getClass() != o.getClass())
+            return false;
+        TestHistory hist = (TestHistory)o;
+
+        return Objects.equal(allTime, hist.allTime) &&
+            Objects.equal(recent, hist.recent) &&
+            Objects.equal(latestRuns, hist.latestRuns);
+    }
+
+    @Override public int hashCode() {
+        return Objects.hashCode(allTime, recent, latestRuns);
+    }
+}
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 7f4ac34..710b7c0 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
@@ -39,6 +39,7 @@ import org.apache.ignite.ci.web.CtxListener;
 import org.apache.ignite.ci.web.model.current.ChainAtServerCurrentStatus;
 import org.apache.ignite.ci.web.model.current.SuiteCurrentStatus;
 import org.apache.ignite.ci.web.model.current.TestFailure;
+import org.apache.ignite.ci.web.model.hist.TestHistory;
 
 import static java.lang.Float.parseFloat;
 import static javax.ws.rs.core.MediaType.TEXT_HTML;
@@ -141,7 +142,7 @@ public class GetChainResultsAsHtml {
 
 
 
-    private boolean isDefinedAndFilled(Integer failures) {
+    private boolean isDefinedAndFilled(Object failures) {
         return failures!=null;
     }
 
@@ -242,7 +243,9 @@ public class GetChainResultsAsHtml {
 
         boolean haveIssue = isDefinedAndFilled(testFail.webIssueUrl) && 
isDefinedAndFilled(testFail.webIssueText);
 
-        String color = failureRateToColor(testFail.failureRate);
+        String color = (isDefinedAndFilled(testFail.histBaseBranch) && 
isDefinedAndFilled(testFail.histBaseBranch.recent))
+            ? failureRateToColor(testFail.histBaseBranch.recent.failureRate)
+            : "white";
 
         boolean investigated = testFail.investigated;
         if(investigated) {
@@ -264,17 +267,42 @@ public class GetChainResultsAsHtml {
 
         boolean haveWeb = isDefinedAndFilled(testFail.webUrl);
         String histContent = "";
-        if (testFail.failures != null && testFail.runs != null) {
-            histContent += " <span title='" + testFail.failures + " fails / " 
+ testFail.runs + " runs in all tracked branches in helper DB'>";
-            if (isDefinedAndFilled(testFail.failureRate))
-                histContent += "(fail rate " + testFail.failureRate + "%)";
+
+        TestHistory hist;
+
+        if(isDefinedAndFilled(testFail.histBaseBranch))
+            hist = testFail.histBaseBranch;
+        else
+            hist = null;
+
+        if (hist!=null) {
+            String testFailTitle = "";
+
+            if(isDefinedAndFilled(hist.recent))
+                testFailTitle = "recent rate: " + hist.recent.failures + " 
fails / " + hist.recent.runs + " runs" ;
+
+            if(isDefinedAndFilled(hist.allTime) && 
isDefinedAndFilled(hist.allTime.failures)) {
+                testFailTitle +=
+                    "; all history: " + hist.allTime.failureRate + "% ["+
+                        hist.allTime.failures + " fails / " +
+                        hist.allTime.runs + " runs] " ;
+            }
+
+            histContent += " <span title='" +testFailTitle + "'>";
+
+            if (isDefinedAndFilled(hist.recent) && 
isDefinedAndFilled(hist.recent.failureRate))
+                histContent += "(fail rate " + hist.recent.failureRate + "%)";
             else
-                histContent += "(fails: " + testFail.failures + "/" + 
testFail.runs + ")";
+                histContent += "(fails: " + hist.recent.failures + "/" + 
hist.recent.runs + ")";
+
+            if(isDefinedAndFilled(testFail.histCurBranch)) {
+                //todo presence of this indicates that PR is checked, need to 
draw latest
+            }
+
             histContent += "</span>";
-        }
-        else if (haveWeb) {
+        } else if (haveWeb)
             histContent += " (test history)";
-        }
+
         if (haveWeb)
             res += "<a href='" + testFail.webUrl + "'>";
         res += histContent;
@@ -282,9 +310,8 @@ public class GetChainResultsAsHtml {
             res += "</a>";
 
 
-        if(investigated) {
+        if(investigated)
             res += "</span> ";
-        }
 
         res += " <br>";
         return res;
diff --git a/ignite-tc-helper-web/src/main/webapp/all.html 
b/ignite-tc-helper-web/src/main/webapp/all.html
index 49d9da4..21f51ee 100644
--- a/ignite-tc-helper-web/src/main/webapp/all.html
+++ b/ignite-tc-helper-web/src/main/webapp/all.html
@@ -8,14 +8,14 @@
     <script src="https://code.jquery.com/jquery-1.12.4.js";></script>
     <script src="https://code.jquery.com/ui/1.12.1/jquery-ui.js";></script>
     <script src="js/common-1.6.js"></script>
-    <script src="js/testfails-2.0.js"></script>
+    <script src="js/testfails-2.1.js"></script>
 </head>
 <body>
 <script>
 var g_shownDataHashCodeHex = ""
 
 $(document).ready(function() {
-    $.getScript("js/testfails-2.0.js", function(data, textStatus, jqxhr){ });
+    $.getScript("js/testfails-2.1.js", function(data, textStatus, jqxhr){ });
 
     $( document ).tooltip();
 
diff --git a/ignite-tc-helper-web/src/main/webapp/build-comparator.html 
b/ignite-tc-helper-web/src/main/webapp/build-comparator.html
index 7d00eef..4f3f992 100644
--- a/ignite-tc-helper-web/src/main/webapp/build-comparator.html
+++ b/ignite-tc-helper-web/src/main/webapp/build-comparator.html
@@ -9,14 +9,14 @@
     <script src="https://code.jquery.com/ui/1.12.1/jquery-ui.js";></script>
 
     <script src="js/common-1.6.js"></script>
-    <script src="js/testfails-2.0.js"></script>
+    <script src="js/testfails-2.1.js"></script>
 </head>
 <body>
 <script>
     var g_shownDataHashCodeHex = "";
 
     $(document).ready(function() {
-        $.getScript("js/testfails-2.0.js", function(data, textStatus, jqxhr){ 
});
+        $.getScript("js/testfails-2.1.js", function(data, textStatus, jqxhr){ 
});
 
         $( document ).tooltip();
         loadData();
diff --git a/ignite-tc-helper-web/src/main/webapp/build.html 
b/ignite-tc-helper-web/src/main/webapp/build.html
index ed1f206..520b0d9 100644
--- a/ignite-tc-helper-web/src/main/webapp/build.html
+++ b/ignite-tc-helper-web/src/main/webapp/build.html
@@ -9,14 +9,14 @@
     <script src="https://code.jquery.com/ui/1.12.1/jquery-ui.js";></script>
 
     <script src="js/common-1.6.js"></script>
-    <script src="js/testfails-2.0.js"></script>
+    <script src="js/testfails-2.1.js"></script>
 </head>
 <body>
 <script>
 var g_shownDataHashCodeHex = ""
 
 $(document).ready(function() {
-    $.getScript("js/testfails-2.0.js", function(data, textStatus, jqxhr){ });
+    $.getScript("js/testfails-2.1.js", function(data, textStatus, jqxhr){ });
     
     $( document ).tooltip();
     loadData();
diff --git a/ignite-tc-helper-web/src/main/webapp/current.html 
b/ignite-tc-helper-web/src/main/webapp/current.html
index 66d4f08..c75c278 100644
--- a/ignite-tc-helper-web/src/main/webapp/current.html
+++ b/ignite-tc-helper-web/src/main/webapp/current.html
@@ -9,7 +9,7 @@
     <script src="https://code.jquery.com/ui/1.12.1/jquery-ui.js";></script>
 
     <script src="js/common-1.6.js"></script>
-    <script src="js/testfails-2.0.js"></script>
+    <script src="js/testfails-2.1.js"></script>
 </head>
 <body>
 <script>
@@ -17,7 +17,7 @@ var g_shownDataHashCodeHex = ""
 var g_updTimer = null;
 
 $(document).ready(function() {
-    $.getScript("js/testfails-2.0.js", function(data, textStatus, jqxhr){ });
+    $.getScript("js/testfails-2.1.js", function(data, textStatus, jqxhr){ });
     
     $( document ).tooltip();
     loadData();
diff --git a/ignite-tc-helper-web/src/main/webapp/img/error-icon-4.png 
b/ignite-tc-helper-web/src/main/webapp/img/error-icon-4.png
deleted file mode 100644
index 56ef806..0000000
Binary files a/ignite-tc-helper-web/src/main/webapp/img/error-icon-4.png and 
/dev/null differ
diff --git a/ignite-tc-helper-web/src/main/webapp/js/testfails-2.0.js 
b/ignite-tc-helper-web/src/main/webapp/js/testfails-2.1.js
similarity index 94%
rename from ignite-tc-helper-web/src/main/webapp/js/testfails-2.0.js
rename to ignite-tc-helper-web/src/main/webapp/js/testfails-2.1.js
index e363882..5652414 100644
--- a/ignite-tc-helper-web/src/main/webapp/js/testfails-2.0.js
+++ b/ignite-tc-helper-web/src/main/webapp/js/testfails-2.1.js
@@ -334,7 +334,7 @@ function showSuiteData(suite, settings) {
     }
 
     if(isDefinedAndFilled(suite.problemRef)) {
-        res += "<img width='12px' height='12px' src='img/error-icon-4.png' 
title='" + suite.problemRef.name + "'> ";
+        res += "<span title='"+testFail.problemRef.name +"'>&#128030;</span> "
     }
 
     var color = failureRateToColor(suite.failureRate);
@@ -497,7 +497,9 @@ function showTestFailData(testFail, isFailureShown, 
settings) {
 
     var haveIssue = isDefinedAndFilled(testFail.webIssueUrl) && 
isDefinedAndFilled(testFail.webIssueText)
 
-    var color = isFailureShown ? failureRateToColor(testFail.failureRate) : 
"white";
+    var color = (isFailureShown && isDefinedAndFilled(testFail.histBaseBranch) 
&& isDefinedAndFilled(testFail.histBaseBranch.recent))
+        ? failureRateToColor(testFail.histBaseBranch.recent.failureRate)
+        : "white";
 
     var investigated = isDefinedAndFilled(testFail.investigated) && 
testFail.investigated;
     if (investigated) {
@@ -531,8 +533,6 @@ function showTestFailData(testFail, isFailureShown, 
settings) {
     }
 
     if(isFailureShown && isDefinedAndFilled(testFail.problemRef)) {
-        //res += "<img width='12px' height='12px' src='img/error-icon-4.png' 
title='" + testFail.problemRef.name + "'> ";
-
         res += "<span title='"+testFail.problemRef.name +"'>&#128030;</span>"
         if(!bold)
            res += "<b>";
@@ -565,21 +565,39 @@ function showTestFailData(testFail, isFailureShown, 
settings) {
 
     var haveWeb = isDefinedAndFilled(testFail.webUrl);
     var histContent = "";
-    if (isFailureShown && testFail.failures != null && testFail.runs != null) {
-        var testFailTitle = "recent rate: " + testFail.failures + " fails / " 
+ testFail.runs + " runs" ;
 
-        if(isDefinedAndFilled(testFail.failsAllHist) && 
isDefinedAndFilled(testFail.failsAllHist.failures)) {
+    //see class TestHistory
+    var hist;
+
+    if(isDefinedAndFilled(testFail.histBaseBranch))
+        hist = testFail.histBaseBranch
+    else
+        hist = null;
+
+    if (isFailureShown && hist!=null) {
+        var testFailTitle = "";
+
+        if(isDefinedAndFilled(hist.recent))
+            testFailTitle = "recent rate: " + hist.recent.failures + " fails / 
" + hist.recent.runs + " runs" ;
+
+        if(isDefinedAndFilled(hist.allTime) && 
isDefinedAndFilled(hist.allTime.failures)) {
             testFailTitle +=
-                 "; all history: " + testFail.failsAllHist.failureRate + "% ["+
-                  testFail.failsAllHist.failures + " fails / " +
-                  testFail.failsAllHist.runs + " runs] " ;
+                 "; all history: " + hist.allTime.failureRate + "% ["+
+                  hist.allTime.failures + " fails / " +
+                  hist.allTime.runs + " runs] " ;
         }
 
         histContent += " <span title='" +testFailTitle + "'>";
-        if (isDefinedAndFilled(testFail.failureRate))
-            histContent += "(fail rate " + testFail.failureRate + "%)";
+        
+        if (isDefinedAndFilled(hist.recent) && 
isDefinedAndFilled(hist.recent.failureRate))
+            histContent += "(fail rate " + hist.recent.failureRate + "%)";
         else
-            histContent += "(fails: " + testFail.failures + "/" + 
testFail.runs + ")";
+            histContent += "(fails: " + hist.recent.failures + "/" + 
hist.recent.runs + ")";
+            
+        if(isDefinedAndFilled(testFail.histCurBranch)) {
+            //todo presence of this indicates that PR is checked, need to draw 
latest
+        }
+        
         histContent += "</span>";
 
     } else if (haveWeb) {
diff --git a/ignite-tc-helper-web/src/main/webapp/pr.html 
b/ignite-tc-helper-web/src/main/webapp/pr.html
index da8e4a6..0176789 100644
--- a/ignite-tc-helper-web/src/main/webapp/pr.html
+++ b/ignite-tc-helper-web/src/main/webapp/pr.html
@@ -8,12 +8,12 @@
     <script src="https://code.jquery.com/jquery-1.12.4.js";></script>
     <script src="https://code.jquery.com/ui/1.12.1/jquery-ui.js";></script>
     <script src="js/common-1.6.js"></script>
-    <script src="js/testfails-2.0.js"></script>
+    <script src="js/testfails-2.1.js"></script>
 </head>
 <body>
 <script>
 $(document).ready(function() {
-    $.getScript("js/testfails-2.0.js", function(data, textStatus, jqxhr){ });
+    $.getScript("js/testfails-2.1.js", function(data, textStatus, jqxhr){ });
 
     $( document ).tooltip();
     loadData();
diff --git a/ignite-tc-helper-web/src/main/webapp/statistics.html 
b/ignite-tc-helper-web/src/main/webapp/statistics.html
index ffdf9bb..c8dfabc 100644
--- a/ignite-tc-helper-web/src/main/webapp/statistics.html
+++ b/ignite-tc-helper-web/src/main/webapp/statistics.html
@@ -8,7 +8,7 @@
     <script src="https://code.jquery.com/jquery-1.12.4.js";></script>
     <script src="https://code.jquery.com/ui/1.12.1/jquery-ui.js";></script>
     <script src="js/common-1.6.js"></script>
-    <script src="js/testfails-2.0.js"></script>
+    <script src="js/testfails-2.1.js"></script>
     <style>
         table {
             width: 70%;
@@ -33,7 +33,7 @@
     var g_updTimer = null;
 
     $(document).ready(function() {
-        $.getScript("js/testfails-2.0.js", function(data, textStatus, jqxhr){ 
});
+        $.getScript("js/testfails-2.1.js", function(data, textStatus, jqxhr){ 
});
 
         $( document ).tooltip();
         loadData();

Reply via email to