You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@ignite.apache.org by sb...@apache.org on 2016/03/04 14:12:33 UTC

ignite git commit: ignite-2757 Test fixed

Repository: ignite
Updated Branches:
  refs/heads/master e82660db5 -> acc5ffab1


ignite-2757 Test fixed


Project: http://git-wip-us.apache.org/repos/asf/ignite/repo
Commit: http://git-wip-us.apache.org/repos/asf/ignite/commit/acc5ffab
Tree: http://git-wip-us.apache.org/repos/asf/ignite/tree/acc5ffab
Diff: http://git-wip-us.apache.org/repos/asf/ignite/diff/acc5ffab

Branch: refs/heads/master
Commit: acc5ffab154bff1800d59b93007e58faa7080909
Parents: e82660d
Author: agura <ag...@gridgain.com>
Authored: Thu Mar 3 20:54:18 2016 +0300
Committer: agura <ag...@gridgain.com>
Committed: Fri Mar 4 16:11:35 2016 +0300

----------------------------------------------------------------------
 .../GridTaskCancelSingleNodeSelfTest.java       | 37 ++++++++++++++------
 1 file changed, 27 insertions(+), 10 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/ignite/blob/acc5ffab/modules/core/src/test/java/org/apache/ignite/internal/GridTaskCancelSingleNodeSelfTest.java
----------------------------------------------------------------------
diff --git a/modules/core/src/test/java/org/apache/ignite/internal/GridTaskCancelSingleNodeSelfTest.java b/modules/core/src/test/java/org/apache/ignite/internal/GridTaskCancelSingleNodeSelfTest.java
index 7af987c..0557e04 100644
--- a/modules/core/src/test/java/org/apache/ignite/internal/GridTaskCancelSingleNodeSelfTest.java
+++ b/modules/core/src/test/java/org/apache/ignite/internal/GridTaskCancelSingleNodeSelfTest.java
@@ -19,6 +19,7 @@ package org.apache.ignite.internal;
 
 import java.util.Collection;
 import java.util.List;
+import java.util.concurrent.atomic.AtomicBoolean;
 import java.util.concurrent.atomic.AtomicInteger;
 import org.apache.ignite.Ignite;
 import org.apache.ignite.IgniteCompute;
@@ -42,6 +43,7 @@ import org.jetbrains.annotations.Nullable;
 import static org.apache.ignite.events.EventType.EVT_JOB_CANCELLED;
 import static org.apache.ignite.events.EventType.EVT_JOB_FINISHED;
 import static org.apache.ignite.events.EventType.EVT_JOB_REJECTED;
+import static org.apache.ignite.events.EventType.EVT_JOB_STARTED;
 
 /**
  * Test for task cancellation issue.
@@ -81,11 +83,18 @@ public class GridTaskCancelSingleNodeSelfTest extends GridCommonAbstractTest {
         final AtomicInteger cancelled = new AtomicInteger();
         final AtomicInteger rejected = new AtomicInteger();
 
+        final AtomicBoolean jobStarted = new AtomicBoolean();
+
         grid().events().localListen(new IgnitePredicate<Event>() {
             @Override public boolean apply(Event evt) {
                 info("Received event: " + evt);
 
                 switch (evt.type()) {
+                    case EVT_JOB_STARTED:
+                        jobStarted.set(true);
+
+                        break;
+
                     case EVT_JOB_FINISHED:
                         finished.incrementAndGet();
 
@@ -107,7 +116,7 @@ public class GridTaskCancelSingleNodeSelfTest extends GridCommonAbstractTest {
 
                 return true;
             }
-        }, EVT_JOB_FINISHED, EVT_JOB_CANCELLED, EVT_JOB_REJECTED);
+        }, EVT_JOB_STARTED, EVT_JOB_FINISHED, EVT_JOB_CANCELLED, EVT_JOB_REJECTED);
 
         IgniteCompute comp = grid().compute().withAsync();
 
@@ -122,14 +131,22 @@ public class GridTaskCancelSingleNodeSelfTest extends GridCommonAbstractTest {
 
         for (int i = 0; i < 3; i++) {
             try {
-            if (timeoutBeforeCancel == 0L)
-                assert (finished.get() == 0 && cancelled.get() == 0 && rejected.get() == 0) :
-                    "Failed on iteration [i=" + i + ", finished=" + finished.get() +
-                    ", cancelled=" + cancelled.get() + ", rejected=" + rejected.get() + ']';
-            else
-                assert (finished.get() == 1 && cancelled.get() == 1 && rejected.get() == 0) :
-                    "Failed on iteration [i=" + i + ", finished=" + finished.get() +
-                        ", cancelled=" + cancelled.get() + ", rejected=" + rejected.get() + ']';
+                if (timeoutBeforeCancel == 0L) {
+                    if (jobStarted.get())
+                        assertTrue("Failed on iteration [i=" + i + ", finished=" + finished.get() +
+                            ", cancelled=" + cancelled.get() + ", rejected=" + rejected.get() + ']',
+                            finished.get() == 1 && cancelled.get() == 1 && rejected.get() == 0);
+                    else {
+                        // job can be rejected if was concurrently cancelled before started
+                        assertTrue("Failed on iteration [i=" + i + ", finished=" + finished.get() +
+                                ", cancelled=" + cancelled.get() + ", rejected=" + rejected.get() + ']',
+                            finished.get() == 0 && cancelled.get() == 0 && rejected.get() <= 1);
+                    }
+                }
+                else
+                    assertTrue("Failed on iteration [i=" + i + ", finished=" + finished.get() +
+                        ", cancelled=" + cancelled.get() + ", rejected=" + rejected.get() + ']',
+                        finished.get() == 1 && cancelled.get() == 1 && rejected.get() == 0);
             }
             catch (AssertionError e) {
                 info("Check failed: " + e.getMessage());
@@ -145,7 +162,7 @@ public class GridTaskCancelSingleNodeSelfTest extends GridCommonAbstractTest {
         try {
             fut.get();
 
-            assert false;
+            fail();
         }
         catch (IgniteFutureCancelledException e) {
             info("Caught expected exception: " + e);