[asterisk-dev] [Code Review] 4555: clang compiler warning: fixes for tests to be compiled using clang

rmudgett reviewboard at asterisk.org
Tue Mar 31 18:21:03 CDT 2015


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



/branches/13/main/utils.c
<https://reviewboard.asterisk.org/r/4555/#comment25642>

    Revert this.  This change could affect the callers of the function since you are changing the API.  However, no callers currently care about the return value.
    
    You changed this because clang had a problem in test_semi1() in tests/test_strings.c.  There is a better way.



/branches/13/tests/test_acl.c
<https://reviewboard.asterisk.org/r/4555/#comment25635>

    prototype unnecessary



/branches/13/tests/test_acl.c
<https://reviewboard.asterisk.org/r/4555/#comment25636>

    Guidelines: curly on its own line for start of functions
    
    res must be changed to a pointer so the value set in res can be passed out.



/branches/13/tests/test_linkedlists.c
<https://reviewboard.asterisk.org/r/4555/#comment25637>

    Revert the changes in this file.  They are for the -Wparentheses-equality option.



/branches/13/tests/test_stringfields.c
<https://reviewboard.asterisk.org/r/4555/#comment25638>

    Use %d instead of %i.  %d is more portable since it has been around since K&R.



/branches/13/tests/test_strings.c
<https://reviewboard.asterisk.org/r/4555/#comment25641>

    Revert this.



/branches/13/tests/test_strings.c
<https://reviewboard.asterisk.org/r/4555/#comment25646>

    Is clang returning a NULL pointer when passed a zero length?  If so this could be a problem througout the codebase since the code assumes that the function can never fail.



/branches/13/tests/test_strings.c
<https://reviewboard.asterisk.org/r/4555/#comment25640>

    Did you mean ast_alloca() or ast_strdupa()?



/branches/13/tests/test_strings.c
<https://reviewboard.asterisk.org/r/4555/#comment25639>

    Guidelines: No C++ comments.
    Delete this comment line.



/branches/13/tests/test_strings.c
<https://reviewboard.asterisk.org/r/4555/#comment25643>

    } else if (test_len == 0 {
      test2 = "";
    }



/branches/13/tests/test_strings.c
<https://reviewboard.asterisk.org/r/4555/#comment25644>

    Revert now that the clang ast_alloca() problem is worked around.


- rmudgett


On March 29, 2015, 5:49 p.m., Diederik de Groot wrote:
> 
> -----------------------------------------------------------
> This is an automatically generated e-mail. To reply, visit:
> https://reviewboard.asterisk.org/r/4555/
> -----------------------------------------------------------
> 
> (Updated March 29, 2015, 5:49 p.m.)
> 
> 
> Review request for Asterisk Developers.
> 
> 
> Bugs: ASTERISK-24917
>     https://issues.asterisk.org/jira/browse/ASTERISK-24917
> 
> 
> Repository: Asterisk
> 
> 
> Description
> -------
> 
> clang's static analyzer will throw quite a number warnings / errors during compilation, some of which can be very helpfull in finding corner-case bugs. 
> 
> fixes for tests to be compiled using clang
> 
> 
> Diffs
> -----
> 
>   /branches/13/tests/test_strings.c 433444 
>   /branches/13/tests/test_stringfields.c 433444 
>   /branches/13/tests/test_sched.c 433444 
>   /branches/13/tests/test_linkedlists.c 433444 
>   /branches/13/tests/test_acl.c 433444 
>   /branches/13/main/utils.c 433444 
> 
> Diff: https://reviewboard.asterisk.org/r/4555/diff/
> 
> 
> Testing
> -------
> 
> executing the tests one-by-one works fine (completes to end) (skipping /main/stdtime) -> 
> test show results failed:
> 
> 
> =================== /main/message/ ====== 
> FAIL   test_message_queue_handler_nom /main/message/             31036ms
> [test_message.c:int handler_wait_for_message(struct ast_test *):244]: Test timed out while waiting for handler to get message
> 
> Not sure if this is actually a fail or just a timeout. WIP
> 
> 
> =================== /main/strings/ ====== 
> FAIL   escape_semicolons              /main/strings/             1ms     
> [Mar 29 20:13:43] ERROR[2521]: utils.c:493 char *ast_escape_semicolons(const char *, char *, int): FRACK!, Failed assertion string != NULL && outbuf != NULL (0)
> -> explainable by the change made to the source. ast_alloca(0) is not being executed -> test2 = NULL: need to resolv the open question how to handle ast_alloca(0) before making any further changes.
> 
> (With revision 5 of this code, this test now passes without a problem, had to fix both the test and the function being tested though)
> 
> 
> =================== /main/stdtime ====== 
> "test execute all" fails, caused by the /main/stdtime/ test. 
> START  /main/stdtime/ - timezone_watch 
> [test_time.c:enum ast_test_result_state test_timezone_watch(struct ast_test_info *, enum ast_test_command, struct ast_test *):84]: Executing deletion test...
> j62747*CLI> 
> CLI becomes unresponsive / no further command completion for example.
> Guess this will need a little further investigation. Maybe the source changes made to main/stdtime/ where not completely correct.
> 
> Seems to be caused by inotify_daemon, at least there is where the segfault happens. WIP
> 
> 
> File Attachments
> ----------------
> 
> tests results xml (except /main/stdtime)
>   https://reviewboard.asterisk.org/media/uploaded/files/2015/03/29/4a17471b-4952-43cd-b015-92d00da2338b__tests.xml
> 
> 
> Thanks,
> 
> Diederik de Groot
> 
>

-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.digium.com/pipermail/asterisk-dev/attachments/20150331/d0e47b06/attachment-0001.html>


More information about the asterisk-dev mailing list