[asterisk-dev] [Code Review] TestSuite pre- and post-test condition to check for locks
mjordan
reviewboard at asterisk.org
Tue Sep 13 11:25:46 CDT 2011
-----------------------------------------------------------
This is an automatically generated e-mail. To reply, visit:
https://reviewboard.asterisk.org/r/1435/
-----------------------------------------------------------
Review request for Asterisk Developers and Paul Belanger.
Summary
-------
This adds a new test condition to check for held locks in Asterisk before and after a test run. The check parses out the results of the cli command "core show locks" and determines if any of the locks are currently in a "Waiting" state. If any thread is found to be waiting on a lock held by another thread, the condition check fails.
While this may seem somewhat aggressive in flagging any blocked thread as a test failure, the "core show locks" command is only executed before and after test execution. With Asterisk trunk as a test, the only lock that occurred in such a situation in testing was the logger RDLOCK &(&logchannels)->lock.
Diffs
-----
/asterisk/team/mjordan/test_conditions/trunk/tests/apps/voicemail/authenticate_nominal/test-config.yaml 2198
/asterisk/team/mjordan/test_conditions/trunk/tests/apps/voicemail/check_voicemail_new_user/test-config.yaml 2198
/asterisk/team/mjordan/test_conditions/trunk/tests/apps/voicemail/check_voicemail_nominal/test-config.yaml 2198
/asterisk/team/mjordan/test_conditions/trunk/tests/apps/voicemail/func_vmcount/test-config.yaml 2198
/asterisk/team/mjordan/test_conditions/trunk/tests/apps/voicemail/leave_voicemail_nominal/test-config.yaml 2198
/asterisk/team/mjordan/test_conditions/trunk/lib/python/asterisk/LockTestCondition.py PRE-CREATION
Diff: https://reviewboard.asterisk.org/r/1435/diff
Testing
-------
Unit tests are included to validate the parsing of the CLI command. This includes whether or not backtraces are present, whether a thread has or waiting for multiple locks, etc.
The test suite was executed multiple times with the condition enabled. Locks were detected and parsed successfully, and the test pass / fail results were manipulated as per expected.
Thanks,
mjordan
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.digium.com/pipermail/asterisk-dev/attachments/20110913/8050efa8/attachment.htm>
More information about the asterisk-dev
mailing list