Loading tools/warn/android_project_list.py +147 −148 Original line number Original line Diff line number Diff line # # python3 # Copyright (C) 2019 The Android Open Source Project # Copyright (C) 2019 The Android Open Source Project # # # Licensed under the Apache License, Version 2.0 (the "License"); # Licensed under the Apache License, Version 2.0 (the "License"); Loading @@ -16,161 +16,160 @@ """Define a project list to sort warnings by project directory path.""" """Define a project list to sort warnings by project directory path.""" def project_name_and_pattern(name, pattern): def create_pattern(name, pattern=None): if pattern is not None: return [name, '(^|.*/)' + pattern + '/.*: warning:'] return [name, '(^|.*/)' + pattern + '/.*: warning:'] return [name, '(^|.*/)' + name + '/.*: warning:'] def simple_project_pattern(pattern): return project_name_and_pattern(pattern, pattern) # A list of [project_name, file_path_pattern]. # A list of [project_name, file_path_pattern]. # project_name should not contain comma, to be used in CSV output. # project_name should not contain comma, to be used in CSV output. project_list = [ project_list = [ simple_project_pattern('art'), create_pattern('art'), simple_project_pattern('bionic'), create_pattern('bionic'), simple_project_pattern('bootable'), create_pattern('bootable'), simple_project_pattern('build'), create_pattern('build'), simple_project_pattern('cts'), create_pattern('cts'), simple_project_pattern('dalvik'), create_pattern('dalvik'), simple_project_pattern('developers'), create_pattern('developers'), simple_project_pattern('development'), create_pattern('development'), simple_project_pattern('device'), create_pattern('device'), simple_project_pattern('doc'), create_pattern('doc'), # match external/google* before external/ # match external/google* before external/ project_name_and_pattern('external/google', 'external/google.*'), create_pattern('external/google', 'external/google.*'), project_name_and_pattern('external/non-google', 'external'), create_pattern('external/non-google', 'external'), simple_project_pattern('frameworks/av/camera'), create_pattern('frameworks/av/camera'), simple_project_pattern('frameworks/av/cmds'), create_pattern('frameworks/av/cmds'), simple_project_pattern('frameworks/av/drm'), create_pattern('frameworks/av/drm'), simple_project_pattern('frameworks/av/include'), create_pattern('frameworks/av/include'), simple_project_pattern('frameworks/av/media/img_utils'), create_pattern('frameworks/av/media/img_utils'), simple_project_pattern('frameworks/av/media/libcpustats'), create_pattern('frameworks/av/media/libcpustats'), simple_project_pattern('frameworks/av/media/libeffects'), create_pattern('frameworks/av/media/libeffects'), simple_project_pattern('frameworks/av/media/libmediaplayerservice'), create_pattern('frameworks/av/media/libmediaplayerservice'), simple_project_pattern('frameworks/av/media/libmedia'), create_pattern('frameworks/av/media/libmedia'), simple_project_pattern('frameworks/av/media/libstagefright'), create_pattern('frameworks/av/media/libstagefright'), simple_project_pattern('frameworks/av/media/mtp'), create_pattern('frameworks/av/media/mtp'), simple_project_pattern('frameworks/av/media/ndk'), create_pattern('frameworks/av/media/ndk'), simple_project_pattern('frameworks/av/media/utils'), create_pattern('frameworks/av/media/utils'), project_name_and_pattern('frameworks/av/media/Other', create_pattern('frameworks/av/media/Other', 'frameworks/av/media'), 'frameworks/av/media'), create_pattern('frameworks/av/radio'), simple_project_pattern('frameworks/av/radio'), create_pattern('frameworks/av/services'), simple_project_pattern('frameworks/av/services'), create_pattern('frameworks/av/soundtrigger'), simple_project_pattern('frameworks/av/soundtrigger'), create_pattern('frameworks/av/Other', 'frameworks/av'), project_name_and_pattern('frameworks/av/Other', 'frameworks/av'), create_pattern('frameworks/base/cmds'), simple_project_pattern('frameworks/base/cmds'), create_pattern('frameworks/base/core'), simple_project_pattern('frameworks/base/core'), create_pattern('frameworks/base/drm'), simple_project_pattern('frameworks/base/drm'), create_pattern('frameworks/base/media'), simple_project_pattern('frameworks/base/media'), create_pattern('frameworks/base/libs'), simple_project_pattern('frameworks/base/libs'), create_pattern('frameworks/base/native'), simple_project_pattern('frameworks/base/native'), create_pattern('frameworks/base/packages'), simple_project_pattern('frameworks/base/packages'), create_pattern('frameworks/base/rs'), simple_project_pattern('frameworks/base/rs'), create_pattern('frameworks/base/services'), simple_project_pattern('frameworks/base/services'), create_pattern('frameworks/base/tests'), simple_project_pattern('frameworks/base/tests'), create_pattern('frameworks/base/tools'), simple_project_pattern('frameworks/base/tools'), create_pattern('frameworks/base/Other', 'frameworks/base'), project_name_and_pattern('frameworks/base/Other', 'frameworks/base'), create_pattern('frameworks/compile/libbcc'), simple_project_pattern('frameworks/compile/libbcc'), create_pattern('frameworks/compile/mclinker'), simple_project_pattern('frameworks/compile/mclinker'), create_pattern('frameworks/compile/slang'), simple_project_pattern('frameworks/compile/slang'), create_pattern('frameworks/compile/Other', 'frameworks/compile'), project_name_and_pattern('frameworks/compile/Other', 'frameworks/compile'), create_pattern('frameworks/minikin'), simple_project_pattern('frameworks/minikin'), create_pattern('frameworks/ml'), simple_project_pattern('frameworks/ml'), create_pattern('frameworks/native/cmds'), simple_project_pattern('frameworks/native/cmds'), create_pattern('frameworks/native/include'), simple_project_pattern('frameworks/native/include'), create_pattern('frameworks/native/libs'), simple_project_pattern('frameworks/native/libs'), create_pattern('frameworks/native/opengl'), simple_project_pattern('frameworks/native/opengl'), create_pattern('frameworks/native/services'), simple_project_pattern('frameworks/native/services'), create_pattern('frameworks/native/vulkan'), simple_project_pattern('frameworks/native/vulkan'), create_pattern('frameworks/native/Other', 'frameworks/native'), project_name_and_pattern('frameworks/native/Other', 'frameworks/native'), create_pattern('frameworks/opt'), simple_project_pattern('frameworks/opt'), create_pattern('frameworks/rs'), simple_project_pattern('frameworks/rs'), create_pattern('frameworks/webview'), simple_project_pattern('frameworks/webview'), create_pattern('frameworks/wilhelm'), simple_project_pattern('frameworks/wilhelm'), create_pattern('frameworks/Other', 'frameworks'), project_name_and_pattern('frameworks/Other', 'frameworks'), create_pattern('hardware/akm'), simple_project_pattern('hardware/akm'), create_pattern('hardware/broadcom'), simple_project_pattern('hardware/broadcom'), create_pattern('hardware/google'), simple_project_pattern('hardware/google'), create_pattern('hardware/intel'), simple_project_pattern('hardware/intel'), create_pattern('hardware/interfaces'), simple_project_pattern('hardware/interfaces'), create_pattern('hardware/libhardware'), simple_project_pattern('hardware/libhardware'), create_pattern('hardware/libhardware_legacy'), simple_project_pattern('hardware/libhardware_legacy'), create_pattern('hardware/qcom'), simple_project_pattern('hardware/qcom'), create_pattern('hardware/ril'), simple_project_pattern('hardware/ril'), create_pattern('hardware/Other', 'hardware'), project_name_and_pattern('hardware/Other', 'hardware'), create_pattern('kernel'), simple_project_pattern('kernel'), create_pattern('libcore'), simple_project_pattern('libcore'), create_pattern('libnativehelper'), simple_project_pattern('libnativehelper'), create_pattern('ndk'), simple_project_pattern('ndk'), # match vendor/unbungled_google/packages before other packages # match vendor/unbungled_google/packages before other packages simple_project_pattern('unbundled_google'), create_pattern('unbundled_google'), simple_project_pattern('packages'), create_pattern('packages'), simple_project_pattern('pdk'), create_pattern('pdk'), simple_project_pattern('prebuilts'), create_pattern('prebuilts'), simple_project_pattern('system/bt'), create_pattern('system/bt'), simple_project_pattern('system/connectivity'), create_pattern('system/connectivity'), simple_project_pattern('system/core/adb'), create_pattern('system/core/adb'), simple_project_pattern('system/core/base'), create_pattern('system/core/base'), simple_project_pattern('system/core/debuggerd'), create_pattern('system/core/debuggerd'), simple_project_pattern('system/core/fastboot'), create_pattern('system/core/fastboot'), simple_project_pattern('system/core/fingerprintd'), create_pattern('system/core/fingerprintd'), simple_project_pattern('system/core/fs_mgr'), create_pattern('system/core/fs_mgr'), simple_project_pattern('system/core/gatekeeperd'), create_pattern('system/core/gatekeeperd'), simple_project_pattern('system/core/healthd'), create_pattern('system/core/healthd'), simple_project_pattern('system/core/include'), create_pattern('system/core/include'), simple_project_pattern('system/core/init'), create_pattern('system/core/init'), simple_project_pattern('system/core/libbacktrace'), create_pattern('system/core/libbacktrace'), simple_project_pattern('system/core/liblog'), create_pattern('system/core/liblog'), simple_project_pattern('system/core/libpixelflinger'), create_pattern('system/core/libpixelflinger'), simple_project_pattern('system/core/libprocessgroup'), create_pattern('system/core/libprocessgroup'), simple_project_pattern('system/core/libsysutils'), create_pattern('system/core/libsysutils'), simple_project_pattern('system/core/logcat'), create_pattern('system/core/logcat'), simple_project_pattern('system/core/logd'), create_pattern('system/core/logd'), simple_project_pattern('system/core/run-as'), create_pattern('system/core/run-as'), simple_project_pattern('system/core/sdcard'), create_pattern('system/core/sdcard'), simple_project_pattern('system/core/toolbox'), create_pattern('system/core/toolbox'), project_name_and_pattern('system/core/Other', 'system/core'), create_pattern('system/core/Other', 'system/core'), simple_project_pattern('system/extras/ANRdaemon'), create_pattern('system/extras/ANRdaemon'), simple_project_pattern('system/extras/cpustats'), create_pattern('system/extras/cpustats'), simple_project_pattern('system/extras/crypto-perf'), create_pattern('system/extras/crypto-perf'), simple_project_pattern('system/extras/ext4_utils'), create_pattern('system/extras/ext4_utils'), simple_project_pattern('system/extras/f2fs_utils'), create_pattern('system/extras/f2fs_utils'), simple_project_pattern('system/extras/iotop'), create_pattern('system/extras/iotop'), simple_project_pattern('system/extras/libfec'), create_pattern('system/extras/libfec'), simple_project_pattern('system/extras/memory_replay'), create_pattern('system/extras/memory_replay'), simple_project_pattern('system/extras/mmap-perf'), create_pattern('system/extras/mmap-perf'), simple_project_pattern('system/extras/multinetwork'), create_pattern('system/extras/multinetwork'), simple_project_pattern('system/extras/procrank'), create_pattern('system/extras/perfprofd'), simple_project_pattern('system/extras/runconuid'), create_pattern('system/extras/procrank'), simple_project_pattern('system/extras/showmap'), create_pattern('system/extras/runconuid'), simple_project_pattern('system/extras/simpleperf'), create_pattern('system/extras/showmap'), simple_project_pattern('system/extras/su'), create_pattern('system/extras/simpleperf'), simple_project_pattern('system/extras/tests'), create_pattern('system/extras/su'), simple_project_pattern('system/extras/verity'), create_pattern('system/extras/tests'), project_name_and_pattern('system/extras/Other', 'system/extras'), create_pattern('system/extras/verity'), simple_project_pattern('system/gatekeeper'), create_pattern('system/extras/Other', 'system/extras'), simple_project_pattern('system/keymaster'), create_pattern('system/gatekeeper'), simple_project_pattern('system/libhidl'), create_pattern('system/keymaster'), simple_project_pattern('system/libhwbinder'), create_pattern('system/libhidl'), simple_project_pattern('system/media'), create_pattern('system/libhwbinder'), simple_project_pattern('system/netd'), create_pattern('system/media'), simple_project_pattern('system/nvram'), create_pattern('system/netd'), simple_project_pattern('system/security'), create_pattern('system/nvram'), simple_project_pattern('system/sepolicy'), create_pattern('system/security'), simple_project_pattern('system/tools'), create_pattern('system/sepolicy'), simple_project_pattern('system/update_engine'), create_pattern('system/tools'), simple_project_pattern('system/vold'), create_pattern('system/update_engine'), project_name_and_pattern('system/Other', 'system'), create_pattern('system/vold'), simple_project_pattern('toolchain'), create_pattern('system/Other', 'system'), simple_project_pattern('test'), create_pattern('toolchain'), simple_project_pattern('tools'), create_pattern('test'), create_pattern('tools'), # match vendor/google* before vendor/ # match vendor/google* before vendor/ project_name_and_pattern('vendor/google', 'vendor/google.*'), create_pattern('vendor/google', 'vendor/google.*'), project_name_and_pattern('vendor/non-google', 'vendor'), create_pattern('vendor/non-google', 'vendor'), # keep out/obj and other patterns at the end. # keep out/obj and other patterns at the end. ['out/obj', [ '.*/(gen|obj[^/]*)/(include|EXECUTABLES|SHARED_LIBRARIES|' 'out/obj', '.*/(gen|obj[^/]*)/(include|EXECUTABLES|SHARED_LIBRARIES|' 'STATIC_LIBRARIES|NATIVE_TESTS)/.*: warning:'], 'STATIC_LIBRARIES|NATIVE_TESTS)/.*: warning:' ], ['other', '.*'] # all other unrecognized patterns ['other', '.*'] # all other unrecognized patterns ] ] tools/warn/cpp_warn_patterns.py +19 −6 Original line number Original line Diff line number Diff line # # python3 # Copyright (C) 2019 The Android Open Source Project # Copyright (C) 2019 The Android Open Source Project # # # Licensed under the Apache License, Version 2.0 (the "License"); # Licensed under the Apache License, Version 2.0 (the "License"); Loading @@ -15,9 +15,14 @@ """Warning patterns for C/C++ compiler, but not clang-tidy.""" """Warning patterns for C/C++ compiler, but not clang-tidy.""" from severity import Severity import re # pylint:disable=relative-beyond-top-level # pylint:disable=g-importing-member from .severity import Severity patterns = [ warn_patterns = [ # pylint:disable=line-too-long,g-inconsistent-quotes # pylint:disable=line-too-long,g-inconsistent-quotes {'category': 'C/C++', 'severity': Severity.MEDIUM, 'option': '-Wimplicit-function-declaration', {'category': 'C/C++', 'severity': Severity.MEDIUM, 'option': '-Wimplicit-function-declaration', 'description': 'Implicit function declaration', 'description': 'Implicit function declaration', Loading Loading @@ -125,9 +130,6 @@ patterns = [ {'category': 'libpng', 'severity': Severity.MEDIUM, {'category': 'libpng', 'severity': Severity.MEDIUM, 'description': 'libpng: zero area', 'description': 'libpng: zero area', 'patterns': [r".*libpng warning: Ignoring attempt to set cHRM RGB triangle with zero area"]}, 'patterns': [r".*libpng warning: Ignoring attempt to set cHRM RGB triangle with zero area"]}, {'category': 'aapt', 'severity': Severity.MEDIUM, 'description': 'aapt: no comment for public symbol', 'patterns': [r".*: warning: No comment for public symbol .+"]}, {'category': 'C/C++', 'severity': Severity.MEDIUM, 'option': '-Wmissing-braces', {'category': 'C/C++', 'severity': Severity.MEDIUM, 'option': '-Wmissing-braces', 'description': 'Missing braces around initializer', 'description': 'Missing braces around initializer', 'patterns': [r".*: warning: missing braces around initializer.*"]}, 'patterns': [r".*: warning: missing braces around initializer.*"]}, Loading Loading @@ -578,3 +580,14 @@ patterns = [ 'patterns': [r".*: warning: '.+' defined as a .+ here but previously declared as a .+mismatched-tags", 'patterns': [r".*: warning: '.+' defined as a .+ here but previously declared as a .+mismatched-tags", r".*: warning: .+ was previously declared as a .+mismatched-tags"]}, r".*: warning: .+ was previously declared as a .+mismatched-tags"]}, ] ] def compile_patterns(patterns): """Precompiling every pattern speeds up parsing by about 30x.""" for i in patterns: i['compiled_patterns'] = [] for pat in i['patterns']: i['compiled_patterns'].append(re.compile(pat)) compile_patterns(warn_patterns) tools/warn/java_warn_patterns.py +8 −3 Original line number Original line Diff line number Diff line # # python3 # Copyright (C) 2019 The Android Open Source Project # Copyright (C) 2019 The Android Open Source Project # # # Licensed under the Apache License, Version 2.0 (the "License"); # Licensed under the Apache License, Version 2.0 (the "License"); Loading @@ -15,7 +15,10 @@ """Warning patterns for Java compiler tools.""" """Warning patterns for Java compiler tools.""" from severity import Severity # pylint:disable=relative-beyond-top-level from .cpp_warn_patterns import compile_patterns # pylint:disable=g-importing-member from .severity import Severity def java_warn(severity, description, pattern_list): def java_warn(severity, description, pattern_list): Loading @@ -39,7 +42,7 @@ def java_low(description, pattern_list): return java_warn(Severity.LOW, description, pattern_list) return java_warn(Severity.LOW, description, pattern_list) patterns = [ warn_patterns = [ # pylint:disable=line-too-long,g-inconsistent-quotes # pylint:disable=line-too-long,g-inconsistent-quotes # Warnings from Javac # Warnings from Javac java_medium('Use of deprecated', java_medium('Use of deprecated', Loading Loading @@ -742,3 +745,5 @@ patterns = [ java_medium('Supported version from annotation processor', java_medium('Supported version from annotation processor', [r".*: warning: Supported source version .+ from annotation processor"]), [r".*: warning: Supported source version .+ from annotation processor"]), ] ] compile_patterns(warn_patterns) tools/warn/make_warn_patterns.py +9 −3 Original line number Original line Diff line number Diff line # # python3 # Copyright (C) 2019 The Android Open Source Project # Copyright (C) 2019 The Android Open Source Project # # # Licensed under the Apache License, Version 2.0 (the "License"); # Licensed under the Apache License, Version 2.0 (the "License"); Loading @@ -15,9 +15,12 @@ """Warning patterns for build make tools.""" """Warning patterns for build make tools.""" from severity import Severity # pylint:disable=relative-beyond-top-level from .cpp_warn_patterns import compile_patterns # pylint:disable=g-importing-member from .severity import Severity patterns = [ warn_patterns = [ # pylint:disable=line-too-long,g-inconsistent-quotes # pylint:disable=line-too-long,g-inconsistent-quotes {'category': 'make', 'severity': Severity.MEDIUM, {'category': 'make', 'severity': Severity.MEDIUM, 'description': 'make: overriding commands/ignoring old commands', 'description': 'make: overriding commands/ignoring old commands', Loading Loading @@ -51,3 +54,6 @@ patterns = [ 'description': 'make: please convert to soong', 'description': 'make: please convert to soong', 'patterns': [r".*: warning: .* has been deprecated. Please convert to Soong."]}, 'patterns': [r".*: warning: .* has been deprecated. Please convert to Soong."]}, ] ] compile_patterns(warn_patterns) tools/warn/other_warn_patterns.py +13 −5 Original line number Original line Diff line number Diff line # # python3 # Copyright (C) 2019 The Android Open Source Project # Copyright (C) 2019 The Android Open Source Project # # # Licensed under the Apache License, Version 2.0 (the "License"); # Licensed under the Apache License, Version 2.0 (the "License"); Loading @@ -15,7 +15,10 @@ """Warning patterns from other tools.""" """Warning patterns from other tools.""" from severity import Severity # pylint:disable=relative-beyond-top-level from .cpp_warn_patterns import compile_patterns # pylint:disable=g-importing-member from .severity import Severity def warn(name, severity, description, pattern_list): def warn(name, severity, description, pattern_list): Loading Loading @@ -43,9 +46,11 @@ def kotlin(description, pattern_list): return warn('Kotlin', Severity.MEDIUM, description, pattern_list) return warn('Kotlin', Severity.MEDIUM, description, pattern_list) patterns = [ warn_patterns = [ # pylint:disable=line-too-long,g-inconsistent-quotes # pylint:disable=line-too-long,g-inconsistent-quotes # aapt warnings # aapt warnings aapt('No comment for public symbol', [r".*: warning: No comment for public symbol .+"]), aapt('No default translation', aapt('No default translation', [r".*: warning: string '.+' has no default translation in .*"]), [r".*: warning: string '.+' has no default translation in .*"]), aapt('Missing default or required localization', aapt('Missing default or required localization', Loading Loading @@ -94,7 +99,7 @@ patterns = [ 'patterns': [r".*: warning: .* generate guard with empty availability: obsoleted ="]}, 'patterns': [r".*: warning: .* generate guard with empty availability: obsoleted ="]}, # Protoc warnings # Protoc warnings {'category': 'Protoc', 'severity': Severity.MEDIUM, {'category': 'Protoc', 'severity': Severity.MEDIUM, 'description': 'Proto: Enum name colision after strip', 'description': 'Proto: Enum name collision after strip', 'patterns': [r".*: warning: Enum .* has the same name .* ignore case and strip"]}, 'patterns': [r".*: warning: Enum .* has the same name .* ignore case and strip"]}, {'category': 'Protoc', 'severity': Severity.MEDIUM, {'category': 'Protoc', 'severity': Severity.MEDIUM, 'description': 'Proto: Import not used', 'description': 'Proto: Import not used', Loading Loading @@ -128,7 +133,10 @@ patterns = [ 'description': 'skip, In file included from ...', 'description': 'skip, In file included from ...', 'patterns': [r".*: warning: In file included from .+,"]}, 'patterns': [r".*: warning: In file included from .+,"]}, # catch-all for warnings this script doesn't know about yet # catch-all for warnings this script doesn't know about yet {'category': 'C/C++', 'severity': Severity.UNKNOWN, {'category': 'C/C++', 'severity': Severity.UNMATCHED, 'description': 'Unclassified/unrecognized warnings', 'description': 'Unclassified/unrecognized warnings', 'patterns': [r".*: warning: .+"]}, 'patterns': [r".*: warning: .+"]}, ] ] compile_patterns(warn_patterns) Loading
tools/warn/android_project_list.py +147 −148 Original line number Original line Diff line number Diff line # # python3 # Copyright (C) 2019 The Android Open Source Project # Copyright (C) 2019 The Android Open Source Project # # # Licensed under the Apache License, Version 2.0 (the "License"); # Licensed under the Apache License, Version 2.0 (the "License"); Loading @@ -16,161 +16,160 @@ """Define a project list to sort warnings by project directory path.""" """Define a project list to sort warnings by project directory path.""" def project_name_and_pattern(name, pattern): def create_pattern(name, pattern=None): if pattern is not None: return [name, '(^|.*/)' + pattern + '/.*: warning:'] return [name, '(^|.*/)' + pattern + '/.*: warning:'] return [name, '(^|.*/)' + name + '/.*: warning:'] def simple_project_pattern(pattern): return project_name_and_pattern(pattern, pattern) # A list of [project_name, file_path_pattern]. # A list of [project_name, file_path_pattern]. # project_name should not contain comma, to be used in CSV output. # project_name should not contain comma, to be used in CSV output. project_list = [ project_list = [ simple_project_pattern('art'), create_pattern('art'), simple_project_pattern('bionic'), create_pattern('bionic'), simple_project_pattern('bootable'), create_pattern('bootable'), simple_project_pattern('build'), create_pattern('build'), simple_project_pattern('cts'), create_pattern('cts'), simple_project_pattern('dalvik'), create_pattern('dalvik'), simple_project_pattern('developers'), create_pattern('developers'), simple_project_pattern('development'), create_pattern('development'), simple_project_pattern('device'), create_pattern('device'), simple_project_pattern('doc'), create_pattern('doc'), # match external/google* before external/ # match external/google* before external/ project_name_and_pattern('external/google', 'external/google.*'), create_pattern('external/google', 'external/google.*'), project_name_and_pattern('external/non-google', 'external'), create_pattern('external/non-google', 'external'), simple_project_pattern('frameworks/av/camera'), create_pattern('frameworks/av/camera'), simple_project_pattern('frameworks/av/cmds'), create_pattern('frameworks/av/cmds'), simple_project_pattern('frameworks/av/drm'), create_pattern('frameworks/av/drm'), simple_project_pattern('frameworks/av/include'), create_pattern('frameworks/av/include'), simple_project_pattern('frameworks/av/media/img_utils'), create_pattern('frameworks/av/media/img_utils'), simple_project_pattern('frameworks/av/media/libcpustats'), create_pattern('frameworks/av/media/libcpustats'), simple_project_pattern('frameworks/av/media/libeffects'), create_pattern('frameworks/av/media/libeffects'), simple_project_pattern('frameworks/av/media/libmediaplayerservice'), create_pattern('frameworks/av/media/libmediaplayerservice'), simple_project_pattern('frameworks/av/media/libmedia'), create_pattern('frameworks/av/media/libmedia'), simple_project_pattern('frameworks/av/media/libstagefright'), create_pattern('frameworks/av/media/libstagefright'), simple_project_pattern('frameworks/av/media/mtp'), create_pattern('frameworks/av/media/mtp'), simple_project_pattern('frameworks/av/media/ndk'), create_pattern('frameworks/av/media/ndk'), simple_project_pattern('frameworks/av/media/utils'), create_pattern('frameworks/av/media/utils'), project_name_and_pattern('frameworks/av/media/Other', create_pattern('frameworks/av/media/Other', 'frameworks/av/media'), 'frameworks/av/media'), create_pattern('frameworks/av/radio'), simple_project_pattern('frameworks/av/radio'), create_pattern('frameworks/av/services'), simple_project_pattern('frameworks/av/services'), create_pattern('frameworks/av/soundtrigger'), simple_project_pattern('frameworks/av/soundtrigger'), create_pattern('frameworks/av/Other', 'frameworks/av'), project_name_and_pattern('frameworks/av/Other', 'frameworks/av'), create_pattern('frameworks/base/cmds'), simple_project_pattern('frameworks/base/cmds'), create_pattern('frameworks/base/core'), simple_project_pattern('frameworks/base/core'), create_pattern('frameworks/base/drm'), simple_project_pattern('frameworks/base/drm'), create_pattern('frameworks/base/media'), simple_project_pattern('frameworks/base/media'), create_pattern('frameworks/base/libs'), simple_project_pattern('frameworks/base/libs'), create_pattern('frameworks/base/native'), simple_project_pattern('frameworks/base/native'), create_pattern('frameworks/base/packages'), simple_project_pattern('frameworks/base/packages'), create_pattern('frameworks/base/rs'), simple_project_pattern('frameworks/base/rs'), create_pattern('frameworks/base/services'), simple_project_pattern('frameworks/base/services'), create_pattern('frameworks/base/tests'), simple_project_pattern('frameworks/base/tests'), create_pattern('frameworks/base/tools'), simple_project_pattern('frameworks/base/tools'), create_pattern('frameworks/base/Other', 'frameworks/base'), project_name_and_pattern('frameworks/base/Other', 'frameworks/base'), create_pattern('frameworks/compile/libbcc'), simple_project_pattern('frameworks/compile/libbcc'), create_pattern('frameworks/compile/mclinker'), simple_project_pattern('frameworks/compile/mclinker'), create_pattern('frameworks/compile/slang'), simple_project_pattern('frameworks/compile/slang'), create_pattern('frameworks/compile/Other', 'frameworks/compile'), project_name_and_pattern('frameworks/compile/Other', 'frameworks/compile'), create_pattern('frameworks/minikin'), simple_project_pattern('frameworks/minikin'), create_pattern('frameworks/ml'), simple_project_pattern('frameworks/ml'), create_pattern('frameworks/native/cmds'), simple_project_pattern('frameworks/native/cmds'), create_pattern('frameworks/native/include'), simple_project_pattern('frameworks/native/include'), create_pattern('frameworks/native/libs'), simple_project_pattern('frameworks/native/libs'), create_pattern('frameworks/native/opengl'), simple_project_pattern('frameworks/native/opengl'), create_pattern('frameworks/native/services'), simple_project_pattern('frameworks/native/services'), create_pattern('frameworks/native/vulkan'), simple_project_pattern('frameworks/native/vulkan'), create_pattern('frameworks/native/Other', 'frameworks/native'), project_name_and_pattern('frameworks/native/Other', 'frameworks/native'), create_pattern('frameworks/opt'), simple_project_pattern('frameworks/opt'), create_pattern('frameworks/rs'), simple_project_pattern('frameworks/rs'), create_pattern('frameworks/webview'), simple_project_pattern('frameworks/webview'), create_pattern('frameworks/wilhelm'), simple_project_pattern('frameworks/wilhelm'), create_pattern('frameworks/Other', 'frameworks'), project_name_and_pattern('frameworks/Other', 'frameworks'), create_pattern('hardware/akm'), simple_project_pattern('hardware/akm'), create_pattern('hardware/broadcom'), simple_project_pattern('hardware/broadcom'), create_pattern('hardware/google'), simple_project_pattern('hardware/google'), create_pattern('hardware/intel'), simple_project_pattern('hardware/intel'), create_pattern('hardware/interfaces'), simple_project_pattern('hardware/interfaces'), create_pattern('hardware/libhardware'), simple_project_pattern('hardware/libhardware'), create_pattern('hardware/libhardware_legacy'), simple_project_pattern('hardware/libhardware_legacy'), create_pattern('hardware/qcom'), simple_project_pattern('hardware/qcom'), create_pattern('hardware/ril'), simple_project_pattern('hardware/ril'), create_pattern('hardware/Other', 'hardware'), project_name_and_pattern('hardware/Other', 'hardware'), create_pattern('kernel'), simple_project_pattern('kernel'), create_pattern('libcore'), simple_project_pattern('libcore'), create_pattern('libnativehelper'), simple_project_pattern('libnativehelper'), create_pattern('ndk'), simple_project_pattern('ndk'), # match vendor/unbungled_google/packages before other packages # match vendor/unbungled_google/packages before other packages simple_project_pattern('unbundled_google'), create_pattern('unbundled_google'), simple_project_pattern('packages'), create_pattern('packages'), simple_project_pattern('pdk'), create_pattern('pdk'), simple_project_pattern('prebuilts'), create_pattern('prebuilts'), simple_project_pattern('system/bt'), create_pattern('system/bt'), simple_project_pattern('system/connectivity'), create_pattern('system/connectivity'), simple_project_pattern('system/core/adb'), create_pattern('system/core/adb'), simple_project_pattern('system/core/base'), create_pattern('system/core/base'), simple_project_pattern('system/core/debuggerd'), create_pattern('system/core/debuggerd'), simple_project_pattern('system/core/fastboot'), create_pattern('system/core/fastboot'), simple_project_pattern('system/core/fingerprintd'), create_pattern('system/core/fingerprintd'), simple_project_pattern('system/core/fs_mgr'), create_pattern('system/core/fs_mgr'), simple_project_pattern('system/core/gatekeeperd'), create_pattern('system/core/gatekeeperd'), simple_project_pattern('system/core/healthd'), create_pattern('system/core/healthd'), simple_project_pattern('system/core/include'), create_pattern('system/core/include'), simple_project_pattern('system/core/init'), create_pattern('system/core/init'), simple_project_pattern('system/core/libbacktrace'), create_pattern('system/core/libbacktrace'), simple_project_pattern('system/core/liblog'), create_pattern('system/core/liblog'), simple_project_pattern('system/core/libpixelflinger'), create_pattern('system/core/libpixelflinger'), simple_project_pattern('system/core/libprocessgroup'), create_pattern('system/core/libprocessgroup'), simple_project_pattern('system/core/libsysutils'), create_pattern('system/core/libsysutils'), simple_project_pattern('system/core/logcat'), create_pattern('system/core/logcat'), simple_project_pattern('system/core/logd'), create_pattern('system/core/logd'), simple_project_pattern('system/core/run-as'), create_pattern('system/core/run-as'), simple_project_pattern('system/core/sdcard'), create_pattern('system/core/sdcard'), simple_project_pattern('system/core/toolbox'), create_pattern('system/core/toolbox'), project_name_and_pattern('system/core/Other', 'system/core'), create_pattern('system/core/Other', 'system/core'), simple_project_pattern('system/extras/ANRdaemon'), create_pattern('system/extras/ANRdaemon'), simple_project_pattern('system/extras/cpustats'), create_pattern('system/extras/cpustats'), simple_project_pattern('system/extras/crypto-perf'), create_pattern('system/extras/crypto-perf'), simple_project_pattern('system/extras/ext4_utils'), create_pattern('system/extras/ext4_utils'), simple_project_pattern('system/extras/f2fs_utils'), create_pattern('system/extras/f2fs_utils'), simple_project_pattern('system/extras/iotop'), create_pattern('system/extras/iotop'), simple_project_pattern('system/extras/libfec'), create_pattern('system/extras/libfec'), simple_project_pattern('system/extras/memory_replay'), create_pattern('system/extras/memory_replay'), simple_project_pattern('system/extras/mmap-perf'), create_pattern('system/extras/mmap-perf'), simple_project_pattern('system/extras/multinetwork'), create_pattern('system/extras/multinetwork'), simple_project_pattern('system/extras/procrank'), create_pattern('system/extras/perfprofd'), simple_project_pattern('system/extras/runconuid'), create_pattern('system/extras/procrank'), simple_project_pattern('system/extras/showmap'), create_pattern('system/extras/runconuid'), simple_project_pattern('system/extras/simpleperf'), create_pattern('system/extras/showmap'), simple_project_pattern('system/extras/su'), create_pattern('system/extras/simpleperf'), simple_project_pattern('system/extras/tests'), create_pattern('system/extras/su'), simple_project_pattern('system/extras/verity'), create_pattern('system/extras/tests'), project_name_and_pattern('system/extras/Other', 'system/extras'), create_pattern('system/extras/verity'), simple_project_pattern('system/gatekeeper'), create_pattern('system/extras/Other', 'system/extras'), simple_project_pattern('system/keymaster'), create_pattern('system/gatekeeper'), simple_project_pattern('system/libhidl'), create_pattern('system/keymaster'), simple_project_pattern('system/libhwbinder'), create_pattern('system/libhidl'), simple_project_pattern('system/media'), create_pattern('system/libhwbinder'), simple_project_pattern('system/netd'), create_pattern('system/media'), simple_project_pattern('system/nvram'), create_pattern('system/netd'), simple_project_pattern('system/security'), create_pattern('system/nvram'), simple_project_pattern('system/sepolicy'), create_pattern('system/security'), simple_project_pattern('system/tools'), create_pattern('system/sepolicy'), simple_project_pattern('system/update_engine'), create_pattern('system/tools'), simple_project_pattern('system/vold'), create_pattern('system/update_engine'), project_name_and_pattern('system/Other', 'system'), create_pattern('system/vold'), simple_project_pattern('toolchain'), create_pattern('system/Other', 'system'), simple_project_pattern('test'), create_pattern('toolchain'), simple_project_pattern('tools'), create_pattern('test'), create_pattern('tools'), # match vendor/google* before vendor/ # match vendor/google* before vendor/ project_name_and_pattern('vendor/google', 'vendor/google.*'), create_pattern('vendor/google', 'vendor/google.*'), project_name_and_pattern('vendor/non-google', 'vendor'), create_pattern('vendor/non-google', 'vendor'), # keep out/obj and other patterns at the end. # keep out/obj and other patterns at the end. ['out/obj', [ '.*/(gen|obj[^/]*)/(include|EXECUTABLES|SHARED_LIBRARIES|' 'out/obj', '.*/(gen|obj[^/]*)/(include|EXECUTABLES|SHARED_LIBRARIES|' 'STATIC_LIBRARIES|NATIVE_TESTS)/.*: warning:'], 'STATIC_LIBRARIES|NATIVE_TESTS)/.*: warning:' ], ['other', '.*'] # all other unrecognized patterns ['other', '.*'] # all other unrecognized patterns ] ]
tools/warn/cpp_warn_patterns.py +19 −6 Original line number Original line Diff line number Diff line # # python3 # Copyright (C) 2019 The Android Open Source Project # Copyright (C) 2019 The Android Open Source Project # # # Licensed under the Apache License, Version 2.0 (the "License"); # Licensed under the Apache License, Version 2.0 (the "License"); Loading @@ -15,9 +15,14 @@ """Warning patterns for C/C++ compiler, but not clang-tidy.""" """Warning patterns for C/C++ compiler, but not clang-tidy.""" from severity import Severity import re # pylint:disable=relative-beyond-top-level # pylint:disable=g-importing-member from .severity import Severity patterns = [ warn_patterns = [ # pylint:disable=line-too-long,g-inconsistent-quotes # pylint:disable=line-too-long,g-inconsistent-quotes {'category': 'C/C++', 'severity': Severity.MEDIUM, 'option': '-Wimplicit-function-declaration', {'category': 'C/C++', 'severity': Severity.MEDIUM, 'option': '-Wimplicit-function-declaration', 'description': 'Implicit function declaration', 'description': 'Implicit function declaration', Loading Loading @@ -125,9 +130,6 @@ patterns = [ {'category': 'libpng', 'severity': Severity.MEDIUM, {'category': 'libpng', 'severity': Severity.MEDIUM, 'description': 'libpng: zero area', 'description': 'libpng: zero area', 'patterns': [r".*libpng warning: Ignoring attempt to set cHRM RGB triangle with zero area"]}, 'patterns': [r".*libpng warning: Ignoring attempt to set cHRM RGB triangle with zero area"]}, {'category': 'aapt', 'severity': Severity.MEDIUM, 'description': 'aapt: no comment for public symbol', 'patterns': [r".*: warning: No comment for public symbol .+"]}, {'category': 'C/C++', 'severity': Severity.MEDIUM, 'option': '-Wmissing-braces', {'category': 'C/C++', 'severity': Severity.MEDIUM, 'option': '-Wmissing-braces', 'description': 'Missing braces around initializer', 'description': 'Missing braces around initializer', 'patterns': [r".*: warning: missing braces around initializer.*"]}, 'patterns': [r".*: warning: missing braces around initializer.*"]}, Loading Loading @@ -578,3 +580,14 @@ patterns = [ 'patterns': [r".*: warning: '.+' defined as a .+ here but previously declared as a .+mismatched-tags", 'patterns': [r".*: warning: '.+' defined as a .+ here but previously declared as a .+mismatched-tags", r".*: warning: .+ was previously declared as a .+mismatched-tags"]}, r".*: warning: .+ was previously declared as a .+mismatched-tags"]}, ] ] def compile_patterns(patterns): """Precompiling every pattern speeds up parsing by about 30x.""" for i in patterns: i['compiled_patterns'] = [] for pat in i['patterns']: i['compiled_patterns'].append(re.compile(pat)) compile_patterns(warn_patterns)
tools/warn/java_warn_patterns.py +8 −3 Original line number Original line Diff line number Diff line # # python3 # Copyright (C) 2019 The Android Open Source Project # Copyright (C) 2019 The Android Open Source Project # # # Licensed under the Apache License, Version 2.0 (the "License"); # Licensed under the Apache License, Version 2.0 (the "License"); Loading @@ -15,7 +15,10 @@ """Warning patterns for Java compiler tools.""" """Warning patterns for Java compiler tools.""" from severity import Severity # pylint:disable=relative-beyond-top-level from .cpp_warn_patterns import compile_patterns # pylint:disable=g-importing-member from .severity import Severity def java_warn(severity, description, pattern_list): def java_warn(severity, description, pattern_list): Loading @@ -39,7 +42,7 @@ def java_low(description, pattern_list): return java_warn(Severity.LOW, description, pattern_list) return java_warn(Severity.LOW, description, pattern_list) patterns = [ warn_patterns = [ # pylint:disable=line-too-long,g-inconsistent-quotes # pylint:disable=line-too-long,g-inconsistent-quotes # Warnings from Javac # Warnings from Javac java_medium('Use of deprecated', java_medium('Use of deprecated', Loading Loading @@ -742,3 +745,5 @@ patterns = [ java_medium('Supported version from annotation processor', java_medium('Supported version from annotation processor', [r".*: warning: Supported source version .+ from annotation processor"]), [r".*: warning: Supported source version .+ from annotation processor"]), ] ] compile_patterns(warn_patterns)
tools/warn/make_warn_patterns.py +9 −3 Original line number Original line Diff line number Diff line # # python3 # Copyright (C) 2019 The Android Open Source Project # Copyright (C) 2019 The Android Open Source Project # # # Licensed under the Apache License, Version 2.0 (the "License"); # Licensed under the Apache License, Version 2.0 (the "License"); Loading @@ -15,9 +15,12 @@ """Warning patterns for build make tools.""" """Warning patterns for build make tools.""" from severity import Severity # pylint:disable=relative-beyond-top-level from .cpp_warn_patterns import compile_patterns # pylint:disable=g-importing-member from .severity import Severity patterns = [ warn_patterns = [ # pylint:disable=line-too-long,g-inconsistent-quotes # pylint:disable=line-too-long,g-inconsistent-quotes {'category': 'make', 'severity': Severity.MEDIUM, {'category': 'make', 'severity': Severity.MEDIUM, 'description': 'make: overriding commands/ignoring old commands', 'description': 'make: overriding commands/ignoring old commands', Loading Loading @@ -51,3 +54,6 @@ patterns = [ 'description': 'make: please convert to soong', 'description': 'make: please convert to soong', 'patterns': [r".*: warning: .* has been deprecated. Please convert to Soong."]}, 'patterns': [r".*: warning: .* has been deprecated. Please convert to Soong."]}, ] ] compile_patterns(warn_patterns)
tools/warn/other_warn_patterns.py +13 −5 Original line number Original line Diff line number Diff line # # python3 # Copyright (C) 2019 The Android Open Source Project # Copyright (C) 2019 The Android Open Source Project # # # Licensed under the Apache License, Version 2.0 (the "License"); # Licensed under the Apache License, Version 2.0 (the "License"); Loading @@ -15,7 +15,10 @@ """Warning patterns from other tools.""" """Warning patterns from other tools.""" from severity import Severity # pylint:disable=relative-beyond-top-level from .cpp_warn_patterns import compile_patterns # pylint:disable=g-importing-member from .severity import Severity def warn(name, severity, description, pattern_list): def warn(name, severity, description, pattern_list): Loading Loading @@ -43,9 +46,11 @@ def kotlin(description, pattern_list): return warn('Kotlin', Severity.MEDIUM, description, pattern_list) return warn('Kotlin', Severity.MEDIUM, description, pattern_list) patterns = [ warn_patterns = [ # pylint:disable=line-too-long,g-inconsistent-quotes # pylint:disable=line-too-long,g-inconsistent-quotes # aapt warnings # aapt warnings aapt('No comment for public symbol', [r".*: warning: No comment for public symbol .+"]), aapt('No default translation', aapt('No default translation', [r".*: warning: string '.+' has no default translation in .*"]), [r".*: warning: string '.+' has no default translation in .*"]), aapt('Missing default or required localization', aapt('Missing default or required localization', Loading Loading @@ -94,7 +99,7 @@ patterns = [ 'patterns': [r".*: warning: .* generate guard with empty availability: obsoleted ="]}, 'patterns': [r".*: warning: .* generate guard with empty availability: obsoleted ="]}, # Protoc warnings # Protoc warnings {'category': 'Protoc', 'severity': Severity.MEDIUM, {'category': 'Protoc', 'severity': Severity.MEDIUM, 'description': 'Proto: Enum name colision after strip', 'description': 'Proto: Enum name collision after strip', 'patterns': [r".*: warning: Enum .* has the same name .* ignore case and strip"]}, 'patterns': [r".*: warning: Enum .* has the same name .* ignore case and strip"]}, {'category': 'Protoc', 'severity': Severity.MEDIUM, {'category': 'Protoc', 'severity': Severity.MEDIUM, 'description': 'Proto: Import not used', 'description': 'Proto: Import not used', Loading Loading @@ -128,7 +133,10 @@ patterns = [ 'description': 'skip, In file included from ...', 'description': 'skip, In file included from ...', 'patterns': [r".*: warning: In file included from .+,"]}, 'patterns': [r".*: warning: In file included from .+,"]}, # catch-all for warnings this script doesn't know about yet # catch-all for warnings this script doesn't know about yet {'category': 'C/C++', 'severity': Severity.UNKNOWN, {'category': 'C/C++', 'severity': Severity.UNMATCHED, 'description': 'Unclassified/unrecognized warnings', 'description': 'Unclassified/unrecognized warnings', 'patterns': [r".*: warning: .+"]}, 'patterns': [r".*: warning: .+"]}, ] ] compile_patterns(warn_patterns)