« Return to Thread: [jira] Created: (JMOCK-214) Fail fast when run concurrently

[jira] Commented: (JMOCK-214) Fail fast when run concurrently

by JIRA jira@codehaus.org :: Rate this Message:

Reply to Author | View in Thread


    [ http://jira.codehaus.org/browse/JMOCK-214?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=167633#action_167633 ]

Nat Pryce commented on JMOCK-214:
---------------------------------

I've implemented this.  However, getting a clear failure is difficult because any error is going to be thrown onto the background thread, not onto the test thread.  What I've done is throw ConcurrentModificationException on the background thread and print a warning to stderr in case the thread swallows the exception.  The test should fail with an expectation failure, but if it doesn't (e.g. if the test only contains 'allowing' clauses) at least the error log will contain obvious warnings.

> Fail fast when run concurrently
> -------------------------------
>
>                 Key: JMOCK-214
>                 URL: http://jira.codehaus.org/browse/JMOCK-214
>             Project: jMock
>          Issue Type: Improvement
>          Components: Library
>         Environment: any
>            Reporter: Douglas Squirrel
>
> Steve F suggested I file this enhancement when we saw this behaviour at youDevise.
> When you build a test that executes in multiple threads, and it calls methods on a mocked object, you can get odd behaviour. For instance, our exactly(N).of expectation failed no matter how we set N or how many threads actually called the method (including N).
> This is by design, but it would help newcomers to JMock who don't know this if they got a clear failure instead of odd behaviour (as you do with ConcurrentModificationException for non-threadsafe collections). For instance, JMock could record the thread id on construction of the Mockery and then check the thread ID is the same on future invocations. (Not sure what performance effect this would have though.)
> Happy to try writing a unit test though I'm not sure if you want to start running multiple threads in your test suite.

--
This message is automatically generated by JIRA.
-
If you think it was sent incorrectly contact one of the administrators: http://jira.codehaus.org/secure/Administrators.jspa
-
For more information on JIRA, see: http://www.atlassian.com/software/jira

       

---------------------------------------------------------------------
To unsubscribe from this list, please visit:

    http://xircles.codehaus.org/manage_email


 « Return to Thread: [jira] Created: (JMOCK-214) Fail fast when run concurrently