Roll src/third_party/WebKit d9c6159:8139f33 (svn 201974:201975)
[chromium-blink-merge.git] / docs / use_find_bugs_for_android.md
blob265a55849365637cbd7316900e4071b582381229
1 # Use FindBugs for Android
3 [FindBugs](http://findbugs.sourceforge.net) is an open source static analysis
4 tool from the University of Maryland that looks for potential bugs in Java class
5 files. We have some scripts to run it over the Java code at build time.
7 ## How To Run
9 For gyp builds, add `run_findbugs=1` to your `GYP_DEFINES`.
11 For gn builds, add `run_findbugs=true` to the args you pass to `gn gen`:
13     gn gen --args='target_os="android" run_findbugs=true'
15 Note that running findbugs will add time to your build. The amount of additional
16 time required depends on the number of targets on which findbugs runs, though it
17 will usually be between 1-10 minutes.
19 Some of the warnings are false positives. In general, they should be suppressed
20 using
21 [@SuppressFBWarnings](https://code.google.com/p/chromium/codesearch#chromium/src/base/android/java/src/org/chromium/base/annotations/SuppressFBWarnings.java).
22 In the rare event that a warning should be suppressed across the entire
23 code base, it should be added to the
24 [exclusion file](https://code.google.com/p/chromium/codesearch#chromium/src/build/android/findbugs_filter/findbugs_exclude.xml)
25 instead. If you modify this file:
27 *   Include a comment that says what you're suppressing and why.
28 *   The existing suppressions should give you an idea of the syntax. See also
29     the FindBugs documentation. Note that the documentation doesn't seem totally
30     accurate (there's probably some version skew between the online docs and the
31     version of FindBugs we're using) so you may have to experiment a little.
33 # Chromium's [FindBugs](http://findbugs.sourceforge.net) plugin
35 We have
36 [FindBugs plugin](https://code.google.com/p/chromium/codesearch#chromium/src/tools/android/findbugs_plugin/)
37 to enforce chromium specific Java rules. It currently detects:
39 *   Synchronized method
40 *   Synchronized this
42 # [FindBugs](http://findbugs.sourceforge.net) on the Bots
44 [FindBugs](http://findbugs.sourceforge.net) is configured to run on:
46 *   [android_clang_dbg_recipe](http://build.chromium.org/p/tryserver.chromium.linux/builders/android_clang_dbg_recipe)
47     on the commit queue
48 *   [Android Clang Builder (dbg)](http://build.chromium.org/p/chromium.linux/builders/Android%20Clang%20Builder%20\(dbg\))
49     on the main waterfall