Return-Path: X-Original-To: archive-asf-public-internal@cust-asf2.ponee.io Delivered-To: archive-asf-public-internal@cust-asf2.ponee.io Received: from cust-asf.ponee.io (cust-asf.ponee.io [163.172.22.183]) by cust-asf2.ponee.io (Postfix) with ESMTP id ED5C7200D39 for ; Fri, 6 Oct 2017 10:06:28 +0200 (CEST) Received: by cust-asf.ponee.io (Postfix) id EC175160BE7; Fri, 6 Oct 2017 08:06:28 +0000 (UTC) Delivered-To: archive-asf-public@cust-asf.ponee.io Received: from mail.apache.org (hermes.apache.org [140.211.11.3]) by cust-asf.ponee.io (Postfix) with SMTP id F41C7160BE4 for ; Fri, 6 Oct 2017 10:06:27 +0200 (CEST) Received: (qmail 45845 invoked by uid 500); 6 Oct 2017 08:06:27 -0000 Mailing-List: contact commits-help@brooklyn.apache.org; run by ezmlm Precedence: bulk List-Help: List-Unsubscribe: List-Post: List-Id: Reply-To: dev@brooklyn.apache.org Delivered-To: mailing list commits@brooklyn.apache.org Received: (qmail 45513 invoked by uid 99); 6 Oct 2017 08:06:26 -0000 Received: from git1-us-west.apache.org (HELO git1-us-west.apache.org) (140.211.11.23) by apache.org (qpsmtpd/0.29) with ESMTP; Fri, 06 Oct 2017 08:06:26 +0000 Received: by git1-us-west.apache.org (ASF Mail Server at git1-us-west.apache.org, from userid 33) id 5721EF5CD5; Fri, 6 Oct 2017 08:06:25 +0000 (UTC) Content-Type: text/plain; charset="us-ascii" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit From: heneveld@apache.org To: commits@brooklyn.apache.org Date: Fri, 06 Oct 2017 08:06:36 -0000 Message-Id: <4a703dec15444ce5a15f655f4b13e237@git.apache.org> In-Reply-To: References: X-Mailer: ASF-Git Admin Mailer Subject: [12/23] brooklyn-server git commit: fix tests that asserted specific tasks (as there are now more) archived-at: Fri, 06 Oct 2017 08:06:29 -0000 fix tests that asserted specific tasks (as there are now more) Project: http://git-wip-us.apache.org/repos/asf/brooklyn-server/repo Commit: http://git-wip-us.apache.org/repos/asf/brooklyn-server/commit/130a29b9 Tree: http://git-wip-us.apache.org/repos/asf/brooklyn-server/tree/130a29b9 Diff: http://git-wip-us.apache.org/repos/asf/brooklyn-server/diff/130a29b9 Branch: refs/heads/master Commit: 130a29b906da83f108ae1ea6cebef94c0c5f6a6f Parents: 79cc9bc Author: Alex Heneveld Authored: Wed Sep 20 13:37:21 2017 +0100 Committer: Alex Heneveld Committed: Wed Sep 20 13:37:21 2017 +0100 ---------------------------------------------------------------------- .../mgmt/internal/LocalSubscriptionManager.java | 2 +- .../core/entity/hello/LocalEntitiesTest.java | 20 +++++++++----------- .../internal/EntityExecutionManagerTest.java | 15 ++++++++++++--- .../core/mgmt/rebind/RebindFeedWithHaTest.java | 9 +++++++-- 4 files changed, 29 insertions(+), 17 deletions(-) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/brooklyn-server/blob/130a29b9/core/src/main/java/org/apache/brooklyn/core/mgmt/internal/LocalSubscriptionManager.java ---------------------------------------------------------------------- diff --git a/core/src/main/java/org/apache/brooklyn/core/mgmt/internal/LocalSubscriptionManager.java b/core/src/main/java/org/apache/brooklyn/core/mgmt/internal/LocalSubscriptionManager.java index 6b1a5d9..a927a89 100644 --- a/core/src/main/java/org/apache/brooklyn/core/mgmt/internal/LocalSubscriptionManager.java +++ b/core/src/main/java/org/apache/brooklyn/core/mgmt/internal/LocalSubscriptionManager.java @@ -147,7 +147,7 @@ public class LocalSubscriptionManager extends AbstractSubscriptionManager { } else { if (LOG.isTraceEnabled()) LOG.trace("sending initial value of {} -> {} to {}", new Object[] {s.producer, s.sensor, s}); em.submit( - MutableMap.of("tags", ImmutableList.of(BrooklynTaskTags.tagForContextEntity(s.producer)), + MutableMap.of("tags", ImmutableList.of(BrooklynTaskTags.tagForContextEntity(s.producer), BrooklynTaskTags.SENSOR_TAG), "displayName", "Initial publication of "+s.sensor.getName()), () -> { T val = (T) s.producer.getAttribute((AttributeSensor) s.sensor); http://git-wip-us.apache.org/repos/asf/brooklyn-server/blob/130a29b9/core/src/test/java/org/apache/brooklyn/core/entity/hello/LocalEntitiesTest.java ---------------------------------------------------------------------- diff --git a/core/src/test/java/org/apache/brooklyn/core/entity/hello/LocalEntitiesTest.java b/core/src/test/java/org/apache/brooklyn/core/entity/hello/LocalEntitiesTest.java index 985997e..6951a97 100644 --- a/core/src/test/java/org/apache/brooklyn/core/entity/hello/LocalEntitiesTest.java +++ b/core/src/test/java/org/apache/brooklyn/core/entity/hello/LocalEntitiesTest.java @@ -33,20 +33,19 @@ import java.util.concurrent.TimeUnit; import java.util.concurrent.atomic.AtomicReference; import org.apache.brooklyn.api.entity.EntitySpec; -import org.apache.brooklyn.api.mgmt.EntityManager; import org.apache.brooklyn.api.mgmt.Task; import org.apache.brooklyn.api.sensor.SensorEvent; import org.apache.brooklyn.api.sensor.SensorEventListener; import org.apache.brooklyn.core.entity.EntityInternal; import org.apache.brooklyn.core.location.SimulatedLocation; import org.apache.brooklyn.core.test.BrooklynAppUnitTestSupport; +import org.apache.brooklyn.test.Asserts; +import org.apache.brooklyn.util.time.Duration; +import org.apache.brooklyn.util.time.Time; import org.slf4j.Logger; import org.slf4j.LoggerFactory; import org.testng.annotations.BeforeMethod; import org.testng.annotations.Test; -import org.apache.brooklyn.test.Asserts; -import org.apache.brooklyn.util.collections.MutableMap; -import org.apache.brooklyn.util.time.Time; import com.google.common.base.Function; import com.google.common.base.Predicate; @@ -63,14 +62,12 @@ public class LocalEntitiesTest extends BrooklynAppUnitTestSupport { public static final Logger log = LoggerFactory.getLogger(LocalEntitiesTest.class); private SimulatedLocation loc; - private EntityManager entityManager; @BeforeMethod(alwaysRun=true) @Override public void setUp() throws Exception { super.setUp(); loc = new SimulatedLocation(); - entityManager = mgmt.getEntityManager(); } @Test @@ -165,9 +162,10 @@ public class LocalEntitiesTest extends BrooklynAppUnitTestSupport { h.setAge(6); long totalTime = stopwatch.elapsed(TimeUnit.MILLISECONDS); - // TODO guava util for (1..5) - Asserts.continually(MutableMap.of("timeout", 50), Suppliers.ofInstance(data), Predicates.equalTo(ImmutableList.of(1,2,3,4,5))); - assertTrue(totalTime < 2000, "totalTime="+totalTime); //shouldn't have blocked for anywhere close to 2s (Aled says TODO: too time sensitive for BuildHive?) + Asserts.continually( + Suppliers.ofInstance(data), Predicates.equalTo(ImmutableList.of(1,2,3,4,5)), + Duration.millis(50), null, null); + assertTrue(totalTime < 2000, "totalTime="+totalTime); //shouldn't have blocked for anywhere close to 2s (unless build machine v v slow eg BuildHive) } @Test @@ -224,8 +222,8 @@ public class LocalEntitiesTest extends BrooklynAppUnitTestSupport { assertTrue(System.currentTimeMillis() - startTime < 1500); synchronized (sonsConfig) { assertEquals(null, sonsConfig[0]); - for (Task tt : ((EntityInternal)dad).getExecutionContext().getTasks()) { log.info("task at dad: {}, {}", tt, tt.getStatusDetail(false)); } - for (Task tt : ((EntityInternal)son).getExecutionContext().getTasks()) { log.info("task at son: {}, {}", tt, tt.getStatusDetail(false)); } + for (Task tt : ((EntityInternal)dad).getExecutionContext().getTasks()) { log.info("task at dad: {}, {}", tt, tt.getStatusDetail(false)); } + for (Task tt : ((EntityInternal)son).getExecutionContext().getTasks()) { log.info("task at son: {}, {}", tt, tt.getStatusDetail(false)); } dad.sensors().set(HelloEntity.FAVOURITE_NAME, "Dan"); if (!s1.tryAcquire(2, TimeUnit.SECONDS)) fail("race mismatch, missing permits"); } http://git-wip-us.apache.org/repos/asf/brooklyn-server/blob/130a29b9/core/src/test/java/org/apache/brooklyn/core/mgmt/internal/EntityExecutionManagerTest.java ---------------------------------------------------------------------- diff --git a/core/src/test/java/org/apache/brooklyn/core/mgmt/internal/EntityExecutionManagerTest.java b/core/src/test/java/org/apache/brooklyn/core/mgmt/internal/EntityExecutionManagerTest.java index 97f02b7..4f581f5 100644 --- a/core/src/test/java/org/apache/brooklyn/core/mgmt/internal/EntityExecutionManagerTest.java +++ b/core/src/test/java/org/apache/brooklyn/core/mgmt/internal/EntityExecutionManagerTest.java @@ -30,6 +30,7 @@ import java.util.Set; import java.util.concurrent.CountDownLatch; import java.util.concurrent.TimeUnit; import java.util.concurrent.atomic.AtomicBoolean; +import java.util.stream.Collectors; import org.apache.brooklyn.api.entity.Entity; import org.apache.brooklyn.api.entity.EntitySpec; @@ -46,6 +47,7 @@ import org.apache.brooklyn.core.test.BrooklynAppUnitTestSupport; import org.apache.brooklyn.core.test.entity.LocalManagementContextForTests; import org.apache.brooklyn.core.test.entity.TestEntity; import org.apache.brooklyn.test.Asserts; +import org.apache.brooklyn.util.collections.MutableList; import org.apache.brooklyn.util.collections.MutableMap; import org.apache.brooklyn.util.collections.MutableSet; import org.apache.brooklyn.util.core.task.BasicExecutionManager; @@ -149,6 +151,7 @@ public class EntityExecutionManagerTest extends BrooklynAppUnitTestSupport { for (Task t: tasks) { if (t instanceof ScheduledTask) continue; if (t.getTags().contains(BrooklynTaskTags.SENSOR_TAG)) continue; + if (t.getDisplayName().contains("Validating")) continue; result.add(t); } return result; @@ -294,8 +297,6 @@ public class EntityExecutionManagerTest extends BrooklynAppUnitTestSupport { forceGc(); stopCondition.set(true); - // might need an eventually here, if the internal job completion and GC is done in the background - // (if there are no test failures for a few months, since Sept 2014, then we can remove this comment) assertTaskMaxCountForEntityEventually(e, 2); } @@ -343,7 +344,15 @@ public class EntityExecutionManagerTest extends BrooklynAppUnitTestSupport { forceGc(); Collection> t2 = em.getAllTasks(); - Assert.assertEquals(t1.size(), t2.size(), "lists are different:\n"+t1+"\n"+t2+"\n"); + // no tasks from first batch were GC'd + Asserts.assertSize(MutableList.builder().addAll(t1).removeAll(t2).build(), 0); + + // and we expect just the add/remove cycle at parent, and service problems + Set newOnes = MutableList.>builder().addAll(t2).removeAll(t1).build().stream().map( + (t) -> t.getDisplayName()).collect(Collectors.toSet()); + Function prefix = (s) -> "sensor "+app.getId()+":"+s; + Assert.assertEquals(newOnes, MutableSet.of( + prefix.apply("entity.children.removed"), prefix.apply("entity.children.added"), prefix.apply("service.problems"))); } /** http://git-wip-us.apache.org/repos/asf/brooklyn-server/blob/130a29b9/core/src/test/java/org/apache/brooklyn/core/mgmt/rebind/RebindFeedWithHaTest.java ---------------------------------------------------------------------- diff --git a/core/src/test/java/org/apache/brooklyn/core/mgmt/rebind/RebindFeedWithHaTest.java b/core/src/test/java/org/apache/brooklyn/core/mgmt/rebind/RebindFeedWithHaTest.java index a38a873..319311a 100644 --- a/core/src/test/java/org/apache/brooklyn/core/mgmt/rebind/RebindFeedWithHaTest.java +++ b/core/src/test/java/org/apache/brooklyn/core/mgmt/rebind/RebindFeedWithHaTest.java @@ -24,6 +24,7 @@ import java.net.URL; import java.util.Collection; import java.util.List; import java.util.concurrent.Callable; +import java.util.stream.Collectors; import org.apache.brooklyn.api.entity.EntitySpec; import org.apache.brooklyn.api.mgmt.Task; @@ -31,7 +32,6 @@ import org.apache.brooklyn.api.mgmt.ha.HighAvailabilityMode; import org.apache.brooklyn.api.sensor.AttributeSensor; import org.apache.brooklyn.api.sensor.Feed; import org.apache.brooklyn.core.entity.EntityAsserts; -import org.apache.brooklyn.core.mgmt.internal.LocalManagementContext; import org.apache.brooklyn.core.test.entity.TestApplication; import org.apache.brooklyn.core.test.entity.TestEntity; import org.apache.brooklyn.util.core.http.BetterMockWebServer; @@ -102,10 +102,11 @@ public class RebindFeedWithHaTest extends RebindTestFixtureWithApp { @Override public Boolean call() throws Exception { origManagementContext.getGarbageCollector().gcIteration(); - List> tasksAfter = ((BasicExecutionManager)origManagementContext.getExecutionManager()).getAllTasks(); + List> tasksAfter = removeSystemTasks( ((BasicExecutionManager)origManagementContext.getExecutionManager()).getAllTasks() ); log.info("tasks after disabling HA, "+tasksAfter.size()+": "+tasksAfter); return tasksAfter.isEmpty(); } + }).runRequiringTrue(); newManagementContext = createNewManagementContext(); @@ -123,6 +124,10 @@ public class RebindFeedWithHaTest extends RebindTestFixtureWithApp { EntityAsserts.assertAttributeEqualsEventually(newEntity, SENSOR_STRING, "{\"foo\":\"myfoo\"}"); } + static List> removeSystemTasks(List> tasks) { + return tasks.stream().filter(t -> !("rebind".equals(t.getDisplayName()) || t.getDisplayName().contains("Validating"))).collect(Collectors.toList()); + } + @Test(groups="Integration", invocationCount=50) public void testHttpFeedCleansUpAfterHaDisabledAndRunsAtFailoverManyTimes() throws Exception { testHttpFeedCleansUpAfterHaDisabledAndRunsAtFailover();