codeconsole opened a new pull request, #3100: URL: https://github.com/apache/groovy/pull/3100
Some concurrency tests slept for a fixed time to let another thread get somewhere first, and failed on a loaded machine. They now wait for that state instead. For example, `BroadcastChannelAsPublisherTest.forAwaitOverPublisher` waits until the consumer has subscribed before it sends, and `AgentChangesTest.forAwaitOverChanges` waits until the consumer's `subscribe` call has returned. Likewise `BroadcastChannelTest`, `ActorTest`, `ChannelSelectTest` and, in `groovy-http-builder`, `MultiExchangeTickerEndToEndTest`. Three tests that need another thread to keep to a schedule no longer fail when it starts late: `ActorTest.testScheduleAtFixedRateFiresRepeatedly` waits for three ticks instead of counting them in 300 ms, the slow server of `AsyncAwaitSpecTest.testFastestServer` sleeps 5 seconds instead of 200 ms, and `ChannelSelectTest.testTimerCreatedOnceIsAFixedDeadlineAcrossSelects` starts its timer once the producer runs. Each change was checked by forcing the lost race with an injected delay. Test code only. The `groovy.concurrent` tests and `AsyncAwaitSpecTest` (296) and the `groovy-http-builder` tests (78) pass, as do the Checkstyle and CodeNarc gates. -- This is an automated message from the Apache Git Service. To respond to the message, please log on to GitHub and use the URL above to go to the specific comment. To unsubscribe, e-mail: [email protected] For queries about this service, please contact Infrastructure at: [email protected]
