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/24 13:41:49 UTC

[ignite-teamcity-bot] branch ignite-9542-new-run-stripe updated: IGNITE-9542: New Run stripe implementation: test for blockers detection development

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

dpavlov pushed a commit to branch ignite-9542-new-run-stripe
in repository https://gitbox.apache.org/repos/asf/ignite-teamcity-bot.git


The following commit(s) were added to refs/heads/ignite-9542-new-run-stripe by this push:
     new 43fb248  IGNITE-9542: New Run stripe implementation: test for blockers detection development
43fb248 is described below

commit 43fb24853de1b01eae79760d9e8b3dce4154215a
Author: Dmitriy Pavlov <dp...@apache.org>
AuthorDate: Sat Nov 24 16:41:46 2018 +0300

    IGNITE-9542: New Run stripe implementation: test for blockers detection development
---
 .../tcmodel/result/problems/ProblemOccurrence.java |  4 ++
 .../ci/tcbot/chain/PrChainsProcessorTest.java      | 81 ++++++++++++++++++----
 2 files changed, 70 insertions(+), 15 deletions(-)

diff --git a/ignite-tc-helper-web/src/main/java/org/apache/ignite/ci/tcmodel/result/problems/ProblemOccurrence.java b/ignite-tc-helper-web/src/main/java/org/apache/ignite/ci/tcmodel/result/problems/ProblemOccurrence.java
index eee412a..7b5afb4 100644
--- a/ignite-tc-helper-web/src/main/java/org/apache/ignite/ci/tcmodel/result/problems/ProblemOccurrence.java
+++ b/ignite-tc-helper-web/src/main/java/org/apache/ignite/ci/tcmodel/result/problems/ProblemOccurrence.java
@@ -99,4 +99,8 @@ public class ProblemOccurrence {
     public void id(String fullStrId) {
         this.id = fullStrId;
     }
+
+    public void setType(String type) {
+        this.type = type;
+    }
 }
diff --git a/ignite-tc-helper-web/src/test/java/org/apache/ignite/ci/tcbot/chain/PrChainsProcessorTest.java b/ignite-tc-helper-web/src/test/java/org/apache/ignite/ci/tcbot/chain/PrChainsProcessorTest.java
index 5ed0801..77fc372 100644
--- a/ignite-tc-helper-web/src/test/java/org/apache/ignite/ci/tcbot/chain/PrChainsProcessorTest.java
+++ b/ignite-tc-helper-web/src/test/java/org/apache/ignite/ci/tcbot/chain/PrChainsProcessorTest.java
@@ -21,11 +21,12 @@ import com.google.inject.Guice;
 import com.google.inject.Injector;
 import com.google.inject.internal.SingletonScope;
 import org.apache.ignite.ci.IAnalyticsEnabledTeamcity;
-import org.apache.ignite.ci.ITeamcity;
 import org.apache.ignite.ci.github.pure.IGitHubConnection;
 import org.apache.ignite.ci.github.pure.IGitHubConnectionProvider;
+import org.apache.ignite.ci.tcmodel.conf.BuildType;
 import org.apache.ignite.ci.tcmodel.hist.BuildRef;
 import org.apache.ignite.ci.tcmodel.result.Build;
+import org.apache.ignite.ci.tcmodel.result.problems.ProblemOccurrence;
 import org.apache.ignite.ci.tcmodel.result.tests.TestOccurrence;
 import org.apache.ignite.ci.tcmodel.result.tests.TestOccurrenceFull;
 import org.apache.ignite.ci.tcmodel.result.tests.TestRef;
@@ -34,6 +35,7 @@ import org.apache.ignite.ci.teamcity.ignited.fatbuild.FatBuildCompacted;
 import org.apache.ignite.ci.teamcity.restcached.ITcServerProvider;
 import org.apache.ignite.ci.user.ICredentialsProv;
 import org.apache.ignite.ci.web.model.current.SuiteCurrentStatus;
+import org.jetbrains.annotations.NotNull;
 import org.junit.Before;
 import org.junit.Test;
 import org.mockito.Mockito;
@@ -45,6 +47,7 @@ import java.util.concurrent.ConcurrentHashMap;
 
 import static org.junit.Assert.assertFalse;
 import static org.junit.Assert.assertNotNull;
+import static org.junit.Assert.assertTrue;
 import static org.mockito.ArgumentMatchers.any;
 import static org.mockito.ArgumentMatchers.anyString;
 import static org.mockito.Mockito.mock;
@@ -94,30 +97,78 @@ public class PrChainsProcessorTest {
         final String btId = "RunAll";
         final String branch = "ignite-9542";
 
-        final Build build = new Build();
-        build.buildTypeId = btId;
-        build.setId(1000);
-        build.setStartDateTs(System.currentTimeMillis() - 100000);
-        build.setBranchName(branch);
-        build.status = BuildRef.STATUS_FAILURE;
+        initBuildChain(c, btId, branch);
 
-        final FatBuildCompacted fatBuildCompacted = new FatBuildCompacted(c, build);
+        PrChainsProcessor prcp = injector.getInstance(PrChainsProcessor.class);
+        final List<SuiteCurrentStatus> suitesStatuses = prcp.getSuitesStatuses(btId,
+                branch, SRV_ID, mock(ICredentialsProv.class));
 
+        assertNotNull(suitesStatuses);
+        assertFalse(suitesStatuses.isEmpty());
+
+        assertTrue(suitesStatuses.stream().anyMatch(
+                s -> s.testFailures.stream().anyMatch(testFailure -> "testWithoutHistory".equals(testFailure.name))
+        ));
+
+        assertTrue(suitesStatuses.stream().anyMatch(s -> "Build".equals(s.name)));
+        assertTrue(suitesStatuses.stream().anyMatch(s -> "CancelledBuild".equals(s.name)));
+    }
+
+    private void initBuildChain(IStringCompactor c, String btId, String branch) {
+        final int id = 1000;
+
+        final FatBuildCompacted chain = createFailedBuild(c, btId, branch, id, 100000);
+
+        final FatBuildCompacted childBuild = createFailedBuild(c, "Cache1", branch, 1001, 100020);
         TestOccurrenceFull tf = new TestOccurrenceFull();
         tf.test = new TestRef();
         tf.test.id = 1L;
         tf.name = "testWithoutHistory";
         tf.status = TestOccurrence.STATUS_FAILURE;
 
-        fatBuildCompacted.addTests(c, Collections.singletonList(tf));
+        childBuild.addTests(c, Collections.singletonList(tf));
 
-        apacheBuilds.put(fatBuildCompacted.id(), fatBuildCompacted);
 
-        PrChainsProcessor prcp = injector.getInstance(PrChainsProcessor.class);
-        final List<SuiteCurrentStatus> suitesStatuses = prcp.getSuitesStatuses(btId,
-                branch, SRV_ID, mock(ICredentialsProv.class));
+        final FatBuildCompacted buildBuild = createFailedBuild(c, "Build", branch, 1002, 100020);
+        final ProblemOccurrence compile = new ProblemOccurrence();
+        compile.setType(ProblemOccurrence.TC_COMPILATION_ERROR);
+        buildBuild.addProblems(c, Collections.singletonList(compile));
+        childBuild.snapshotDependencies(new int[]{buildBuild.id()});
 
-        assertNotNull(suitesStatuses);
-        assertFalse(suitesStatuses.isEmpty());
+        final Build build = createBuild("CancelledBuild", branch, 1003, 100020);
+        build.status = BuildRef.STATUS_UNKNOWN;
+        build.state = BuildRef.STATE_FINISHED;
+
+        final FatBuildCompacted cancelledBuild = new FatBuildCompacted(c, build);
+
+
+        chain.snapshotDependencies(new int[]{childBuild.id(), cancelledBuild.id()});
+
+        apacheBuilds.put(chain.id(), chain);
+        apacheBuilds.put(childBuild.id(), childBuild);
+        apacheBuilds.put(buildBuild.id(), buildBuild);
+        apacheBuilds.put(cancelledBuild.id(), cancelledBuild);
+    }
+
+    @NotNull
+    public FatBuildCompacted createFailedBuild(IStringCompactor c, String btId, String branch, int id, int ageMs) {
+        final Build build = createBuild(btId, branch, id, ageMs);
+        build.status = BuildRef.STATUS_FAILURE;
+
+        return new FatBuildCompacted(c, build);
+    }
+
+    @NotNull
+    public Build createBuild(String btId, String branch, int id, int ageMs) {
+        final Build build = new Build();
+        build.buildTypeId = btId;
+        final BuildType type = new BuildType();
+        type.id(btId);
+        type.name(btId);
+        build.setBuildType(type);
+        build.setId(id);
+        build.setStartDateTs(System.currentTimeMillis() - ageMs);
+        build.setBranchName(branch);
+        return build;
     }
 }