[asterisk-dev] [Code Review] 2714: res_parking: Unit Tests

jrose reviewboard at asterisk.org
Thu Aug 1 11:08:30 CDT 2013



> On July 31, 2013, 7:47 p.m., Mark Michelson wrote:
> > /trunk/res/parking/parking_tests.c, lines 238-242
> > <https://reviewboard.asterisk.org/r/2714/diff/3/?file=43256#file43256line238>
> >
> >     Why are these nanosleep calls here? Did you run across issues that caused the nanosleep calls to be required?
> >     
> >     Adding calls like this is one of the most typical causes of bouncing tests in the testsuite. It will work most of the time (and probably 100% of the time on your local machine), but every now and then, the failure that you experienced that caused you to add the nanosleep calls will happen on the Bamboo build agents.
> >     
> >     If there was some sort of issue that caused you to add the nanosleep calls, I'd highly recommend finding an alternative method instead.
> 
> jrose wrote:
>     This was also used in the CDR tests when doing short duration bridges like this. I'm not certain whether it's necessary at the moment.

It turns out this particularly doctored sleep calls should work with the Bamboo build agents (and we have no good alternative to this right now anyway). I did uncover some sloppy exit conditions on failures while working on this though and I've cleaned them up appropriately.


> On July 31, 2013, 7:47 p.m., Mark Michelson wrote:
> > /trunk/res/parking/parking_tests.c, lines 248-250
> > <https://reviewboard.asterisk.org/r/2714/diff/3/?file=43256#file43256line248>
> >
> >     It would be a good idea to perform the same test you did in the create_lot test and ensure that the lot you created was disposed of.
> >     
> >     It may be worthwhile to expand the dispose_test_lot() function to have a second parameter that states whether we expect the lot to be removed after the call to parking_lot_remove_if_unused(). This way, the dispose_test_lot() can report if our expectations were met.

Oh, that gave me an idea for a future unit test - making sure parking lots with users in them can't collapse while it still has users.


- jrose


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


On July 30, 2013, 10:35 p.m., jrose wrote:
> 
> -----------------------------------------------------------
> This is an automatically generated e-mail. To reply, visit:
> https://reviewboard.asterisk.org/r/2714/
> -----------------------------------------------------------
> 
> (Updated July 30, 2013, 10:35 p.m.)
> 
> 
> Review request for Asterisk Developers, kmoore, Matt Jordan, and rmudgett.
> 
> 
> Bugs: ASTERISK-22138
>     https://issues.asterisk.org/jira/browse/ASTERISK-22138
> 
> 
> Repository: Asterisk
> 
> 
> Description
> -------
> 
> Adds the following unit tests to res_parking
> 
> create_lot: Creates a lot, adds it to the parking lot list, makes sure it can find it in the parking lot list, and then removes it and makes sure removal was successful.
> park_call: Creates/adds a parking lot, then parks test channel Alice into the parking lot. After a short sleep, Alice is then forcibly removed from the bridge and hung up.
> retrieve_call: Creates/adds a parking lot and parks Alice. After a short sleep, Alice is retrieved from the parking lot with normal park call retrieval functions, then hung up.
> park_extensions: Creates a parking lot which will register extensions. The Park and Parkedcall extensions are checked for their presence and then the parking lot is removed and destroyed. At this point the extensions are checked again to make sure there are no leftovers.
> 
> These tests live within the res_parking module because they test basic functionality of res_parking internal functions which aren't available to external modules.
> 
> 
> Diffs
> -----
> 
>   /trunk/res/parking/parking_bridge.c 395747 
>   /trunk/res/parking/parking_bridge_features.c 395747 
>   /trunk/res/parking/parking_tests.c PRE-CREATION 
>   /trunk/res/parking/res_parking.h 395747 
>   /trunk/res/res_parking.c 395747 
> 
> Diff: https://reviewboard.asterisk.org/r/2714/diff/
> 
> 
> Testing
> -------
> 
> Created the tests and ran them.
> Made sure res_parking compiles and functions normally both with and without TEST_FRAMEWORK enabled.
> Varied the expectations to deliberately differ from the real expected results to see how the tests would handle failure.
> 
> 
> Thanks,
> 
> jrose
> 
>

-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.digium.com/pipermail/asterisk-dev/attachments/20130801/caf1c6fa/attachment-0001.htm>


More information about the asterisk-dev mailing list