You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@camel.apache.org by or...@apache.org on 2021/03/03 16:58:07 UTC
[camel-kafka-connector] 04/07: Fix Netty tests reliability
This is an automated email from the ASF dual-hosted git repository.
orpiske pushed a commit to branch camel-master
in repository https://gitbox.apache.org/repos/asf/camel-kafka-connector.git
commit 758bf1eb548e70e6469bcbe10ec2090bdb7a7b0c
Author: Otavio Rodolfo Piske <op...@redhat.com>
AuthorDate: Wed Mar 3 10:06:49 2021 +0100
Fix Netty tests reliability
- avoid per class lifecycle since it seems to cause the code to try to bind the same port multiple times
- do not assume local hostnames and/or that they are correctly configured
---
.../kafkaconnector/netty/sink/CamelSinkNettyITCase.java | 12 +++++-------
.../kafkaconnector/netty/source/CamelSourceNettyITCase.java | 12 +++++-------
2 files changed, 10 insertions(+), 14 deletions(-)
diff --git a/tests/itests-netty/src/test/java/org/apache/camel/kafkaconnector/netty/sink/CamelSinkNettyITCase.java b/tests/itests-netty/src/test/java/org/apache/camel/kafkaconnector/netty/sink/CamelSinkNettyITCase.java
index bb08243..20b6814 100644
--- a/tests/itests-netty/src/test/java/org/apache/camel/kafkaconnector/netty/sink/CamelSinkNettyITCase.java
+++ b/tests/itests-netty/src/test/java/org/apache/camel/kafkaconnector/netty/sink/CamelSinkNettyITCase.java
@@ -31,7 +31,6 @@ import org.apache.camel.kafkaconnector.common.test.CamelSinkTestSupport;
import org.apache.camel.kafkaconnector.common.utils.NetworkUtils;
import org.junit.jupiter.api.BeforeEach;
import org.junit.jupiter.api.Test;
-import org.junit.jupiter.api.TestInstance;
import org.junit.jupiter.api.Timeout;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
@@ -39,10 +38,9 @@ import org.slf4j.LoggerFactory;
import static org.junit.jupiter.api.Assertions.assertEquals;
import static org.junit.jupiter.api.Assertions.fail;
-@TestInstance(TestInstance.Lifecycle.PER_CLASS)
public class CamelSinkNettyITCase extends CamelSinkTestSupport {
private static final Logger LOG = LoggerFactory.getLogger(CamelSinkNettyITCase.class);
- private static final int PORT = NetworkUtils.getFreePort("localhost");
+ private final int port = NetworkUtils.getFreePort();
private String topicName;
@@ -62,7 +60,7 @@ public class CamelSinkNettyITCase extends CamelSinkTestSupport {
@Override
protected void consumeMessages(CountDownLatch latch) {
- try (ServerSocket serverSocket = new ServerSocket(PORT);
+ try (ServerSocket serverSocket = new ServerSocket(port);
Socket socket = serverSocket.accept();
InputStream is = socket.getInputStream();
BufferedReader reader = new BufferedReader(new InputStreamReader(is))) {
@@ -92,8 +90,8 @@ public class CamelSinkNettyITCase extends CamelSinkTestSupport {
.withTopics(topicName)
.withProtocol("tcp")
// TODO https://github.com/apache/camel-kafka-connector/issues/924
- .withHost("//localhost")
- .withPort(PORT)
+ .withHost("//" + NetworkUtils.getHostname())
+ .withPort(port)
// disconnect so that it won't keep mock server socket forever
.withDisconnect(true)
// one-way as mock server doesn't send replies
@@ -107,7 +105,7 @@ public class CamelSinkNettyITCase extends CamelSinkTestSupport {
public void testBasicSendReceiveUsingUrl() throws Exception {
ConnectorPropertyFactory connectorPropertyFactory = CamelNettyPropertyFactory.basic()
.withTopics(topicName)
- .withUrl("tcp", "localhost", PORT)
+ .withUrl("tcp", NetworkUtils.getHostname(), port)
// disconnect so that it won't keep mock server socket forever
.append("disconnect", "true")
// one-way as mock server doesn't send replies
diff --git a/tests/itests-netty/src/test/java/org/apache/camel/kafkaconnector/netty/source/CamelSourceNettyITCase.java b/tests/itests-netty/src/test/java/org/apache/camel/kafkaconnector/netty/source/CamelSourceNettyITCase.java
index 5384e22..b2ef5ee 100644
--- a/tests/itests-netty/src/test/java/org/apache/camel/kafkaconnector/netty/source/CamelSourceNettyITCase.java
+++ b/tests/itests-netty/src/test/java/org/apache/camel/kafkaconnector/netty/source/CamelSourceNettyITCase.java
@@ -26,15 +26,13 @@ import org.apache.camel.kafkaconnector.common.test.TestMessageConsumer;
import org.apache.camel.kafkaconnector.common.utils.NetworkUtils;
import org.junit.jupiter.api.BeforeEach;
import org.junit.jupiter.api.Test;
-import org.junit.jupiter.api.TestInstance;
import org.junit.jupiter.api.Timeout;
import static org.junit.jupiter.api.Assertions.assertEquals;
import static org.junit.jupiter.api.Assertions.fail;
-@TestInstance(TestInstance.Lifecycle.PER_CLASS)
public class CamelSourceNettyITCase extends CamelSourceTestSupport {
- private static final int PORT = NetworkUtils.getFreePort("localhost");
+ private final int port = NetworkUtils.getFreePort();
private final int expect = 1;
private String topicName;
@@ -60,7 +58,7 @@ public class CamelSourceNettyITCase extends CamelSourceTestSupport {
}
void sendMessage() {
- try (Socket s = new Socket("localhost", PORT);
+ try (Socket s = new Socket(NetworkUtils.getHostname(), port);
PrintWriter out = new PrintWriter(s.getOutputStream())) {
out.print("Hello CKC!");
out.flush();
@@ -85,8 +83,8 @@ public class CamelSourceNettyITCase extends CamelSourceTestSupport {
.withKafkaTopic(topicName)
.withProtocol("tcp")
// TODO https://github.com/apache/camel-kafka-connector/issues/924
- .withHost("//localhost")
- .withPort(PORT)
+ .withHost("//" + NetworkUtils.getHostname())
+ .withPort(port)
// one-way as test client doesn't receive response
.withSync(false);
@@ -99,7 +97,7 @@ public class CamelSourceNettyITCase extends CamelSourceTestSupport {
CamelNettyPropertyFactory connectorPropertyFactory = CamelNettyPropertyFactory
.basic()
.withKafkaTopic(topicName)
- .withUrl("tcp", "localhost", PORT)
+ .withUrl("tcp", NetworkUtils.getHostname(), port)
// one-way as test client doesn't receive response
.append("sync", "false")
.buildUrl();