[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