> On April 24, 2014, 10:46 p.m., Mark Michelson wrote:
> > ./asterisk/trunk/lib/python/asterisk/memory_test_condition.py, lines 151-153
> > <https://reviewboard.asterisk.org/r/3476/diff/1/?file=57812#file57812line151>
> >
> >     This seems like it's not going to work properly. 
> > related_test_condition.memory_info and self.memory_info are not guaranteed 
> > to have related memory allocations at the same ordinal positions in their 
> > lists. Also, it's possible for a requested allocation not to exist in 
> > related_test_condition.memory_info but to be present in self.memory_info.
> >     
> >     So I have two suggestions here. Change the  loop to iterate over 
> > self.memory_info instead of related_test_condition.memory_info. Get the 
> > precondition's memory information by key.
> >     
> >     Something like the following:
> >     
> >     for post_cond in self.memory_info:
> >         pre_cond = None
> >         for item in related_test_condition.memory_info:
> >             if post_cond['name'] == item['name']:
> >                 pre_cond = item
> >                 break
> >     
> >     Now you have your correlated pre and post memory counts for any given 
> > allocation. There may be some spiffier way of doing the inner loop, but I 
> > don't know it.
> >     
> >     Note that you may not find a corresponding pre_cond for a given 
> > post_cond. In this case, you'll have to assume that 0 bytes of memory had 
> > previously been allocated.

FWIW, I did find a bit of a slicker way to do the inner loop, but I don't 
really know if it's more readable:

for post_cond in self.memory_info:
    pre_cond = next((item for item in related_test_condition.memory_info if 
item['name'] == post_cond['name']), {})

That will set pre_cond to be either the corresponding item with the same name 
or an empty dict if none can be found.


- Mark


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


On April 24, 2014, 7:02 p.m., Benjamin Keith Ford wrote:
> 
> -----------------------------------------------------------
> This is an automatically generated e-mail. To reply, visit:
> https://reviewboard.asterisk.org/r/3476/
> -----------------------------------------------------------
> 
> (Updated April 24, 2014, 7:02 p.m.)
> 
> 
> Review request for Asterisk Developers.
> 
> 
> Bugs: ASTERISK-18429
>     https://issues.asterisk.org/jira/browse/ASTERISK-18429
> 
> 
> Repository: testsuite
> 
> 
> Description
> -------
> 
> This testcondition can be enabled for any test using the keyword 'memory' 
> under testconditions. The purpose of this testcondition is to check the 
> memory allocated before and after the test, and make sure they are within a 
> certain range. If the test wants to look at something specific (such as 
> channel.c), then each allocation that you want to look at can also be 
> specified in under 'allocations'. If both the global memory and individual 
> allocations are to be checked by the test, that option can be enabled by 
> setting 'both' to value True.
> 
> 
> Diffs
> -----
> 
>   ./asterisk/trunk/test-config.yaml 4944 
>   ./asterisk/trunk/lib/python/asterisk/test_conditions.py 4944 
>   ./asterisk/trunk/lib/python/asterisk/test_case.py 4944 
>   ./asterisk/trunk/lib/python/asterisk/memory_test_condition.py PRE-CREATION 
> 
> Diff: https://reviewboard.asterisk.org/r/3476/diff/
> 
> 
> Testing
> -------
> 
> 
> Thanks,
> 
> Benjamin Keith Ford
> 
>

-- 
_____________________________________________________________________
-- Bandwidth and Colocation Provided by http://www.api-digital.com --

asterisk-dev mailing list
To UNSUBSCRIBE or update options visit:
   http://lists.digium.com/mailman/listinfo/asterisk-dev

Reply via email to