This sounds interesting!

But it's not analyzing patches that are not using MozReview. Will those
patches be analyzed after landing?

Nick

On Wed, Oct 4, 2017 at 6:17 PM, Jan Keromnes <j...@mozilla.com> wrote:

> TL;DR -- We wrote a static analysis bot for MozReview ("clangbot") and it's
> about to complain about any patches that would introduce new C/C++ code
> defects to Firefox.
>
> Please report any bugs with the bot here: https://bit.ly/2y9N9Vx
>
> In an effort to improve the quality of Firefox, we want to catch
> programming errors *before* they even make it into Nightly. To do this, we
> created a TaskCluster bot that runs clang static analysis on every patch
> submitted to MozReview. It then quickly reports any code defects directly
> on MozReview, thus preventing bad patches from landing until all their
> defects are fixed. Currently, its feedback is posted in about 10 minutes
> after a patch series is published on MozReview.
>
> Here is an example of an automated clangbot review:
> https://reviewboard.mozilla.org/r/171868/#review190602
>
> Our bot relies on three types of clang checkers:
>
> - Mozilla specific checkers
> <https://hg.mozilla.org/mozilla-central/file/tip/build/clang-plugin/>.
> They
> detect incorrect Gecko programming patterns which could lead to bugs or
> security issues.
>
> - Clang-tidy checkers
> <https://clang.llvm.org/extra/clang-tidy/checks/list.html>. They aim to
> suggest better programming practices and to improve memory efficiency and
> performance.
>
> - Clang-analyzer checkers
> <https://clang-analyzer.llvm.org/available_checks.html>. These checks are
> more advanced, for example some of them can detect dead code or memory
> leaks, but as a typical side effect they have false positives. Because of
> that, we have disabled them for now, but will enable some of them in the
> near future.
>
> The checkers that are currently enabled rarely generate false positives,
> and you can find the complete list of enabled checkers
> <https://hg.mozilla.org/mozilla-central/file/tip/
> tools/clang-tidy/config.yaml>
> in the tree. You can also run them on your own code with:
>
> > ./mach static-analysis check path/to/file.cpp
>
> This is only the first step. Next, we would like to catch more classes of
> programming errors.
>
> - If you know incorrect Gecko programming patterns which could be detected
> by static analysis, please send an email to release-m...@mozilla.com or
> report a bug in the Rewriting and Analysis
> <https://bugzilla.mozilla.org/enter_bug.cgi?product=Core&;
> component=Rewriting%20and%20Analysis>
> component.
>
> - In parallel, if you see any additional clang-tidy checkers
> <https://clang.llvm.org/extra/clang-tidy/checks/list.html> which could be
> valuable for our code base if enabled, please let us know so that we can
> evaluate them.
>
> - Finally, we are looking into posting reviews to Phabricator in the near
> future as well.
>
> Feedback, questions or suggestions welcome.
>
> Thanks!
>
> Andi, Bastien, Jan and Sylvestre
> _______________________________________________
> dev-platform mailing list
> dev-platform@lists.mozilla.org
> https://lists.mozilla.org/listinfo/dev-platform
>
_______________________________________________
dev-platform mailing list
dev-platform@lists.mozilla.org
https://lists.mozilla.org/listinfo/dev-platform

Reply via email to