You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@edgent.apache.org by "Dale LaBossiere (JIRA)" <ji...@apache.org> on 2016/04/14 03:44:25 UTC
[jira] [Created] (QUARKS-143) bogus test behavior with
DevelopmentProvider
Dale LaBossiere created QUARKS-143:
--------------------------------------
Summary: bogus test behavior with DevelopmentProvider
Key: QUARKS-143
URL: https://issues.apache.org/jira/browse/QUARKS-143
Project: Quarks
Issue Type: Bug
Components: Runtime
Reporter: Dale LaBossiere
I'm perplexed... if you add the following test to TStreamTest and run the DirectTStreamTest it works. If you run the DevelopmentTStreamTest it fails as noted in the commentary.
@Test
public void testBrokenDevelopmentProvider() throws Exception {
Topology t = newTopology();
// For some reason, the following sequence fails with no content
// received by the tester when run with the DevelopmentProvider.
//
// Commenting out either the s.filter() OR the s.peek() makes it work.
// OR putting the peek() before the filter() statement works!???
//
// This runs fine with the DirectProvider.
//
// I understand that given the structure of this test, the test
// could reach completion before either the filter or peek was actually
// called for the second tuple but that doesn't mean the tester
// should receive/report no tuples. (in practice, the full println
// output is present when it fails).
TStream<String> s = t.strings("a", "b");
s.filter(tuple -> { System.out.println("filter tuple: "+tuple); return true; });
s.peek(tuple -> System.out.println("peek tuple: "+tuple));
Condition<Long> tc = t.getTester().tupleCount(s, 2);
Condition<List<String>> contents = t.getTester().streamContents(s, "a", "b");
complete(t, tc);
assertTrue("contents "+contents.getResult(), contents.valid());
}
--
This message was sent by Atlassian JIRA
(v6.3.4#6332)