blob: eb49824ef2375c1c013a31ea607a8da4cb55b8a2 [file] [log] [blame]
#!/usr/bin/env python
#
# Copyright (c) 2012 The Chromium Authors. All rights reserved.
# Use of this source code is governed by a BSD-style license that can be
# found in the LICENSE file.
"""Runs findbugs, and returns an error code if there are new warnings.
This runs findbugs with an additional flag to exclude known bugs.
To update the list of known bugs, do this:
findbugs_diff.py --rebaseline
Note that this is separate from findbugs_exclude.xml. The "exclude" file has
false positives that we do not plan to fix. The "known bugs" file has real
bugs that we *do* plan to fix (but haven't done so yet).
Other options
--only-analyze used to only analyze the class you are interested.
--relase-build analyze the classes in out/Release directory.
--findbugs-args used to passin other findbugs's options.
Run
$CHROM_SRC/third_party/findbugs/bin/findbugs -textui for details.
"""
import optparse
import os
import sys
from pylib import findbugs
def main(argv):
if not findbugs.CheckEnvironment():
return 1
parser = findbugs.GetCommonParser()
options, _ = parser.parse_args()
chrome_src = os.getenv('CHROME_SRC')
if not options.base_dir:
options.base_dir = os.path.join(chrome_src, 'build', 'android',
'findbugs_filter')
if not options.only_analyze:
options.only_analyze = 'org.chromium.-'
return findbugs.Run(options)
if __name__ == '__main__':
sys.exit(main(sys.argv))