You are viewing a plain text version of this content. The canonical link for it is here.
Posted to issues@camel.apache.org by "Aurélien Pupier (JIRA)" <ji...@apache.org> on 2018/10/03 09:20:00 UTC

[jira] [Updated] (CAMEL-12852) Fix unstable test PubNubPresenceTest

     [ https://issues.apache.org/jira/browse/CAMEL-12852?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]

Aurélien Pupier updated CAMEL-12852:
------------------------------------
    Description: 
sometimes it is failing with
https://fusesource-jenkins.rhev-ci-vms.eng.rdu2.redhat.com/job/camel.redhat.pipeline/job/2.21.x.redhat-7-0-x/18/testReport/junit/org.apache.camel.component.pubnub/PubNubPresenceTest/testPresence/

{quote}Error Message

mock://result Received message count. Expected: <1> but was: <2>

Stacktrace

java.lang.AssertionError: mock://result Received message count. Expected: <1> but was: <2>
	at org.apache.camel.component.pubnub.PubNubPresenceTest.testPresence(PubNubPresenceTest.java:53){quote}

the problem is that in fact a lot of exchanges are created.
In org.apache.camel.component.mock.MockEndpoint.doAssertIsSatisfied(long), it is waiting to reach at least the given expected number in the provided timeout.
As soon as it is reached, it is doing the assertion.
But between the assertion done in the line just after, a new message may arrive.

You can notice it by putting a Thread.sleep(1000) for instance before the assertEquals, with PubNubTest it wil lalways fail and there will be a lo tmore messages.

So 3 possibilities:
- the test should expect a minimum number of messages
- the route used in test should be modified to trigger a single message
- the camel product should not create several messages and in this case it is a product bug

  was:
sometimes it is failing with
https://fusesource-jenkins.rhev-ci-vms.eng.rdu2.redhat.com/job/camel.redhat.pipeline/job/2.21.x.redhat-7-0-x/18/testReport/junit/org.apache.camel.component.pubnub/PubNubPresenceTest/testPresence/

{quote}Error Message

mock://result Received message count. Expected: <1> but was: <2>

Stacktrace

java.lang.AssertionError: mock://result Received message count. Expected: <1> but was: <2>
	at org.apache.camel.component.pubnub.PubNubPresenceTest.testPresence(PubNubPresenceTest.java:53){quote}

the problem is that in fact a lot of exchanges are created.
In org.apache.camel.component.mock.MockEndpoint.doAssertIsSatisfied(long), it is waiting to reach at least the given expected number in the provided timeout.
As soon as it is reached, it is doing the assertion.
But between the assertion done in the line just after, a new message may arrive.

You can notice it by putting a Thread.sleep(1000) fo rinstance before the assertEquals, with PubNubTest it wil lalways fail and there will be a lo tmore messages.

So 3 possibilities:
- the test should expect a minimum number of messages
- the route used in test should be modified to trigger a single message
- the camel product should not create several messages and in this case it is a product bug


> Fix unstable test PubNubPresenceTest
> ------------------------------------
>
>                 Key: CAMEL-12852
>                 URL: https://issues.apache.org/jira/browse/CAMEL-12852
>             Project: Camel
>          Issue Type: Bug
>            Reporter: Aurélien Pupier
>            Priority: Major
>
> sometimes it is failing with
> https://fusesource-jenkins.rhev-ci-vms.eng.rdu2.redhat.com/job/camel.redhat.pipeline/job/2.21.x.redhat-7-0-x/18/testReport/junit/org.apache.camel.component.pubnub/PubNubPresenceTest/testPresence/
> {quote}Error Message
> mock://result Received message count. Expected: <1> but was: <2>
> Stacktrace
> java.lang.AssertionError: mock://result Received message count. Expected: <1> but was: <2>
> 	at org.apache.camel.component.pubnub.PubNubPresenceTest.testPresence(PubNubPresenceTest.java:53){quote}
> the problem is that in fact a lot of exchanges are created.
> In org.apache.camel.component.mock.MockEndpoint.doAssertIsSatisfied(long), it is waiting to reach at least the given expected number in the provided timeout.
> As soon as it is reached, it is doing the assertion.
> But between the assertion done in the line just after, a new message may arrive.
> You can notice it by putting a Thread.sleep(1000) for instance before the assertEquals, with PubNubTest it wil lalways fail and there will be a lo tmore messages.
> So 3 possibilities:
> - the test should expect a minimum number of messages
> - the route used in test should be modified to trigger a single message
> - the camel product should not create several messages and in this case it is a product bug



--
This message was sent by Atlassian JIRA
(v7.6.3#76005)