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 2019/08/04 11:30:22 UTC

[ignite-teamcity-bot] branch newtest-detection-fix updated: Newly contributed test detection fixed: test presence in suite is checked, fixed should be first check

This is an automated email from the ASF dual-hosted git repository.

dpavlov pushed a commit to branch newtest-detection-fix
in repository https://gitbox.apache.org/repos/asf/ignite-teamcity-bot.git


The following commit(s) were added to refs/heads/newtest-detection-fix by this push:
     new ecf7b20  Newly contributed test detection fixed: test presence in suite is checked, fixed should be first check
ecf7b20 is described below

commit ecf7b206cfd4785f85aab7e2615f7502bd4b6c9b
Author: Dmitriy Pavlov <dp...@apache.org>
AuthorDate: Sun Aug 4 14:30:17 2019 +0300

    Newly contributed test detection fixed: test presence in suite is checked, fixed should be first check
---
 .../apache/ignite/tcbot/engine/issue/EventTemplate.java   | 15 +++++++++++++++
 .../apache/ignite/tcbot/engine/issue/EventTemplates.java  |  2 +-
 .../ci/teamcity/ignited/runhist/RunHistCompacted.java     | 10 ++++++++++
 .../apache/ignite/tcignited/history/IEventTemplate.java   |  2 ++
 4 files changed, 28 insertions(+), 1 deletion(-)

diff --git a/tcbot-engine/src/main/java/org/apache/ignite/tcbot/engine/issue/EventTemplate.java b/tcbot-engine/src/main/java/org/apache/ignite/tcbot/engine/issue/EventTemplate.java
index 8f754e5..0298bc3 100644
--- a/tcbot-engine/src/main/java/org/apache/ignite/tcbot/engine/issue/EventTemplate.java
+++ b/tcbot-engine/src/main/java/org/apache/ignite/tcbot/engine/issue/EventTemplate.java
@@ -23,6 +23,10 @@ public class EventTemplate implements IEventTemplate {
     private final int[] beforeEvent;
     private final int[] eventAndAfter;
     private boolean includeMissing = false;
+    /**
+     * Event template eventAndAfter should be always first build in history of non-missed object.
+     */
+    private boolean shouldBeFirstNonMissing = false;
 
     public EventTemplate(int[] beforeEvent, int[] eventAndAfter) {
         this.beforeEvent = beforeEvent;
@@ -42,6 +46,11 @@ public class EventTemplate implements IEventTemplate {
         return includeMissing;
     }
 
+    @Override
+    public boolean shouldBeFirstNonMissing() {
+        return shouldBeFirstNonMissing;
+    }
+
     EventTemplate includeMissing(boolean include) {
         this.includeMissing = include;
 
@@ -51,4 +60,10 @@ public class EventTemplate implements IEventTemplate {
     public int cntEvents() {
         return beforeEvent.length + eventAndAfter.length;
     }
+
+    public EventTemplate onlyForFirstNonMissing(boolean shouldBeFirst) {
+        this.shouldBeFirstNonMissing = shouldBeFirst;
+
+        return this;
+    }
 }
diff --git a/tcbot-engine/src/main/java/org/apache/ignite/tcbot/engine/issue/EventTemplates.java b/tcbot-engine/src/main/java/org/apache/ignite/tcbot/engine/issue/EventTemplates.java
index 8502925..98ecff9 100644
--- a/tcbot-engine/src/main/java/org/apache/ignite/tcbot/engine/issue/EventTemplates.java
+++ b/tcbot-engine/src/main/java/org/apache/ignite/tcbot/engine/issue/EventTemplates.java
@@ -40,7 +40,7 @@ public class EventTemplates {
     public static final EventTemplate newContributedTestFailure = new EventTemplate(
             new int[]{MISSING, MISSING, MISSING, MISSING},
             new int[]{FAIL, FAIL, FAIL, FAIL}
-    ).includeMissing(true);
+    ).includeMissing(true).onlyForFirstNonMissing(true);
 
     public static final EventTemplate newFailureForFlakyTest = new EventTemplate(
             new int[]{OK, OK, OK, OK, OK},
diff --git a/tcbot-teamcity-ignited/src/main/java/org/apache/ignite/ci/teamcity/ignited/runhist/RunHistCompacted.java b/tcbot-teamcity-ignited/src/main/java/org/apache/ignite/ci/teamcity/ignited/runhist/RunHistCompacted.java
index 3a0ccfd..23c01be 100644
--- a/tcbot-teamcity-ignited/src/main/java/org/apache/ignite/ci/teamcity/ignited/runhist/RunHistCompacted.java
+++ b/tcbot-teamcity-ignited/src/main/java/org/apache/ignite/ci/teamcity/ignited/runhist/RunHistCompacted.java
@@ -27,6 +27,7 @@ import org.apache.ignite.tcignited.history.RunStatus;
 import javax.annotation.Nullable;
 import java.util.List;
 import java.util.Objects;
+import java.util.Optional;
 import java.util.Set;
 import java.util.stream.Collectors;
 
@@ -141,6 +142,15 @@ public class RunHistCompacted implements  IRunHistory {
                 break;
         }
 
+        if (detectedAt != null && t.shouldBeFirstNonMissing()) {
+            Optional<Invocation> first = data.invocations(true).findFirst();
+            if (!first.isPresent())
+                return null;
+
+            if (first.get().buildId() != detectedAt)
+                return null;
+        }
+
         return detectedAt;
     }
 
diff --git a/tcbot-teamcity-ignited/src/main/java/org/apache/ignite/tcignited/history/IEventTemplate.java b/tcbot-teamcity-ignited/src/main/java/org/apache/ignite/tcignited/history/IEventTemplate.java
index cba384c..78b0edc 100644
--- a/tcbot-teamcity-ignited/src/main/java/org/apache/ignite/tcignited/history/IEventTemplate.java
+++ b/tcbot-teamcity-ignited/src/main/java/org/apache/ignite/tcignited/history/IEventTemplate.java
@@ -25,4 +25,6 @@ public interface IEventTemplate {
     int[] eventAndAfter();
 
     boolean includeMissing();
+
+    boolean shouldBeFirstNonMissing();
 }