Repository: camel Updated Branches: refs/heads/master 2253ebb59 -> 183abd872
CAMEL-11446: Use awaitility in camel-core for testing where we otherwise use thred sleep which can be speeded up. Project: http://git-wip-us.apache.org/repos/asf/camel/repo Commit: http://git-wip-us.apache.org/repos/asf/camel/commit/183abd87 Tree: http://git-wip-us.apache.org/repos/asf/camel/tree/183abd87 Diff: http://git-wip-us.apache.org/repos/asf/camel/diff/183abd87 Branch: refs/heads/master Commit: 183abd872fe0647d64e6f4735ebc38523bb85065 Parents: 2253ebb Author: Claus Ibsen <davscl...@apache.org> Authored: Thu Jul 6 16:17:11 2017 +0200 Committer: Claus Ibsen <davscl...@apache.org> Committed: Thu Jul 6 16:19:10 2017 +0200 ---------------------------------------------------------------------- .../file/FileBatchConsumerMemoryLeakTest.java | 4 +- .../file/FileConsumePollEnrichFileTest.java | 4 +- ...rPollStrategyRollbackThrowExceptionTest.java | 11 ++- ...lerConsumerShouldSkipDoneFileSuffixTest.java | 4 +- .../component/seda/SedaNoConsumerTest.java | 16 ----- .../camel/management/ManagedThrottlerTest.java | 2 - .../processor/ShutdownCompleteAllTasksTest.java | 10 ++- .../AggregateNewExchangeAndConfirmTest.java | 6 +- .../org/apache/camel/util/StopWatchTest.java | 74 -------------------- 9 files changed, 28 insertions(+), 103 deletions(-) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/camel/blob/183abd87/camel-core/src/test/java/org/apache/camel/component/file/FileBatchConsumerMemoryLeakTest.java ---------------------------------------------------------------------- diff --git a/camel-core/src/test/java/org/apache/camel/component/file/FileBatchConsumerMemoryLeakTest.java b/camel-core/src/test/java/org/apache/camel/component/file/FileBatchConsumerMemoryLeakTest.java index 6cec367..5c40d8e 100644 --- a/camel-core/src/test/java/org/apache/camel/component/file/FileBatchConsumerMemoryLeakTest.java +++ b/camel-core/src/test/java/org/apache/camel/component/file/FileBatchConsumerMemoryLeakTest.java @@ -20,12 +20,14 @@ import org.apache.camel.ContextTestSupport; import org.apache.camel.Exchange; import org.apache.camel.Processor; import org.apache.camel.builder.RouteBuilder; +import org.junit.Ignore; /** * Unit test to test CAMEL-1652 * * @version */ +@Ignore("Manual test") public class FileBatchConsumerMemoryLeakTest extends ContextTestSupport { private String fileUrl = "file://target/filesorter/"; @@ -56,7 +58,7 @@ public class FileBatchConsumerMemoryLeakTest extends ContextTestSupport { * The test is not really a good integration test as it simply waits and does not fail * or succeed fast */ - public void xxxtestMemoryLeak() throws Exception { + public void testMemoryLeak() throws Exception { // run this manually and browse the memory usage, eg in IDEA there is a Statistics tab deleteDirectory("target/filesorter/archiv"); http://git-wip-us.apache.org/repos/asf/camel/blob/183abd87/camel-core/src/test/java/org/apache/camel/component/file/FileConsumePollEnrichFileTest.java ---------------------------------------------------------------------- diff --git a/camel-core/src/test/java/org/apache/camel/component/file/FileConsumePollEnrichFileTest.java b/camel-core/src/test/java/org/apache/camel/component/file/FileConsumePollEnrichFileTest.java index d9dcaac..17536a8 100644 --- a/camel-core/src/test/java/org/apache/camel/component/file/FileConsumePollEnrichFileTest.java +++ b/camel-core/src/test/java/org/apache/camel/component/file/FileConsumePollEnrichFileTest.java @@ -40,8 +40,8 @@ public class FileConsumePollEnrichFileTest extends ContextTestSupport { template.sendBodyAndHeader("file://target/enrich", "Start", Exchange.FILE_NAME, "AAA.fin"); - log.info("Sleeping for 1 sec before writing enrichdata file"); - Thread.sleep(1000); + log.info("Sleeping for 0.5 sec before writing enrichdata file"); + Thread.sleep(500); template.sendBodyAndHeader("file://target/enrichdata", "Big file", Exchange.FILE_NAME, "AAA.dat"); log.info("... write done"); http://git-wip-us.apache.org/repos/asf/camel/blob/183abd87/camel-core/src/test/java/org/apache/camel/component/file/FileConsumerPollStrategyRollbackThrowExceptionTest.java ---------------------------------------------------------------------- diff --git a/camel-core/src/test/java/org/apache/camel/component/file/FileConsumerPollStrategyRollbackThrowExceptionTest.java b/camel-core/src/test/java/org/apache/camel/component/file/FileConsumerPollStrategyRollbackThrowExceptionTest.java index 25ffa9c..9f146b6 100644 --- a/camel-core/src/test/java/org/apache/camel/component/file/FileConsumerPollStrategyRollbackThrowExceptionTest.java +++ b/camel-core/src/test/java/org/apache/camel/component/file/FileConsumerPollStrategyRollbackThrowExceptionTest.java @@ -16,6 +16,9 @@ */ package org.apache.camel.component.file; +import java.util.concurrent.CountDownLatch; +import java.util.concurrent.TimeUnit; + import org.apache.camel.Consumer; import org.apache.camel.ContextTestSupport; import org.apache.camel.Endpoint; @@ -24,6 +27,8 @@ import org.apache.camel.builder.RouteBuilder; import org.apache.camel.impl.JndiRegistry; import org.apache.camel.spi.PollingConsumerPollStrategy; +import static org.awaitility.Awaitility.await; + /** * Unit test for poll strategy */ @@ -31,6 +36,8 @@ public class FileConsumerPollStrategyRollbackThrowExceptionTest extends ContextT private static volatile String event = ""; + private static final CountDownLatch LATCH = new CountDownLatch(1); + private String fileUrl = "file://target/pollstrategy/?pollStrategy=#myPoll&initialDelay=0&delay=10"; @Override @@ -48,8 +55,7 @@ public class FileConsumerPollStrategyRollbackThrowExceptionTest extends ContextT } public void testRollbackThrowException() throws Exception { - // let it run for a little, but it fails all the time - Thread.sleep(200); + await().atMost(2, TimeUnit.SECONDS).until(() -> LATCH.getCount() == 0); // and we should rollback X number of times assertTrue(event.startsWith("rollback")); @@ -76,6 +82,7 @@ public class FileConsumerPollStrategyRollbackThrowExceptionTest extends ContextT public boolean rollback(Consumer consumer, Endpoint endpoint, int retryCounter, Exception cause) throws Exception { event += "rollback"; + LATCH.countDown(); throw cause; } } http://git-wip-us.apache.org/repos/asf/camel/blob/183abd87/camel-core/src/test/java/org/apache/camel/component/file/FilerConsumerShouldSkipDoneFileSuffixTest.java ---------------------------------------------------------------------- diff --git a/camel-core/src/test/java/org/apache/camel/component/file/FilerConsumerShouldSkipDoneFileSuffixTest.java b/camel-core/src/test/java/org/apache/camel/component/file/FilerConsumerShouldSkipDoneFileSuffixTest.java index 258b98a..faf82a3 100644 --- a/camel-core/src/test/java/org/apache/camel/component/file/FilerConsumerShouldSkipDoneFileSuffixTest.java +++ b/camel-core/src/test/java/org/apache/camel/component/file/FilerConsumerShouldSkipDoneFileSuffixTest.java @@ -40,7 +40,7 @@ public class FilerConsumerShouldSkipDoneFileSuffixTest extends ContextTestSuppor template.sendBodyAndHeader("file:target/done", "", Exchange.FILE_NAME, "hello.txt.ready"); // wait a bit and it should not pickup the written file as there are no target file - Thread.sleep(250); + Thread.sleep(100); assertMockEndpointsSatisfied(); resetMocks(); @@ -67,7 +67,7 @@ public class FilerConsumerShouldSkipDoneFileSuffixTest extends ContextTestSuppor return new RouteBuilder() { @Override public void configure() throws Exception { - from("file:target/done?doneFileName=${file:name}.ready&initialDelay=0") + from("file:target/done?doneFileName=${file:name}.ready&initialDelay=0&delay=50") .convertBodyTo(String.class) .to("mock:result"); } http://git-wip-us.apache.org/repos/asf/camel/blob/183abd87/camel-core/src/test/java/org/apache/camel/component/seda/SedaNoConsumerTest.java ---------------------------------------------------------------------- diff --git a/camel-core/src/test/java/org/apache/camel/component/seda/SedaNoConsumerTest.java b/camel-core/src/test/java/org/apache/camel/component/seda/SedaNoConsumerTest.java index 8a89baa..0b40bb8 100644 --- a/camel-core/src/test/java/org/apache/camel/component/seda/SedaNoConsumerTest.java +++ b/camel-core/src/test/java/org/apache/camel/component/seda/SedaNoConsumerTest.java @@ -163,20 +163,4 @@ public class SedaNoConsumerTest extends ContextTestSupport { } - @Test - public void testConfigOnAConsumer() throws Exception { - context.addRoutes(new RouteBuilder() { - @Override - public void configure() throws Exception { - // these are the same! - from("seda:foo?failIfNoConsumers=true").to("log:test"); - from("seda:foo").to("log:test2"); - - } - }); - - context.start(); - Thread.sleep(2 * 1000); - } - } http://git-wip-us.apache.org/repos/asf/camel/blob/183abd87/camel-core/src/test/java/org/apache/camel/management/ManagedThrottlerTest.java ---------------------------------------------------------------------- diff --git a/camel-core/src/test/java/org/apache/camel/management/ManagedThrottlerTest.java b/camel-core/src/test/java/org/apache/camel/management/ManagedThrottlerTest.java index 1f2cc18..1a06721 100644 --- a/camel-core/src/test/java/org/apache/camel/management/ManagedThrottlerTest.java +++ b/camel-core/src/test/java/org/apache/camel/management/ManagedThrottlerTest.java @@ -192,8 +192,6 @@ public class ManagedThrottlerTest extends ManagementTestSupport { // get the stats for the route MBeanServer mbeanServer = getMBeanServer(); - // get the object name for the delayer - ObjectName throttlerName = ObjectName.getInstance("org.apache.camel:context=camel-1,type=processors,name=\"mythrottler4\""); // use route to get the total time ObjectName routeName = ObjectName.getInstance("org.apache.camel:context=camel-1,type=routes,name=\"route4\""); http://git-wip-us.apache.org/repos/asf/camel/blob/183abd87/camel-core/src/test/java/org/apache/camel/processor/ShutdownCompleteAllTasksTest.java ---------------------------------------------------------------------- diff --git a/camel-core/src/test/java/org/apache/camel/processor/ShutdownCompleteAllTasksTest.java b/camel-core/src/test/java/org/apache/camel/processor/ShutdownCompleteAllTasksTest.java index 792600b..2535fc6 100644 --- a/camel-core/src/test/java/org/apache/camel/processor/ShutdownCompleteAllTasksTest.java +++ b/camel-core/src/test/java/org/apache/camel/processor/ShutdownCompleteAllTasksTest.java @@ -16,6 +16,7 @@ */ package org.apache.camel.processor; +import java.util.concurrent.CountDownLatch; import java.util.concurrent.TimeUnit; import java.util.concurrent.atomic.AtomicInteger; @@ -33,6 +34,7 @@ public class ShutdownCompleteAllTasksTest extends ContextTestSupport { private static String url = "file:target/pending"; private static AtomicInteger counter = new AtomicInteger(); + private static CountDownLatch latch = new CountDownLatch(2); @Override protected void setUp() throws Exception { @@ -56,11 +58,13 @@ public class ShutdownCompleteAllTasksTest extends ContextTestSupport { MockEndpoint bar = getMockEndpoint("mock:bar"); bar.expectedMinimumMessageCount(1); - // wait 20 seconds to give more time for slow servers - bar.await(20, TimeUnit.SECONDS); + assertMockEndpointsSatisfied(); int batch = bar.getReceivedExchanges().get(0).getProperty(Exchange.BATCH_SIZE, int.class); + // wait for latch + latch.await(10, TimeUnit.SECONDS); + // shutdown during processing context.stop(); @@ -87,8 +91,8 @@ public class ShutdownCompleteAllTasksTest extends ContextTestSupport { public static class MyProcessor implements Processor { public void process(Exchange exchange) throws Exception { - Thread.sleep(500); counter.incrementAndGet(); + latch.countDown(); } } http://git-wip-us.apache.org/repos/asf/camel/blob/183abd87/camel-core/src/test/java/org/apache/camel/processor/aggregator/AggregateNewExchangeAndConfirmTest.java ---------------------------------------------------------------------- diff --git a/camel-core/src/test/java/org/apache/camel/processor/aggregator/AggregateNewExchangeAndConfirmTest.java b/camel-core/src/test/java/org/apache/camel/processor/aggregator/AggregateNewExchangeAndConfirmTest.java index 2d2b9d3..3f95260 100644 --- a/camel-core/src/test/java/org/apache/camel/processor/aggregator/AggregateNewExchangeAndConfirmTest.java +++ b/camel-core/src/test/java/org/apache/camel/processor/aggregator/AggregateNewExchangeAndConfirmTest.java @@ -16,6 +16,8 @@ */ package org.apache.camel.processor.aggregator; +import java.util.concurrent.TimeUnit; + import org.apache.camel.CamelContext; import org.apache.camel.ContextTestSupport; import org.apache.camel.Exchange; @@ -24,6 +26,8 @@ import org.apache.camel.component.mock.MockEndpoint; import org.apache.camel.processor.aggregate.AggregationStrategy; import org.apache.camel.processor.aggregate.MemoryAggregationRepository; +import static org.awaitility.Awaitility.await; + /** * Testing CAMEL-3139 * @@ -44,7 +48,7 @@ public class AggregateNewExchangeAndConfirmTest extends ContextTestSupport { assertMockEndpointsSatisfied(); // give UoW time to complete and confirm - Thread.sleep(500); + await().atMost(1, TimeUnit.SECONDS).until(() -> repo.getId() != null); // must have confirmed assertEquals(mock.getReceivedExchanges().get(0).getExchangeId(), repo.getId()); http://git-wip-us.apache.org/repos/asf/camel/blob/183abd87/camel-core/src/test/java/org/apache/camel/util/StopWatchTest.java ---------------------------------------------------------------------- diff --git a/camel-core/src/test/java/org/apache/camel/util/StopWatchTest.java b/camel-core/src/test/java/org/apache/camel/util/StopWatchTest.java deleted file mode 100644 index 212bb40..0000000 --- a/camel-core/src/test/java/org/apache/camel/util/StopWatchTest.java +++ /dev/null @@ -1,74 +0,0 @@ -/** - * Licensed to the Apache Software Foundation (ASF) under one or more - * contributor license agreements. See the NOTICE file distributed with - * this work for additional information regarding copyright ownership. - * The ASF licenses this file to You under the Apache License, Version 2.0 - * (the "License"); you may not use this file except in compliance with - * the License. You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ -package org.apache.camel.util; - -import junit.framework.TestCase; - -/** - * @version - */ -public class StopWatchTest extends TestCase { - - public void testStopWatch() throws Exception { - StopWatch watch = new StopWatch(); - Thread.sleep(200); - long taken = watch.stop(); - - assertEquals(taken, watch.taken()); - assertTrue("Should take approx 200 millis, was: " + taken, taken > 150); - } - - public void testStopWatchNotStarted() throws Exception { - StopWatch watch = new StopWatch(false); - long taken = watch.stop(); - assertEquals(0, taken); - - watch.restart(); - Thread.sleep(200); - taken = watch.stop(); - - assertEquals(taken, watch.taken()); - assertTrue("Should take approx 200 millis, was: " + taken, taken > 150); - } - - public void testStopWatchRestart() throws Exception { - StopWatch watch = new StopWatch(); - Thread.sleep(200); - long taken = watch.stop(); - - assertEquals(taken, watch.taken()); - assertTrue("Should take approx 200 millis, was: " + taken, taken > 150); - - watch.restart(); - Thread.sleep(100); - taken = watch.stop(); - - assertEquals(taken, watch.taken()); - assertTrue("Should take approx 100 millis, was: " + taken, taken > 50); - } - - public void testStopWatchTaken() throws Exception { - StopWatch watch = new StopWatch(); - Thread.sleep(100); - long taken = watch.taken(); - Thread.sleep(100); - long taken2 = watch.taken(); - assertNotSame(taken, taken2); - assertTrue(taken2 > taken); - } - -}