fix MQTT test to not use complete() TMO upon success Project: http://git-wip-us.apache.org/repos/asf/incubator-edgent/repo Commit: http://git-wip-us.apache.org/repos/asf/incubator-edgent/commit/786d934f Tree: http://git-wip-us.apache.org/repos/asf/incubator-edgent/tree/786d934f Diff: http://git-wip-us.apache.org/repos/asf/incubator-edgent/diff/786d934f
Branch: refs/heads/develop Commit: 786d934f0837d387e2b97043a68cc56cc793608e Parents: a6db4b8 Author: Dale LaBossiere <dlab...@us.ibm.com> Authored: Wed Oct 25 16:10:54 2017 -0400 Committer: Dale LaBossiere <dlab...@us.ibm.com> Committed: Wed Oct 25 16:10:54 2017 -0400 ---------------------------------------------------------------------- .../connectors/common/ConnectorTestBase.java | 20 ++++++++++++++++++++ .../connectors/mqtt/MqttStreamsTestManual.java | 19 +++++++++++++------ .../javax/websocket/WebSocketClientTest.java | 19 ------------------- 3 files changed, 33 insertions(+), 25 deletions(-) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/incubator-edgent/blob/786d934f/connectors/common/src/test/java/org/apache/edgent/test/connectors/common/ConnectorTestBase.java ---------------------------------------------------------------------- diff --git a/connectors/common/src/test/java/org/apache/edgent/test/connectors/common/ConnectorTestBase.java b/connectors/common/src/test/java/org/apache/edgent/test/connectors/common/ConnectorTestBase.java index f5230a9..82a70c0 100644 --- a/connectors/common/src/test/java/org/apache/edgent/test/connectors/common/ConnectorTestBase.java +++ b/connectors/common/src/test/java/org/apache/edgent/test/connectors/common/ConnectorTestBase.java @@ -23,10 +23,12 @@ import java.text.SimpleDateFormat; import java.util.ArrayList; import java.util.Date; import java.util.List; +import java.util.concurrent.TimeUnit; import org.apache.edgent.test.providers.direct.DirectTopologyTestBase; import org.apache.edgent.topology.TStream; import org.apache.edgent.topology.Topology; +import org.apache.edgent.topology.tester.Condition; public class ConnectorTestBase extends DirectTopologyTestBase { @@ -102,5 +104,23 @@ public class ConnectorTestBase extends DirectTopologyTestBase { super.completeAndValidate(ordered, msg, t, s, secTimeout, expected); } + + public static Condition<Object> newWaitTimeCondition(int seconds) { + return new Condition<Object>() { + private long startTime = 0; + private long endTime = 0; + private volatile boolean done = false; + public boolean valid() { + if (startTime==0) { + startTime = System.currentTimeMillis(); + endTime = startTime + TimeUnit.SECONDS.toMillis(seconds); + } + long now = System.currentTimeMillis(); + done = now >= endTime; + return done; + } + public Object getResult() { return done; } + }; + } } http://git-wip-us.apache.org/repos/asf/incubator-edgent/blob/786d934f/connectors/mqtt/src/test/java/org/apache/edgent/test/connectors/mqtt/MqttStreamsTestManual.java ---------------------------------------------------------------------- diff --git a/connectors/mqtt/src/test/java/org/apache/edgent/test/connectors/mqtt/MqttStreamsTestManual.java b/connectors/mqtt/src/test/java/org/apache/edgent/test/connectors/mqtt/MqttStreamsTestManual.java index 018c1c6..4eae1f1 100644 --- a/connectors/mqtt/src/test/java/org/apache/edgent/test/connectors/mqtt/MqttStreamsTestManual.java +++ b/connectors/mqtt/src/test/java/org/apache/edgent/test/connectors/mqtt/MqttStreamsTestManual.java @@ -495,17 +495,24 @@ public class MqttStreamsTestManual extends ConnectorTestBase { top.collection(msgs), PUB_DELAY_MSEC, TimeUnit.MILLISECONDS); // Code coverage test: induce connection failure - // - // At this point the only thing we can check is an expected - // result of 0 msgs received. MqttConfig config = newConfig("tcp://localhost:31999", clientId); MqttStreams mqtt = new MqttStreams(top, () -> config); mqtt.publish(s, topic, qos, retain); - TStream<String> rcvd = mqtt.subscribe(topic, qos); - - completeAndValidate(clientId, top, rcvd, mgen, SEC_TIMEOUT, new String[0]); + TStream<String> rcvd = mqtt.subscribe(topic, qos); // rcv nothing + + // in this case there's no useful condition that we can check for + // to validate this is behaving properly other than the connector doesn't + // blow up and that nothing is rcvd, so just wait a short time + // before verifying nothing was rcvd. + // Don't use the complete() TMO for successful termination. + + Condition<List<String>> rcvdContent = top.getTester().streamContents(rcvd, new String[0]); + Condition<Object> tc = newWaitTimeCondition(3); + + complete(top, tc, SEC_TIMEOUT, TimeUnit.SECONDS); + assertTrue("rcvd: "+rcvdContent.getResult(), rcvdContent.valid()); } private String retainTestSetup(boolean isRetained, MsgGenerator mgen) throws Exception { http://git-wip-us.apache.org/repos/asf/incubator-edgent/blob/786d934f/connectors/websocket/src/test/java/org/apache/edgent/test/connectors/wsclient/javax/websocket/WebSocketClientTest.java ---------------------------------------------------------------------- diff --git a/connectors/websocket/src/test/java/org/apache/edgent/test/connectors/wsclient/javax/websocket/WebSocketClientTest.java b/connectors/websocket/src/test/java/org/apache/edgent/test/connectors/wsclient/javax/websocket/WebSocketClientTest.java index fd16084..4ef65c9 100644 --- a/connectors/websocket/src/test/java/org/apache/edgent/test/connectors/wsclient/javax/websocket/WebSocketClientTest.java +++ b/connectors/websocket/src/test/java/org/apache/edgent/test/connectors/wsclient/javax/websocket/WebSocketClientTest.java @@ -614,25 +614,6 @@ public class WebSocketClientTest extends ConnectorTestBase { assertTrue("rcvd: "+rcvdContent.getResult(), rcvdContent.valid()); } - private Condition<Object> newWaitTimeCondition(int seconds) { - return new Condition<Object>() { - private long startTime = 0; - private long endTime = 0; - private volatile boolean done = false; - public boolean valid() { - if (startTime==0) { - startTime = System.currentTimeMillis(); - endTime = startTime + TimeUnit.SECONDS.toMillis(seconds); - } - long now = System.currentTimeMillis(); - done = now >= endTime; - return done; - } - public Object getResult() { return done; } - }; - - } - @Test public void testSslClientAuth() throws Exception {