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 906efa7  New tests of timeout is detected only once; flaky failure 
test fixed
906efa7 is described below

commit 906efa7c29dfdb65411c47220ad89252a652844c
Author: Dmitriy Pavlov <[email protected]>
AuthorDate: Mon Sep 10 16:39:20 2018 +0300

    New tests of timeout is detected only once; flaky failure test fixed
---
 .../org/apache/ignite/ci/analysis/RunStat.java     |  8 +++-
 .../ignite/ci/issue/DetectingFailureTest.java      | 54 ++++++++++++++++++++--
 2 files changed, 57 insertions(+), 5 deletions(-)

diff --git 
a/ignite-tc-helper-web/src/main/java/org/apache/ignite/ci/analysis/RunStat.java 
b/ignite-tc-helper-web/src/main/java/org/apache/ignite/ci/analysis/RunStat.java
index 8e2671e..e6f0897 100644
--- 
a/ignite-tc-helper-web/src/main/java/org/apache/ignite/ci/analysis/RunStat.java
+++ 
b/ignite-tc-helper-web/src/main/java/org/apache/ignite/ci/analysis/RunStat.java
@@ -279,8 +279,12 @@ public class RunStat {
         addRunToLatest(new TestId(buildId, 0), runInfo);
     }
 
-    public void setBuildCriticalError(Integer bId) {
-        setBuildResCode(bId, new RunInfo(RES_CRITICAL_FAILURE, 
ChangesState.UNKNOWN));
+    /**
+     * Sets build status as having critical failure
+     * @param buildId Build id.
+     */
+    public void setBuildCriticalError(Integer buildId) {
+        setBuildResCode(buildId, new RunInfo(RES_CRITICAL_FAILURE, 
ChangesState.UNKNOWN));
     }
 
     /**
diff --git 
a/ignite-tc-helper-web/src/test/java/org/apache/ignite/ci/issue/DetectingFailureTest.java
 
b/ignite-tc-helper-web/src/test/java/org/apache/ignite/ci/issue/DetectingFailureTest.java
index 3a3fe35..e954521 100644
--- 
a/ignite-tc-helper-web/src/test/java/org/apache/ignite/ci/issue/DetectingFailureTest.java
+++ 
b/ignite-tc-helper-web/src/test/java/org/apache/ignite/ci/issue/DetectingFailureTest.java
@@ -27,6 +27,9 @@ import static 
org.apache.ignite.ci.analysis.RunStat.ChangesState.UNKNOWN;
 import static 
org.apache.ignite.ci.tcmodel.result.tests.TestOccurrence.STATUS_SUCCESS;
 import static org.junit.Assert.*;
 
+/**
+ * Issue detection test
+ */
 public class DetectingFailureTest {
     @Test
     public void detectFirstFailure() {
@@ -52,8 +55,11 @@ public class DetectingFailureTest {
         assertNull(stat.detectTemplate(EventTemplates.fixOfFailure));
     }
 
-    @NotNull private String fakeTestId(int i1) {
-        return "id:10231,build:(id:" + i1 + ")";
+    /**
+     * @param buildId Build Id.
+     */
+    @NotNull private String fakeTestId(int buildId) {
+        return "id:10231,build:(id:" + buildId + ")";
     }
 
     @Test
@@ -96,7 +102,7 @@ public class DetectingFailureTest {
         for (int i = 0; i < 50; i++) {
             occurrence.status = ints[i] == 0 ? Build.STATUS_SUCCESS : 
"FAILURE";
 
-            stat.addTestRunToLatest(occurrence.setId(fakeTestId(100 + i)), 
UNKNOWN);
+            stat.addTestRunToLatest(occurrence.setId(fakeTestId(100 + i)), 
RunStat.ChangesState.NONE);
         }
 
         occurrence.status = "FAILED";
@@ -144,4 +150,46 @@ public class DetectingFailureTest {
         assertNotNull(testId);
         assertEquals(firstFailedBuildId, testId.getBuildId());
     }
+
+
+    @Test
+    public void detectSuiteFailureIsOnlyOnce() {
+        RunStat stat = new RunStat("");
+
+        Build occurrence = new Build();
+
+        int startBuildId = 113;
+        int okOrFailedBuildsCnt = 5;
+        for (int i = 0; i < okOrFailedBuildsCnt; i++) {
+            occurrence.setId(startBuildId + i);
+            boolean ok = (int)(Math.random() * 1000) % 2 == 0;
+            occurrence.status = ok ? Build.STATUS_SUCCESS : "FAILURE";
+
+            stat.addBuildRun(occurrence);
+        }
+
+        int firstFailedBuildId = startBuildId + okOrFailedBuildsCnt;
+
+        int timedOutBuildCnt = 4;
+        for (int i = 0; i < timedOutBuildCnt; i++)
+            stat.setBuildCriticalError(firstFailedBuildId + i);
+
+        RunStat.TestId testId = 
stat.detectTemplate(EventTemplates.newCriticalFailure);
+
+        assertNotNull(testId);
+        assertEquals(firstFailedBuildId, testId.getBuildId());
+
+
+        for (int i = 0; i < 4; i++)
+            stat.setBuildCriticalError(timedOutBuildCnt + firstFailedBuildId + 
i);
+
+        RunStat.TestId testId2 = 
stat.detectTemplate(EventTemplates.newCriticalFailure);
+
+        System.out.println(stat.getLatestRunResults());
+        System.out.println(testId);
+        System.out.println(testId2);
+
+        assertEquals(testId, testId2);
+
+    }
 }
\ No newline at end of file

Reply via email to