[
https://issues.apache.org/jira/browse/ZOOKEEPER-2062?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
]
Chris Nauroth updated ZOOKEEPER-2062:
-------------------------------------
Attachment: ZOOKEEPER-2062.001.patch
[~rakeshr], I'm attaching a patch that speeds up the 4 slowest tests in the
suite. Would you be interested in reviewing? Running the entire
{{RemoveWatchesTest}} suite from trunk on my machine takes ~5 minutes. With
this patch, that drops to ~2 minutes.
This required hooking into the internals of some of the production code. This
is the least intrusive way to do it that I could find, but let me know if you
have other ideas. I've defined a new {{WatchManagerListener}} interface that
receives direct notification when the {{WatchManager}} triggers a watch. For
the tests that need to check that they did not receive notification after
removing a watch, they can use the listener to check immediately instead of
relying on a long wait to be sure. This also makes the tests deterministic as
opposed to the waiting approach.
I wanted to make sure I didn't harm what the tests were trying to prove. To do
that, I temporarily introduced a bug in my local environment. I hacked
{{ZKDatabase#removeWatch}} so that it didn't actually remove the watch. When I
did that, the tests still failed and caught the bug (as they should).
Please let me know your thoughts on the patch. It would be nice to shave a few
minutes off of every pre-commit run. :-)
> RemoveWatchesTest takes forever to run
> --------------------------------------
>
> Key: ZOOKEEPER-2062
> URL: https://issues.apache.org/jira/browse/ZOOKEEPER-2062
> Project: ZooKeeper
> Issue Type: Bug
> Components: tests
> Reporter: Flavio Junqueira
> Attachments: ZOOKEEPER-2062.001.patch
>
>
> [junit] Running org.apache.zookeeper.RemoveWatchesTest
> [junit] Tests run: 46, Failures: 0, Errors: 0, Skipped: 0, Time elapsed:
> 306.188 sec
--
This message was sent by Atlassian JIRA
(v6.3.4#6332)