[asterisk-dev] [Code Review] 3383: TestSuite: Fix bouncing show_subscriptions test

Kevin Harwell reviewboard at asterisk.org
Wed Apr 2 13:18:47 CDT 2014


-----------------------------------------------------------
This is an automatically generated e-mail. To reply, visit:
https://reviewboard.asterisk.org/r/3383/#review11475
-----------------------------------------------------------

Ship it!


Ship It!

- Kevin Harwell


On March 24, 2014, 12:44 p.m., opticron wrote:
> 
> -----------------------------------------------------------
> This is an automatically generated e-mail. To reply, visit:
> https://reviewboard.asterisk.org/r/3383/
> -----------------------------------------------------------
> 
> (Updated March 24, 2014, 12:44 p.m.)
> 
> 
> Review request for Asterisk Developers.
> 
> 
> Repository: testsuite
> 
> 
> Description
> -------
> 
> This fixes a race condition in the tests/channels/pjsip/ami/show_subscriptions test where the PJSIPShowSubscriptionsInbound AMI command would be issued before states had finished transitioning resulting in the response containing "NULL" instead of "ACTIVE". This also requires the following patch that adds a test event when Asterisk is compiled in development mode:
> 
> Index: res/res_pjsip_pubsub.c
> ===================================================================
> --- res/res_pjsip_pubsub.c      (revision 410980)
> +++ res/res_pjsip_pubsub.c      (working copy)
> @@ -42,6 +42,7 @@
>  #include "asterisk/res_pjsip.h"
>  #include "asterisk/callerid.h"
>  #include "asterisk/manager.h"
> +#include "asterisk/test.h"
>  #include "res_pjsip/include/res_pjsip_private.h"
> 
>  /*** DOCUMENTATION
> @@ -464,8 +465,18 @@
> 
>  int ast_sip_subscription_send_request(struct ast_sip_subscription *sub, pjsip_tx_data *tdata)
>  {
> -       return pjsip_evsub_send_request(ast_sip_subscription_get_evsub(sub),
> +       struct ast_sip_endpoint *endpoint = ast_sip_subscription_get_endpoint(sub);
> +       int res = pjsip_evsub_send_request(ast_sip_subscription_get_evsub(sub),
>                         tdata) == PJ_SUCCESS ? 0 : -1;
> +
> +       ast_test_suite_event_notify("SUBSCRIPTION_STATE_SET",
> +               "StateText: %s\r\n"
> +               "Endpoint: %s\r\n",
> +               pjsip_evsub_get_state_name(ast_sip_subscription_get_evsub(sub)),
> +               ast_sorcery_object_get_id(endpoint));
> +
> +       ao2_cleanup(endpoint);
> +       return res;
>  }
> 
>  static void subscription_datastore_destroy(void *obj)
> 
> 
> Diffs
> -----
> 
>   asterisk/trunk/tests/channels/pjsip/ami/show_subscriptions/AMISendTest.py 4885 
> 
> Diff: https://reviewboard.asterisk.org/r/3383/diff/
> 
> 
> Testing
> -------
> 
> Verified that the race was resolved by using state transition test events instead of the successful callback of the SIPp scenario.
> 
> 
> Thanks,
> 
> opticron
> 
>

-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.digium.com/pipermail/asterisk-dev/attachments/20140402/01409f9f/attachment.html>


More information about the asterisk-dev mailing list