You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@camel.apache.org by jmfj <j...@j3m.org> on 2008/06/16 18:07:54 UTC
Unit Test - Non-Deterministic Results
The results of this unit test are not the same everytime - it should (right?)
-
** FIRST RUN (maven)
-------------------------------------------------------------------------------
Test set: TestSuite
-------------------------------------------------------------------------------
Tests run: 2, Failures: 1, Errors: 0, Skipped: 0, Time elapsed: 20.743 sec
<<< FAILURE!
testExceptionHandlerOne(net.quantlet.box.mediation.CamelTest) Time elapsed:
20.079 sec <<< FAILURE!
java.lang.AssertionError: mock:null-pointer Received message count.
Expected: <1> but was: <0>
at org.apache.camel.component.mock.MockEndpoint.fail(MockEndpoint.java:658)
at
org.apache.camel.component.mock.MockEndpoint.assertEquals(MockEndpoint.java:640)
at
org.apache.camel.component.mock.MockEndpoint.assertIsSatisfied(MockEndpoint.java:217)
at
org.apache.camel.component.mock.MockEndpoint.assertIsSatisfied(MockEndpoint.java:193)
at
net.quantlet.box.mediation.CamelTest.testExceptionHandlerOne(CamelTest.java:82)
TestExceptionHandlerOne was successful
** SECOND RUN (eclipse)
java.lang.AssertionError: mock:null-pointer Received message count.
Expected: <1> but was: <0>
at org.apache.camel.component.mock.MockEndpoint.fail(MockEndpoint.java:658)
at
org.apache.camel.component.mock.MockEndpoint.assertEquals(MockEndpoint.java:640)
at
org.apache.camel.component.mock.MockEndpoint.assertIsSatisfied(MockEndpoint.java:217)
at
org.apache.camel.component.mock.MockEndpoint.assertIsSatisfied(MockEndpoint.java:193)
at
net.quantlet.box.mediation.CamelTest.testExceptionHandlerTwo(CamelTest.java:123)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at
sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
at
sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
at java.lang.reflect.Method.invoke(Method.java:585)
at org.testng.internal.MethodHelper.invokeMethod(MethodHelper.java:580)
at org.testng.internal.Invoker.invokeMethod(Invoker.java:478)
at org.testng.internal.Invoker.invokeTestMethod(Invoker.java:617)
at org.testng.internal.Invoker.invokeTestMethods(Invoker.java:885)
at
org.testng.internal.TestMethodWorker.invokeTestMethods(TestMethodWorker.java:126)
at org.testng.internal.TestMethodWorker.run(TestMethodWorker.java:110)
at org.testng.TestRunner.runWorkers(TestRunner.java:712)
at org.testng.TestRunner.privateRun(TestRunner.java:582)
at org.testng.TestRunner.run(TestRunner.java:477)
at org.testng.SuiteRunner.runTest(SuiteRunner.java:324)
at org.testng.SuiteRunner.runSequentially(SuiteRunner.java:319)
at org.testng.SuiteRunner.privateRun(SuiteRunner.java:292)
at org.testng.SuiteRunner.run(SuiteRunner.java:198)
at org.testng.TestNG.createAndRunSuiteRunners(TestNG.java:823)
at org.testng.TestNG.runSuitesLocally(TestNG.java:790)
at org.testng.TestNG.run(TestNG.java:708)
at org.testng.remote.RemoteTestNG.run(RemoteTestNG.java:73)
at org.testng.remote.RemoteTestNG.main(RemoteTestNG.java:124)
TestExceptionHandlerOne was successful
** THIRD RUN (eclipse again)
java.lang.AssertionError: mock:null-pointer Received message count.
Expected: <1> but was: <0>
at org.apache.camel.component.mock.MockEndpoint.fail(MockEndpoint.java:658)
at
org.apache.camel.component.mock.MockEndpoint.assertEquals(MockEndpoint.java:640)
at
org.apache.camel.component.mock.MockEndpoint.assertIsSatisfied(MockEndpoint.java:217)
at
org.apache.camel.component.mock.MockEndpoint.assertIsSatisfied(MockEndpoint.java:193)
at
net.quantlet.box.mediation.CamelTest.testExceptionHandlerTwo(CamelTest.java:123)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at
sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
at
sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
at java.lang.reflect.Method.invoke(Method.java:585)
at org.testng.internal.MethodHelper.invokeMethod(MethodHelper.java:580)
at org.testng.internal.Invoker.invokeMethod(Invoker.java:478)
at org.testng.internal.Invoker.invokeTestMethod(Invoker.java:617)
at org.testng.internal.Invoker.invokeTestMethods(Invoker.java:885)
at
org.testng.internal.TestMethodWorker.invokeTestMethods(TestMethodWorker.java:126)
at org.testng.internal.TestMethodWorker.run(TestMethodWorker.java:110)
at org.testng.TestRunner.runWorkers(TestRunner.java:712)
at org.testng.TestRunner.privateRun(TestRunner.java:582)
at org.testng.TestRunner.run(TestRunner.java:477)
at org.testng.SuiteRunner.runTest(SuiteRunner.java:324)
at org.testng.SuiteRunner.runSequentially(SuiteRunner.java:319)
at org.testng.SuiteRunner.privateRun(SuiteRunner.java:292)
at org.testng.SuiteRunner.run(SuiteRunner.java:198)
at org.testng.TestNG.createAndRunSuiteRunners(TestNG.java:823)
at org.testng.TestNG.runSuitesLocally(TestNG.java:790)
at org.testng.TestNG.run(TestNG.java:708)
at org.testng.remote.RemoteTestNG.run(RemoteTestNG.java:73)
at org.testng.remote.RemoteTestNG.main(RemoteTestNG.java:124)
and
java.lang.AssertionError: mock:null-pointer Received message count.
Expected: <1> but was: <0>
at org.apache.camel.component.mock.MockEndpoint.fail(MockEndpoint.java:658)
at
org.apache.camel.component.mock.MockEndpoint.assertEquals(MockEndpoint.java:640)
at
org.apache.camel.component.mock.MockEndpoint.assertIsSatisfied(MockEndpoint.java:217)
at
org.apache.camel.component.mock.MockEndpoint.assertIsSatisfied(MockEndpoint.java:193)
at
net.quantlet.box.mediation.CamelTest.testExceptionHandlerOne(CamelTest.java:82)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at
sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
at
sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
at java.lang.reflect.Method.invoke(Method.java:585)
at org.testng.internal.MethodHelper.invokeMethod(MethodHelper.java:580)
at org.testng.internal.Invoker.invokeMethod(Invoker.java:478)
at org.testng.internal.Invoker.invokeTestMethod(Invoker.java:617)
at org.testng.internal.Invoker.invokeTestMethods(Invoker.java:885)
at
org.testng.internal.TestMethodWorker.invokeTestMethods(TestMethodWorker.java:126)
at org.testng.internal.TestMethodWorker.run(TestMethodWorker.java:110)
at org.testng.TestRunner.runWorkers(TestRunner.java:712)
at org.testng.TestRunner.privateRun(TestRunner.java:582)
at org.testng.TestRunner.run(TestRunner.java:477)
at org.testng.SuiteRunner.runTest(SuiteRunner.java:324)
at org.testng.SuiteRunner.runSequentially(SuiteRunner.java:319)
at org.testng.SuiteRunner.privateRun(SuiteRunner.java:292)
at org.testng.SuiteRunner.run(SuiteRunner.java:198)
at org.testng.TestNG.createAndRunSuiteRunners(TestNG.java:823)
at org.testng.TestNG.runSuitesLocally(TestNG.java:790)
at org.testng.TestNG.run(TestNG.java:708)
at org.testng.remote.RemoteTestNG.run(RemoteTestNG.java:73)
at org.testng.remote.RemoteTestNG.main(RemoteTestNG.java:124)
I might be missing something (hope not) - anyways, here is the entire unit
test (TestNG) for your enjoyment...
http://www.nabble.com/file/p17867803/CamelTest.java CamelTest.java
--
View this message in context: http://www.nabble.com/Unit-Test---Non-Deterministic-Results-tp17867803s22882p17867803.html
Sent from the Camel - Development mailing list archive at Nabble.com.
Re: Unit Test - Non-Deterministic Results
Posted by James Strachan <ja...@gmail.com>.
2008/6/16 jmfj <j...@j3m.org>:
>
> Yes, this was an issue and is now solved - here is the new code:
>
> http://www.nabble.com/file/p17870603/CamelTest.java CamelTest.java
Ah great!
> When using the multi threaded feature of TestNG (pom.xml)
>
> (...)
> <plugin>
> <groupId>org.apache.maven.plugins</groupId>
>
> <artifactId>maven-surefire-plugin</artifactId>
> <configuration>
> <groups>unit,performance</groups>
> <parallel>methods</parallel>
> <threadCount>1</threadCount>
> </configuration>
> </plugin>
> (...)
>
> If <threadCount/> is greater than 1 (multiple threads one per each test
> method, executing in parallel) the test again fails occasionally.. The only
> shared component across those two methods are Camel classes.
Hmm - so the instance variables in those test methods should be
different for each thread right?
This is really strange - sounds like we've some static instance
variables around the place then right? I've looked at the
DefaultCamelContext and the SedaEndpoint and don't see any statics.
> Apologies if I am posting in the wrong group...
No this is the right group! :). Please keep these issues coming, it
could well be you've found some gremlin in the code!
--
James
-------
http://macstrac.blogspot.com/
Open Source Integration
http://open.iona.com
Re: Unit Test - Non-Deterministic Results
Posted by jmfj <j...@j3m.org>.
Yes, this was an issue and is now solved - here is the new code:
http://www.nabble.com/file/p17870603/CamelTest.java CamelTest.java
When using the multi threaded feature of TestNG (pom.xml)
(...)
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-surefire-plugin</artifactId>
<configuration>
<groups>unit,performance</groups>
<parallel>methods</parallel>
<threadCount>1</threadCount>
</configuration>
</plugin>
(...)
If <threadCount/> is greater than 1 (multiple threads one per each test
method, executing in parallel) the test again fails occasionally.. The only
shared component across those two methods are Camel classes.
Apologies if I am posting in the wrong group...
James.Strachan wrote:
>
> 2008/6/16 jmfj <j...@j3m.org>:
>>
>> Yes, dead on -- worked for single threaded tests - however, should
>> testOne()
>> and testTwo() affect each other if executed on separate threads?
>
> Sorry I mean is the bug in the test case - namely ExceptionThrower not
> being thread safe?
>
> --
> James
> -------
> http://macstrac.blogspot.com/
>
> Open Source Integration
> http://open.iona.com
>
>
--
View this message in context: http://www.nabble.com/Unit-Test---Non-Deterministic-Results-tp17867803s22882p17870603.html
Sent from the Camel - Development mailing list archive at Nabble.com.
Re: Unit Test - Non-Deterministic Results
Posted by James Strachan <ja...@gmail.com>.
2008/6/16 jmfj <j...@j3m.org>:
>
> Yes, dead on -- worked for single threaded tests - however, should testOne()
> and testTwo() affect each other if executed on separate threads?
Sorry I mean is the bug in the test case - namely ExceptionThrower not
being thread safe?
--
James
-------
http://macstrac.blogspot.com/
Open Source Integration
http://open.iona.com
Re: Unit Test - Non-Deterministic Results
Posted by jmfj <j...@j3m.org>.
Yes, dead on -- worked for single threaded tests - however, should testOne()
and testTwo() affect each other if executed on separate threads?
I.e., in this configuration in my pom.xml
(...)
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-surefire-plugin</artifactId>
<configuration>
<groups>unit,performance</groups>
<parallel>methods</parallel>
<threadCount>1</threadCount>
</configuration>
</plugin>
(...)
succeeds -- for threadCount > 1 however, fails..
Let me know if that is the intended behavior (thread-safety of CamelContext
/ or endpoints), a limitation or this is an uncovered bug.
Thanks !
James.Strachan wrote:
>
> 2008/6/16 James Strachan <ja...@gmail.com>:
>> I wonder if using an AtomicInteger inside your ExceptionThrower might
>> help?
>
> BTW I mean change the type of 'i' from int to AtomicInteger then
> change the code to something like this...
>
> switch (i.incrementAndGet()) {
> case 1:
> System.out.println("throwing null");
> throw new NullPointerException();
> case 2:
> System.out.println("throwing exception");
> throw new Exception();
> default:
> System.out.println("throwing nothing");
> ; // nop
> }
>
>
>
>>
>> 2008/6/16 jmfj <j...@j3m.org>:
>>>
>>> The results of this unit test are not the same everytime - it should
>>> (right?)
>>> -
>>>
>>> ** FIRST RUN (maven)
>>> -------------------------------------------------------------------------------
>>> Test set: TestSuite
>>> -------------------------------------------------------------------------------
>>> Tests run: 2, Failures: 1, Errors: 0, Skipped: 0, Time elapsed: 20.743
>>> sec
>>> <<< FAILURE!
>>>
>>> testExceptionHandlerOne(net.quantlet.box.mediation.CamelTest) Time
>>> elapsed:
>>> 20.079 sec <<< FAILURE!
>>> java.lang.AssertionError: mock:null-pointer Received message count.
>>> Expected: <1> but was: <0>
>>> at
>>> org.apache.camel.component.mock.MockEndpoint.fail(MockEndpoint.java:658)
>>> at
>>> org.apache.camel.component.mock.MockEndpoint.assertEquals(MockEndpoint.java:640)
>>> at
>>> org.apache.camel.component.mock.MockEndpoint.assertIsSatisfied(MockEndpoint.java:217)
>>> at
>>> org.apache.camel.component.mock.MockEndpoint.assertIsSatisfied(MockEndpoint.java:193)
>>> at
>>> net.quantlet.box.mediation.CamelTest.testExceptionHandlerOne(CamelTest.java:82)
>>>
>>> TestExceptionHandlerOne was successful
>>>
>>> ** SECOND RUN (eclipse)
>>>
>>> java.lang.AssertionError: mock:null-pointer Received message count.
>>> Expected: <1> but was: <0>
>>> at
>>> org.apache.camel.component.mock.MockEndpoint.fail(MockEndpoint.java:658)
>>> at
>>> org.apache.camel.component.mock.MockEndpoint.assertEquals(MockEndpoint.java:640)
>>> at
>>> org.apache.camel.component.mock.MockEndpoint.assertIsSatisfied(MockEndpoint.java:217)
>>> at
>>> org.apache.camel.component.mock.MockEndpoint.assertIsSatisfied(MockEndpoint.java:193)
>>> at
>>> net.quantlet.box.mediation.CamelTest.testExceptionHandlerTwo(CamelTest.java:123)
>>> at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
>>> at
>>> sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
>>> at
>>> sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
>>> at java.lang.reflect.Method.invoke(Method.java:585)
>>> at
>>> org.testng.internal.MethodHelper.invokeMethod(MethodHelper.java:580)
>>> at org.testng.internal.Invoker.invokeMethod(Invoker.java:478)
>>> at org.testng.internal.Invoker.invokeTestMethod(Invoker.java:617)
>>> at
>>> org.testng.internal.Invoker.invokeTestMethods(Invoker.java:885)
>>> at
>>> org.testng.internal.TestMethodWorker.invokeTestMethods(TestMethodWorker.java:126)
>>> at
>>> org.testng.internal.TestMethodWorker.run(TestMethodWorker.java:110)
>>> at org.testng.TestRunner.runWorkers(TestRunner.java:712)
>>> at org.testng.TestRunner.privateRun(TestRunner.java:582)
>>> at org.testng.TestRunner.run(TestRunner.java:477)
>>> at org.testng.SuiteRunner.runTest(SuiteRunner.java:324)
>>> at org.testng.SuiteRunner.runSequentially(SuiteRunner.java:319)
>>> at org.testng.SuiteRunner.privateRun(SuiteRunner.java:292)
>>> at org.testng.SuiteRunner.run(SuiteRunner.java:198)
>>> at org.testng.TestNG.createAndRunSuiteRunners(TestNG.java:823)
>>> at org.testng.TestNG.runSuitesLocally(TestNG.java:790)
>>> at org.testng.TestNG.run(TestNG.java:708)
>>> at org.testng.remote.RemoteTestNG.run(RemoteTestNG.java:73)
>>> at org.testng.remote.RemoteTestNG.main(RemoteTestNG.java:124)
>>>
>>> TestExceptionHandlerOne was successful
>>>
>>> ** THIRD RUN (eclipse again)
>>>
>>> java.lang.AssertionError: mock:null-pointer Received message count.
>>> Expected: <1> but was: <0>
>>> at
>>> org.apache.camel.component.mock.MockEndpoint.fail(MockEndpoint.java:658)
>>> at
>>> org.apache.camel.component.mock.MockEndpoint.assertEquals(MockEndpoint.java:640)
>>> at
>>> org.apache.camel.component.mock.MockEndpoint.assertIsSatisfied(MockEndpoint.java:217)
>>> at
>>> org.apache.camel.component.mock.MockEndpoint.assertIsSatisfied(MockEndpoint.java:193)
>>> at
>>> net.quantlet.box.mediation.CamelTest.testExceptionHandlerTwo(CamelTest.java:123)
>>> at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
>>> at
>>> sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
>>> at
>>> sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
>>> at java.lang.reflect.Method.invoke(Method.java:585)
>>> at
>>> org.testng.internal.MethodHelper.invokeMethod(MethodHelper.java:580)
>>> at org.testng.internal.Invoker.invokeMethod(Invoker.java:478)
>>> at org.testng.internal.Invoker.invokeTestMethod(Invoker.java:617)
>>> at
>>> org.testng.internal.Invoker.invokeTestMethods(Invoker.java:885)
>>> at
>>> org.testng.internal.TestMethodWorker.invokeTestMethods(TestMethodWorker.java:126)
>>> at
>>> org.testng.internal.TestMethodWorker.run(TestMethodWorker.java:110)
>>> at org.testng.TestRunner.runWorkers(TestRunner.java:712)
>>> at org.testng.TestRunner.privateRun(TestRunner.java:582)
>>> at org.testng.TestRunner.run(TestRunner.java:477)
>>> at org.testng.SuiteRunner.runTest(SuiteRunner.java:324)
>>> at org.testng.SuiteRunner.runSequentially(SuiteRunner.java:319)
>>> at org.testng.SuiteRunner.privateRun(SuiteRunner.java:292)
>>> at org.testng.SuiteRunner.run(SuiteRunner.java:198)
>>> at org.testng.TestNG.createAndRunSuiteRunners(TestNG.java:823)
>>> at org.testng.TestNG.runSuitesLocally(TestNG.java:790)
>>> at org.testng.TestNG.run(TestNG.java:708)
>>> at org.testng.remote.RemoteTestNG.run(RemoteTestNG.java:73)
>>> at org.testng.remote.RemoteTestNG.main(RemoteTestNG.java:124)
>>>
>>> and
>>>
>>> java.lang.AssertionError: mock:null-pointer Received message count.
>>> Expected: <1> but was: <0>
>>> at
>>> org.apache.camel.component.mock.MockEndpoint.fail(MockEndpoint.java:658)
>>> at
>>> org.apache.camel.component.mock.MockEndpoint.assertEquals(MockEndpoint.java:640)
>>> at
>>> org.apache.camel.component.mock.MockEndpoint.assertIsSatisfied(MockEndpoint.java:217)
>>> at
>>> org.apache.camel.component.mock.MockEndpoint.assertIsSatisfied(MockEndpoint.java:193)
>>> at
>>> net.quantlet.box.mediation.CamelTest.testExceptionHandlerOne(CamelTest.java:82)
>>> at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
>>> at
>>> sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
>>> at
>>> sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
>>> at java.lang.reflect.Method.invoke(Method.java:585)
>>> at
>>> org.testng.internal.MethodHelper.invokeMethod(MethodHelper.java:580)
>>> at org.testng.internal.Invoker.invokeMethod(Invoker.java:478)
>>> at org.testng.internal.Invoker.invokeTestMethod(Invoker.java:617)
>>> at
>>> org.testng.internal.Invoker.invokeTestMethods(Invoker.java:885)
>>> at
>>> org.testng.internal.TestMethodWorker.invokeTestMethods(TestMethodWorker.java:126)
>>> at
>>> org.testng.internal.TestMethodWorker.run(TestMethodWorker.java:110)
>>> at org.testng.TestRunner.runWorkers(TestRunner.java:712)
>>> at org.testng.TestRunner.privateRun(TestRunner.java:582)
>>> at org.testng.TestRunner.run(TestRunner.java:477)
>>> at org.testng.SuiteRunner.runTest(SuiteRunner.java:324)
>>> at org.testng.SuiteRunner.runSequentially(SuiteRunner.java:319)
>>> at org.testng.SuiteRunner.privateRun(SuiteRunner.java:292)
>>> at org.testng.SuiteRunner.run(SuiteRunner.java:198)
>>> at org.testng.TestNG.createAndRunSuiteRunners(TestNG.java:823)
>>> at org.testng.TestNG.runSuitesLocally(TestNG.java:790)
>>> at org.testng.TestNG.run(TestNG.java:708)
>>> at org.testng.remote.RemoteTestNG.run(RemoteTestNG.java:73)
>>> at org.testng.remote.RemoteTestNG.main(RemoteTestNG.java:124)
>>>
>>> I might be missing something (hope not) - anyways, here is the entire
>>> unit
>>> test (TestNG) for your enjoyment...
>>>
>>> http://www.nabble.com/file/p17867803/CamelTest.java CamelTest.java
>>>
>>>
>>> --
>>> View this message in context:
>>> http://www.nabble.com/Unit-Test---Non-Deterministic-Results-tp17867803s22882p17867803.html
>>> Sent from the Camel - Development mailing list archive at Nabble.com.
>>>
>>>
>>
>>
>>
>> --
>> James
>> -------
>> http://macstrac.blogspot.com/
>>
>> Open Source Integration
>> http://open.iona.com
>>
>
>
>
> --
> James
> -------
> http://macstrac.blogspot.com/
>
> Open Source Integration
> http://open.iona.com
>
>
--
View this message in context: http://www.nabble.com/Unit-Test---Non-Deterministic-Results-tp17867803s22882p17870129.html
Sent from the Camel - Development mailing list archive at Nabble.com.
Re: Unit Test - Non-Deterministic Results
Posted by James Strachan <ja...@gmail.com>.
2008/6/16 James Strachan <ja...@gmail.com>:
> I wonder if using an AtomicInteger inside your ExceptionThrower might help?
BTW I mean change the type of 'i' from int to AtomicInteger then
change the code to something like this...
switch (i.incrementAndGet()) {
case 1:
System.out.println("throwing null");
throw new NullPointerException();
case 2:
System.out.println("throwing exception");
throw new Exception();
default:
System.out.println("throwing nothing");
; // nop
}
>
> 2008/6/16 jmfj <j...@j3m.org>:
>>
>> The results of this unit test are not the same everytime - it should (right?)
>> -
>>
>> ** FIRST RUN (maven)
>> -------------------------------------------------------------------------------
>> Test set: TestSuite
>> -------------------------------------------------------------------------------
>> Tests run: 2, Failures: 1, Errors: 0, Skipped: 0, Time elapsed: 20.743 sec
>> <<< FAILURE!
>>
>> testExceptionHandlerOne(net.quantlet.box.mediation.CamelTest) Time elapsed:
>> 20.079 sec <<< FAILURE!
>> java.lang.AssertionError: mock:null-pointer Received message count.
>> Expected: <1> but was: <0>
>> at org.apache.camel.component.mock.MockEndpoint.fail(MockEndpoint.java:658)
>> at
>> org.apache.camel.component.mock.MockEndpoint.assertEquals(MockEndpoint.java:640)
>> at
>> org.apache.camel.component.mock.MockEndpoint.assertIsSatisfied(MockEndpoint.java:217)
>> at
>> org.apache.camel.component.mock.MockEndpoint.assertIsSatisfied(MockEndpoint.java:193)
>> at
>> net.quantlet.box.mediation.CamelTest.testExceptionHandlerOne(CamelTest.java:82)
>>
>> TestExceptionHandlerOne was successful
>>
>> ** SECOND RUN (eclipse)
>>
>> java.lang.AssertionError: mock:null-pointer Received message count.
>> Expected: <1> but was: <0>
>> at org.apache.camel.component.mock.MockEndpoint.fail(MockEndpoint.java:658)
>> at
>> org.apache.camel.component.mock.MockEndpoint.assertEquals(MockEndpoint.java:640)
>> at
>> org.apache.camel.component.mock.MockEndpoint.assertIsSatisfied(MockEndpoint.java:217)
>> at
>> org.apache.camel.component.mock.MockEndpoint.assertIsSatisfied(MockEndpoint.java:193)
>> at
>> net.quantlet.box.mediation.CamelTest.testExceptionHandlerTwo(CamelTest.java:123)
>> at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
>> at
>> sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
>> at
>> sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
>> at java.lang.reflect.Method.invoke(Method.java:585)
>> at org.testng.internal.MethodHelper.invokeMethod(MethodHelper.java:580)
>> at org.testng.internal.Invoker.invokeMethod(Invoker.java:478)
>> at org.testng.internal.Invoker.invokeTestMethod(Invoker.java:617)
>> at org.testng.internal.Invoker.invokeTestMethods(Invoker.java:885)
>> at
>> org.testng.internal.TestMethodWorker.invokeTestMethods(TestMethodWorker.java:126)
>> at org.testng.internal.TestMethodWorker.run(TestMethodWorker.java:110)
>> at org.testng.TestRunner.runWorkers(TestRunner.java:712)
>> at org.testng.TestRunner.privateRun(TestRunner.java:582)
>> at org.testng.TestRunner.run(TestRunner.java:477)
>> at org.testng.SuiteRunner.runTest(SuiteRunner.java:324)
>> at org.testng.SuiteRunner.runSequentially(SuiteRunner.java:319)
>> at org.testng.SuiteRunner.privateRun(SuiteRunner.java:292)
>> at org.testng.SuiteRunner.run(SuiteRunner.java:198)
>> at org.testng.TestNG.createAndRunSuiteRunners(TestNG.java:823)
>> at org.testng.TestNG.runSuitesLocally(TestNG.java:790)
>> at org.testng.TestNG.run(TestNG.java:708)
>> at org.testng.remote.RemoteTestNG.run(RemoteTestNG.java:73)
>> at org.testng.remote.RemoteTestNG.main(RemoteTestNG.java:124)
>>
>> TestExceptionHandlerOne was successful
>>
>> ** THIRD RUN (eclipse again)
>>
>> java.lang.AssertionError: mock:null-pointer Received message count.
>> Expected: <1> but was: <0>
>> at org.apache.camel.component.mock.MockEndpoint.fail(MockEndpoint.java:658)
>> at
>> org.apache.camel.component.mock.MockEndpoint.assertEquals(MockEndpoint.java:640)
>> at
>> org.apache.camel.component.mock.MockEndpoint.assertIsSatisfied(MockEndpoint.java:217)
>> at
>> org.apache.camel.component.mock.MockEndpoint.assertIsSatisfied(MockEndpoint.java:193)
>> at
>> net.quantlet.box.mediation.CamelTest.testExceptionHandlerTwo(CamelTest.java:123)
>> at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
>> at
>> sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
>> at
>> sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
>> at java.lang.reflect.Method.invoke(Method.java:585)
>> at org.testng.internal.MethodHelper.invokeMethod(MethodHelper.java:580)
>> at org.testng.internal.Invoker.invokeMethod(Invoker.java:478)
>> at org.testng.internal.Invoker.invokeTestMethod(Invoker.java:617)
>> at org.testng.internal.Invoker.invokeTestMethods(Invoker.java:885)
>> at
>> org.testng.internal.TestMethodWorker.invokeTestMethods(TestMethodWorker.java:126)
>> at org.testng.internal.TestMethodWorker.run(TestMethodWorker.java:110)
>> at org.testng.TestRunner.runWorkers(TestRunner.java:712)
>> at org.testng.TestRunner.privateRun(TestRunner.java:582)
>> at org.testng.TestRunner.run(TestRunner.java:477)
>> at org.testng.SuiteRunner.runTest(SuiteRunner.java:324)
>> at org.testng.SuiteRunner.runSequentially(SuiteRunner.java:319)
>> at org.testng.SuiteRunner.privateRun(SuiteRunner.java:292)
>> at org.testng.SuiteRunner.run(SuiteRunner.java:198)
>> at org.testng.TestNG.createAndRunSuiteRunners(TestNG.java:823)
>> at org.testng.TestNG.runSuitesLocally(TestNG.java:790)
>> at org.testng.TestNG.run(TestNG.java:708)
>> at org.testng.remote.RemoteTestNG.run(RemoteTestNG.java:73)
>> at org.testng.remote.RemoteTestNG.main(RemoteTestNG.java:124)
>>
>> and
>>
>> java.lang.AssertionError: mock:null-pointer Received message count.
>> Expected: <1> but was: <0>
>> at org.apache.camel.component.mock.MockEndpoint.fail(MockEndpoint.java:658)
>> at
>> org.apache.camel.component.mock.MockEndpoint.assertEquals(MockEndpoint.java:640)
>> at
>> org.apache.camel.component.mock.MockEndpoint.assertIsSatisfied(MockEndpoint.java:217)
>> at
>> org.apache.camel.component.mock.MockEndpoint.assertIsSatisfied(MockEndpoint.java:193)
>> at
>> net.quantlet.box.mediation.CamelTest.testExceptionHandlerOne(CamelTest.java:82)
>> at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
>> at
>> sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
>> at
>> sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
>> at java.lang.reflect.Method.invoke(Method.java:585)
>> at org.testng.internal.MethodHelper.invokeMethod(MethodHelper.java:580)
>> at org.testng.internal.Invoker.invokeMethod(Invoker.java:478)
>> at org.testng.internal.Invoker.invokeTestMethod(Invoker.java:617)
>> at org.testng.internal.Invoker.invokeTestMethods(Invoker.java:885)
>> at
>> org.testng.internal.TestMethodWorker.invokeTestMethods(TestMethodWorker.java:126)
>> at org.testng.internal.TestMethodWorker.run(TestMethodWorker.java:110)
>> at org.testng.TestRunner.runWorkers(TestRunner.java:712)
>> at org.testng.TestRunner.privateRun(TestRunner.java:582)
>> at org.testng.TestRunner.run(TestRunner.java:477)
>> at org.testng.SuiteRunner.runTest(SuiteRunner.java:324)
>> at org.testng.SuiteRunner.runSequentially(SuiteRunner.java:319)
>> at org.testng.SuiteRunner.privateRun(SuiteRunner.java:292)
>> at org.testng.SuiteRunner.run(SuiteRunner.java:198)
>> at org.testng.TestNG.createAndRunSuiteRunners(TestNG.java:823)
>> at org.testng.TestNG.runSuitesLocally(TestNG.java:790)
>> at org.testng.TestNG.run(TestNG.java:708)
>> at org.testng.remote.RemoteTestNG.run(RemoteTestNG.java:73)
>> at org.testng.remote.RemoteTestNG.main(RemoteTestNG.java:124)
>>
>> I might be missing something (hope not) - anyways, here is the entire unit
>> test (TestNG) for your enjoyment...
>>
>> http://www.nabble.com/file/p17867803/CamelTest.java CamelTest.java
>>
>>
>> --
>> View this message in context: http://www.nabble.com/Unit-Test---Non-Deterministic-Results-tp17867803s22882p17867803.html
>> Sent from the Camel - Development mailing list archive at Nabble.com.
>>
>>
>
>
>
> --
> James
> -------
> http://macstrac.blogspot.com/
>
> Open Source Integration
> http://open.iona.com
>
--
James
-------
http://macstrac.blogspot.com/
Open Source Integration
http://open.iona.com
Re: Unit Test - Non-Deterministic Results
Posted by James Strachan <ja...@gmail.com>.
I wonder if using an AtomicInteger inside your ExceptionThrower might help?
2008/6/16 jmfj <j...@j3m.org>:
>
> The results of this unit test are not the same everytime - it should (right?)
> -
>
> ** FIRST RUN (maven)
> -------------------------------------------------------------------------------
> Test set: TestSuite
> -------------------------------------------------------------------------------
> Tests run: 2, Failures: 1, Errors: 0, Skipped: 0, Time elapsed: 20.743 sec
> <<< FAILURE!
>
> testExceptionHandlerOne(net.quantlet.box.mediation.CamelTest) Time elapsed:
> 20.079 sec <<< FAILURE!
> java.lang.AssertionError: mock:null-pointer Received message count.
> Expected: <1> but was: <0>
> at org.apache.camel.component.mock.MockEndpoint.fail(MockEndpoint.java:658)
> at
> org.apache.camel.component.mock.MockEndpoint.assertEquals(MockEndpoint.java:640)
> at
> org.apache.camel.component.mock.MockEndpoint.assertIsSatisfied(MockEndpoint.java:217)
> at
> org.apache.camel.component.mock.MockEndpoint.assertIsSatisfied(MockEndpoint.java:193)
> at
> net.quantlet.box.mediation.CamelTest.testExceptionHandlerOne(CamelTest.java:82)
>
> TestExceptionHandlerOne was successful
>
> ** SECOND RUN (eclipse)
>
> java.lang.AssertionError: mock:null-pointer Received message count.
> Expected: <1> but was: <0>
> at org.apache.camel.component.mock.MockEndpoint.fail(MockEndpoint.java:658)
> at
> org.apache.camel.component.mock.MockEndpoint.assertEquals(MockEndpoint.java:640)
> at
> org.apache.camel.component.mock.MockEndpoint.assertIsSatisfied(MockEndpoint.java:217)
> at
> org.apache.camel.component.mock.MockEndpoint.assertIsSatisfied(MockEndpoint.java:193)
> at
> net.quantlet.box.mediation.CamelTest.testExceptionHandlerTwo(CamelTest.java:123)
> at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
> at
> sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
> at
> sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
> at java.lang.reflect.Method.invoke(Method.java:585)
> at org.testng.internal.MethodHelper.invokeMethod(MethodHelper.java:580)
> at org.testng.internal.Invoker.invokeMethod(Invoker.java:478)
> at org.testng.internal.Invoker.invokeTestMethod(Invoker.java:617)
> at org.testng.internal.Invoker.invokeTestMethods(Invoker.java:885)
> at
> org.testng.internal.TestMethodWorker.invokeTestMethods(TestMethodWorker.java:126)
> at org.testng.internal.TestMethodWorker.run(TestMethodWorker.java:110)
> at org.testng.TestRunner.runWorkers(TestRunner.java:712)
> at org.testng.TestRunner.privateRun(TestRunner.java:582)
> at org.testng.TestRunner.run(TestRunner.java:477)
> at org.testng.SuiteRunner.runTest(SuiteRunner.java:324)
> at org.testng.SuiteRunner.runSequentially(SuiteRunner.java:319)
> at org.testng.SuiteRunner.privateRun(SuiteRunner.java:292)
> at org.testng.SuiteRunner.run(SuiteRunner.java:198)
> at org.testng.TestNG.createAndRunSuiteRunners(TestNG.java:823)
> at org.testng.TestNG.runSuitesLocally(TestNG.java:790)
> at org.testng.TestNG.run(TestNG.java:708)
> at org.testng.remote.RemoteTestNG.run(RemoteTestNG.java:73)
> at org.testng.remote.RemoteTestNG.main(RemoteTestNG.java:124)
>
> TestExceptionHandlerOne was successful
>
> ** THIRD RUN (eclipse again)
>
> java.lang.AssertionError: mock:null-pointer Received message count.
> Expected: <1> but was: <0>
> at org.apache.camel.component.mock.MockEndpoint.fail(MockEndpoint.java:658)
> at
> org.apache.camel.component.mock.MockEndpoint.assertEquals(MockEndpoint.java:640)
> at
> org.apache.camel.component.mock.MockEndpoint.assertIsSatisfied(MockEndpoint.java:217)
> at
> org.apache.camel.component.mock.MockEndpoint.assertIsSatisfied(MockEndpoint.java:193)
> at
> net.quantlet.box.mediation.CamelTest.testExceptionHandlerTwo(CamelTest.java:123)
> at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
> at
> sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
> at
> sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
> at java.lang.reflect.Method.invoke(Method.java:585)
> at org.testng.internal.MethodHelper.invokeMethod(MethodHelper.java:580)
> at org.testng.internal.Invoker.invokeMethod(Invoker.java:478)
> at org.testng.internal.Invoker.invokeTestMethod(Invoker.java:617)
> at org.testng.internal.Invoker.invokeTestMethods(Invoker.java:885)
> at
> org.testng.internal.TestMethodWorker.invokeTestMethods(TestMethodWorker.java:126)
> at org.testng.internal.TestMethodWorker.run(TestMethodWorker.java:110)
> at org.testng.TestRunner.runWorkers(TestRunner.java:712)
> at org.testng.TestRunner.privateRun(TestRunner.java:582)
> at org.testng.TestRunner.run(TestRunner.java:477)
> at org.testng.SuiteRunner.runTest(SuiteRunner.java:324)
> at org.testng.SuiteRunner.runSequentially(SuiteRunner.java:319)
> at org.testng.SuiteRunner.privateRun(SuiteRunner.java:292)
> at org.testng.SuiteRunner.run(SuiteRunner.java:198)
> at org.testng.TestNG.createAndRunSuiteRunners(TestNG.java:823)
> at org.testng.TestNG.runSuitesLocally(TestNG.java:790)
> at org.testng.TestNG.run(TestNG.java:708)
> at org.testng.remote.RemoteTestNG.run(RemoteTestNG.java:73)
> at org.testng.remote.RemoteTestNG.main(RemoteTestNG.java:124)
>
> and
>
> java.lang.AssertionError: mock:null-pointer Received message count.
> Expected: <1> but was: <0>
> at org.apache.camel.component.mock.MockEndpoint.fail(MockEndpoint.java:658)
> at
> org.apache.camel.component.mock.MockEndpoint.assertEquals(MockEndpoint.java:640)
> at
> org.apache.camel.component.mock.MockEndpoint.assertIsSatisfied(MockEndpoint.java:217)
> at
> org.apache.camel.component.mock.MockEndpoint.assertIsSatisfied(MockEndpoint.java:193)
> at
> net.quantlet.box.mediation.CamelTest.testExceptionHandlerOne(CamelTest.java:82)
> at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
> at
> sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
> at
> sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
> at java.lang.reflect.Method.invoke(Method.java:585)
> at org.testng.internal.MethodHelper.invokeMethod(MethodHelper.java:580)
> at org.testng.internal.Invoker.invokeMethod(Invoker.java:478)
> at org.testng.internal.Invoker.invokeTestMethod(Invoker.java:617)
> at org.testng.internal.Invoker.invokeTestMethods(Invoker.java:885)
> at
> org.testng.internal.TestMethodWorker.invokeTestMethods(TestMethodWorker.java:126)
> at org.testng.internal.TestMethodWorker.run(TestMethodWorker.java:110)
> at org.testng.TestRunner.runWorkers(TestRunner.java:712)
> at org.testng.TestRunner.privateRun(TestRunner.java:582)
> at org.testng.TestRunner.run(TestRunner.java:477)
> at org.testng.SuiteRunner.runTest(SuiteRunner.java:324)
> at org.testng.SuiteRunner.runSequentially(SuiteRunner.java:319)
> at org.testng.SuiteRunner.privateRun(SuiteRunner.java:292)
> at org.testng.SuiteRunner.run(SuiteRunner.java:198)
> at org.testng.TestNG.createAndRunSuiteRunners(TestNG.java:823)
> at org.testng.TestNG.runSuitesLocally(TestNG.java:790)
> at org.testng.TestNG.run(TestNG.java:708)
> at org.testng.remote.RemoteTestNG.run(RemoteTestNG.java:73)
> at org.testng.remote.RemoteTestNG.main(RemoteTestNG.java:124)
>
> I might be missing something (hope not) - anyways, here is the entire unit
> test (TestNG) for your enjoyment...
>
> http://www.nabble.com/file/p17867803/CamelTest.java CamelTest.java
>
>
> --
> View this message in context: http://www.nabble.com/Unit-Test---Non-Deterministic-Results-tp17867803s22882p17867803.html
> Sent from the Camel - Development mailing list archive at Nabble.com.
>
>
--
James
-------
http://macstrac.blogspot.com/
Open Source Integration
http://open.iona.com