You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@edgent.apache.org by dl...@apache.org on 2017/11/02 03:21:32 UTC
[21/50] [abbrv] incubator-edgent git commit: Add test dbg output for
testMultiTopologyPollWithError
Add test dbg output for testMultiTopologyPollWithError
Project: http://git-wip-us.apache.org/repos/asf/incubator-edgent/repo
Commit: http://git-wip-us.apache.org/repos/asf/incubator-edgent/commit/45df0068
Tree: http://git-wip-us.apache.org/repos/asf/incubator-edgent/tree/45df0068
Diff: http://git-wip-us.apache.org/repos/asf/incubator-edgent/diff/45df0068
Branch: refs/heads/develop
Commit: 45df0068b5c222e10fa0e1d4d295759ac08d99ed
Parents: 2428f6f
Author: Dale LaBossiere <dl...@us.ibm.com>
Authored: Thu Oct 26 16:04:51 2017 -0400
Committer: Dale LaBossiere <dl...@us.ibm.com>
Committed: Thu Oct 26 16:04:51 2017 -0400
----------------------------------------------------------------------
.../edgent/test/topology/TStreamTest.java | 56 +++++++++++++++++---
.../topology/spi/tester/AbstractTester.java | 6 +++
2 files changed, 55 insertions(+), 7 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/incubator-edgent/blob/45df0068/api/topology/src/test/java/org/apache/edgent/test/topology/TStreamTest.java
----------------------------------------------------------------------
diff --git a/api/topology/src/test/java/org/apache/edgent/test/topology/TStreamTest.java b/api/topology/src/test/java/org/apache/edgent/test/topology/TStreamTest.java
index 441d43f..464f8e2 100644
--- a/api/topology/src/test/java/org/apache/edgent/test/topology/TStreamTest.java
+++ b/api/topology/src/test/java/org/apache/edgent/test/topology/TStreamTest.java
@@ -745,14 +745,26 @@ public abstract class TStreamTest extends TopologyAbstractTest {
Topology t = newTopology();
TStream<String> s = t.strings("a", "b", "c", "d", "e", "f", "g", "h");
// Throw on the 8th tuple
- s.sink((tuple) -> { if ("h".equals(tuple)) throw new RuntimeException("Expected Test Exception");});
+ s.sink((tuple) -> { if ("h".equals(tuple)) throw new RuntimeException("MTWE Expected Test Exception");});
// Expect 7 tuples out of 8
Condition<Long> tc = t.getTester().tupleCount(s, 7);
- complete(t, tc);
+// complete(t, tc);
+ try {
+ complete(t, tc);
+ } catch (Exception e) {
+ System.err.println("MTWE complete() threw e:"+e);
+ throw e;
+ }
return true;
});
}
- waitForCompletion(completer, executions);
+// waitForCompletion(completer, executions);
+ try {
+ waitForCompletion(completer, executions);
+ } catch (Exception e) {
+ System.err.println("MTWE waitForCompletion() threw e:"+e);
+ throw e;
+ }
}
/**
@@ -762,6 +774,24 @@ public abstract class TStreamTest extends TopologyAbstractTest {
@Test
public void testMultiTopologyPollWithError() throws Exception {
+ /*
+ * It's unclear exactly what this test is supposed to achieve
+ * (hence unclear how to ensure its achieving it).
+ * Is it just trying to verify that a failure in one topology/job
+ * doesn't affect the execution of another?
+ *
+ * The way the test is written I'm not sure there's any guarantee
+ * that the "Expected Exception" will be generated the appropriate
+ * number of times.
+ * Is it possible the completion condition could get evaluated
+ * true (having seen the 7th tuple) before the 8th tuple is generated
+ * and processed by the sink fn raising the exception, resulting in
+ * the job being closed... before the 8th is generated and processed?
+ * I'm also seeing more "Expected Test Exception" traces than I expected.
+ *
+ * Annotate this and the MPWE test a bit to help understand what we're seeing
+ * in the output.
+ */
int executions = 4;
ExecutorCompletionService<Boolean> completer = new ExecutorCompletionService<>(
Executors.newFixedThreadPool(executions));
@@ -771,15 +801,27 @@ public abstract class TStreamTest extends TopologyAbstractTest {
AtomicLong n = new AtomicLong(0);
TStream<Long> s = t.poll(() -> n.incrementAndGet(), 10, TimeUnit.MILLISECONDS);
// Throw on the 8th tuple
- s.sink((tuple) -> { if (8 == n.get()) throw new RuntimeException("Expected Test Exception");});
+ s.sink((tuple) -> { if (8 == n.get()) throw new RuntimeException("MTPWE Expected Test Exception");});
// Expect 7 tuples out of 8
Condition<Long> tc = t.getTester().tupleCount(s, 7);
- complete(t, tc);
+// complete(t, tc);
+ try {
+ complete(t, tc);
+ } catch (Exception e) {
+ System.err.println("MTPWE complete() threw e:"+e);
+ throw e;
+ }
return true;
});
}
- waitForCompletion(completer, executions);
- }
+// waitForCompletion(completer, executions);
+ try {
+ waitForCompletion(completer, executions);
+ } catch (Exception e) {
+ System.err.println("MTPWE waitForCompletion() threw e:"+e);
+ throw e;
+ }
+ }
@Test
public void testJoinWithWindow() throws Exception{
http://git-wip-us.apache.org/repos/asf/incubator-edgent/blob/45df0068/spi/topology/src/main/java/org/apache/edgent/topology/spi/tester/AbstractTester.java
----------------------------------------------------------------------
diff --git a/spi/topology/src/main/java/org/apache/edgent/topology/spi/tester/AbstractTester.java b/spi/topology/src/main/java/org/apache/edgent/topology/spi/tester/AbstractTester.java
index 0c10a08..3dee72a 100644
--- a/spi/topology/src/main/java/org/apache/edgent/topology/spi/tester/AbstractTester.java
+++ b/spi/topology/src/main/java/org/apache/edgent/topology/spi/tester/AbstractTester.java
@@ -73,8 +73,14 @@ public abstract class AbstractTester implements Tester {
Thread.sleep(100);
}
+ if (!endCondition.valid() && getJob().getCurrentState() != State.CLOSED) {
+ System.err.println("complete(): timed out after " + tmoMsec + "msec");
+ }
+
if (getJob().getCurrentState() != State.CLOSED)
getJob().stateChange(Job.Action.CLOSE);
+ else
+ System.out.println("complete(): Job already closed");
return endCondition.valid();
}