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