<div dir="ltr"><br><div class="gmail_extra"><br><br><div class="gmail_quote">On Mon, Jun 9, 2014 at 12:31 PM, George Joseph <span dir="ltr"><<a href="mailto:george.joseph@fairview5.com" target="_blank">george.joseph@fairview5.com</a>></span> wrote:<br>
<blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><div dir="ltr"><div class="gmail_extra"><div class="gmail_quote"><div class="">On Mon, Jun 9, 2014 at 11:22 AM, Corey Farrell <span dir="ltr"><<a href="mailto:git@cfware.com" target="_blank">git@cfware.com</a>></span> wrote:<br>

<blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><div dir="ltr"><div><div>One thing I dislike about AST_DEVMODE is that changing it requires 
rerunning ./configure.  I feel ./configure should be restricted as 
much as possible to checking dependencies.  Any build configuration that
 is not directly enabled/disabled by an external dependency should be in
 menuselect.<br><br></div>If we are going to make it so TEST_FRAMEWORK doesn't enable AO2_DEBUG, I think we should allow Bamboo to run without AO2_DEBUG once.  This way if any tests actually require it we can update dependencies.<br>

</div></div></blockquote><div><br></div></div><div>I ran the testsuite last night without AO2_DEBUG and didn't notice anything different but I'm going to run it again now.</div><div class=""><div><br></div><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">

<div dir="ltr"><div>

<br></div>I'm not sure how I feel about AO2_DEBUG being combined with REF_DEBUG.  AO2_DEBUG doesn't appear to add much overhead, but REF_DEBUG adds significant overhead through output to the refs log.  I'm not sure someone who specifically wants AO2_DEBUG would want REF_DEBUG.  Especially since REF_DEBUG can change timing and that could change results.<br>



<div class="gmail_extra"><br></div></div></blockquote></div><div>Agreed.  REF_DEBUG seems more aimed at debugging the use of astobj2 whereas AO2_DEBUG is more aimed at debugging astobj2 itself.  2 different purposes.</div>
</div></div></div></blockquote><div><br></div><div>Yes.   REF_DEBUG and AO2_DEBUG have different purposes so they should be separate.  AO2_DEBUG<br>can add its own potentially significant overhead checking ao2 containers for consistency.  The main reason<br>
it currently does not add too much overhead is that the hash container consistency checking is disabled if<br>there isn't a sort function.  It was disabled because of abuses of the hash function callback by chan_iax2.<br>
</div><div>There are some other users abusing it as well.  (Apparently unit tests and frame formats?)<br></div><div> </div><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">
<div dir="ltr"><div class="gmail_extra"><div class="gmail_quote"><div><div class="h5"><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">
<div dir="ltr"><div class="gmail_extra"><br><div class="gmail_quote">On Mon, Jun 9, 2014 at 12:46 PM, Matthew Jordan <span dir="ltr"><<a href="mailto:mjordan@digium.com" target="_blank">mjordan@digium.com</a>></span> wrote:<br>



<blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex"><div>On Sun, Jun 8, 2014 at 10:03 AM, George Joseph<br>
<<a href="mailto:george.joseph@fairview5.com" target="_blank">george.joseph@fairview5.com</a>> wrote:<br>

> Right now, the non-ref debugging code in astobj2 is triggered by a mix of<br>
> AST_DEVMODE and AO2_DEBUG and both get set if you want to run the test<br>
> framework.  I've noticed though that the inclusion of the debugging code can<br>
> actually hide problems as well as highlight them, especially related to<br>
> performance and locking.   Case in point:  Try running 'test execute<br>
> category /main/astobj2 name thrash' with REF_DEBUG turned on and off.  While<br>
> the test passes both ways, the timing is significantly different (and not<br>
> what you'd expect).  Luckily, you can turn REF_DEBUG on and off from<br>
> menuselect.<br>
><br>
> To provide a little more flexibility and visibility, I'd like to propose the<br>
> following...<br>
><br>
> 1.  Change astobj2 so the non-ref debugging code is dependent on AO2_DEBUG<br>
> solely instead of the mix of AST_DEVMODE and AO2_DEBUG.  (REF_DEBUG would<br>
> remain as is)<br>
<br>
</div>Having two different 'dev' or 'debug' compilation flags is confusing.<br>
I'd be happy with having them collapsed down to one.<br></blockquote></div></div></div></blockquote></div></div></div></div></div></blockquote><div><br></div><div>They should not be collapsed into one because they have different purposes.<br>
</div><div> </div><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><div dir="ltr"><div class="gmail_extra"><div class="gmail_quote"><div><div class="h5"><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">
<div dir="ltr"><div class="gmail_extra"><div class="gmail_quote"><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex">
<div><br>
> 2.  Remove the code that automatically sets AO2_DEBUG if TEST_FRAMEWORK is<br>
> defined.<br>
<br>
</div>Richard may want to chime in on this, since I'm pretty sure that was a<br>
change he initiated.<br>
<br>
Personally, I think it is okay if they are decoupled. We can always<br>
enable AO2_DEBUG from menuselect in Bamboo build plans, and I'm not<br>
aware of any Asterisk Test Suite functionality that explicitly relies<br>
on AO2_DEBUG being defined.<br></blockquote></div></div></div></blockquote></div></div></div></div></div></blockquote><div><br></div><div>I linked TEST_FRAMEWORK and AO2_DEBUG so the testsuite would run with the<br>container integrity checking enabled.  If it is changed to be settable in menuselect<br>
that is fine by me.<br></div><div> </div><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><div dir="ltr"><div class="gmail_extra"><div class="gmail_quote"><div><div class="h5">
<blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><div dir="ltr"><div class="gmail_extra"><div class="gmail_quote"><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex">

<div><br>
> 3.  Add AO2_DEBUG to the menuselect extended compiler flags right next to<br>
> REF_DEBUG.<br>
<br>
</div>I'm okay with this too... although is there a reason why REF_DEBUG and<br>
AO2_DEBUG shouldn't be combined? Do they absolutely have to be<br>
separate compilation flags?<br>
<div><div><br>
> This way you can run the test framework in either production or debugging<br>
> mode.  The code change to do this is trivial but I thought I'd run it by you<br>
> guys first.<br>
><br>
> Thoughts?<br></div></div></blockquote></div></div></div></blockquote></div></div></div></div></div></blockquote><div><br><br></div><div>Richard<br></div></div><br></div></div>