----- Original Message ----- > From: "Bhanuprakash Bodireddy" <bhanuprakash.bodire...@intel.com> > To: dev@openvswitch.org > Cc: b...@ovn.org, lrich...@redhat.com, "Bhanuprakash Bodireddy" > <bhanuprakash.bodire...@intel.com> > Sent: Tuesday, July 5, 2016 12:34:54 PM > Subject: [PATCH v4] Makefile.am: Add clang static analysis support > > 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. > > Signed-off-by: Bhanuprakash Bodireddy <bhanuprakash.bodire...@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 myl...@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 > +4. scan-view --host=IPADDR host --port PORT > + $OVS_DIR>/clang-analyzer-results/yyyy-mm-dd-114251-1027-1 > --allow-all-hosts > +5. Visit http://ipaddr:PORT/ for analysis report. > + > Bug Reporting > ============= > > diff --git a/Makefile.am b/Makefile.am > index b2c1126..7fcd672 100644 > --- a/Makefile.am > +++ b/Makefile.am > @@ -401,6 +401,13 @@ ovsext_clean: datapath-windows/ovsext.sln > endif > .PHONY: ovsext > > +clang-analyze: clean > + @which clang scan-build >/dev/null 2>&1 || \ > + (echo "Unable to find clang/scan-build, Install > clang,clang-analyzer > packages"; exit 1) > + @$(MKDIR_P) "$(srcdir)/tests/clang-analyzer-results" > + @scan-build -o $(srcdir)/tests/clang-analyzer-results --use-cc=$(CC) > $(MAKE) > +.PHONY: clang-analyze > + > dist-hook: $(DIST_HOOKS) > all-local: $(ALL_LOCAL) > clean-local: $(CLEAN_LOCAL) > -- > 2.4.11 > >
Acked-By: Lance Richardson <lrich...@redhat.com> _______________________________________________ dev mailing list dev@openvswitch.org http://openvswitch.org/mailman/listinfo/dev