[ovs-dev] [PATCH v4] Makefile.am: Add clang static analysis support

Ben Pfaff blp at ovn.org
Thu Jul 14 16:25:59 UTC 2016


Thanks for sending a new version.

On Tue, Jul 05, 2016 at 05:34:54PM +0100, Bhanuprakash Bodireddy wrote:
> Clang Static Analyzer is a source code analysis tool to find bugs. This
> patch adds make target to trigger static analysis using below commands.
> 
> ./boot.sh
> For Clang: ./configure CC=clang --with-dpdk
> For GCC: ./configure CC=gcc --with-dpdk CFLAGS="-std=gnu99"
> make clang-analyze
> scan-view --host=<ip address> --port <PORT>
>     $OVS_DIR>/clang-analyzer-results/yyyy-mm-dd-114251-1027-1>
>     --allow-all-hosts
> 
> Results can be viewed on browser: http://<ip address>:<PORT>/
>
> v3->v4:
> * Add "Static Code Analysis" to INSTALL.md
> * Remove redundant --use-analyzer option
> 
> v2->v3:
> * Refactor the code as suggested.
> * Add --use-cc to scan-build.
> 
> v1->v2:
> * Change the output directory to tests/clang-analyzer-results
> * Remove '-j' make option, This might potentially hang some system
>   while spawning infinite jobs.

Please don't include the internal patch change log as part of the commit
message.  Put it after ---, instead.

> Signed-off-by: Bhanuprakash Bodireddy <bhanuprakash.bodireddy at intel.com>
> ---
>  INSTALL.md  | 21 +++++++++++++++++++++
>  Makefile.am |  7 +++++++
>  2 files changed, 28 insertions(+)
> 
> diff --git a/INSTALL.md b/INSTALL.md
> index f4d232b..c2a2021 100644
> --- a/INSTALL.md
> +++ b/INSTALL.md
> @@ -746,6 +746,27 @@ Instructions to setup travis-ci for your GitHub repository:
>  4. Pushing a commit to the repository which breaks the build or the
>     testsuite will now trigger a email sent to mylist at mydomain.org
>  
> +Static Code Analysis
> +--------------------
> +
> +Static Analysis is a method of debugging Software by examining code rather
> +than actually executing it. This can be done through 'scan-build' commandline
> +utility which internally uses clang (or) gcc to compile the code and also
> +invokes a static analyzer to do the code analysis. At the end of the build, the
> +reports are aggregated in to a common folder and can later be analyzed using
> +'scan-view'.
> +
> +Open vSwitch includes a Makefile target to trigger static code Analysis and
> +the instructions are below.
> +
> +1. ./boot.sh
> +2. ./configure CC=clang (when using clang compiler)
> +   ./configure CC=gcc CFLAGS="-std=gnu99" (when using GCC)
> +3. make clang-analyze

OK, the above works for me now.  Thanks.

> +4. scan-view --host=IPADDR host --port PORT
> +    $OVS_DIR>/clang-analyzer-results/yyyy-mm-dd-114251-1027-1 --allow-all-hosts

The above doesn't seem right.  "host" is spurious and the specific
digits you include are different (I think that they are the time of
day).

The last line of output from "make clang-analyze" lists a command to
run:

    scan-build: Run 'scan-view /home/blp/nicira/ovs/tests/clang-analyzer-results/2016-07-14-091820-11158-1' to examine bug reports.

It's probably easiest to advise the user to just run that command.

> +5. Visit http://ipaddr:PORT/ for analysis report.

For me, at least, when I run the command above, the URL automatically
pops up in my web browser, so that I don't have to do anything extra.



More information about the dev mailing list