diff --git a/tools/lint/lib/checks/features.py b/tools/lint/lib/checks/features.py index a1d88e419f..623d8f0513 100644 --- a/tools/lint/lib/checks/features.py +++ b/tools/lint/lib/checks/features.py @@ -29,9 +29,9 @@ class CheckFeatures(Check): if len(features) == 0: return 'If present, the `features` tag must have at least one member' - for feature in features: - if feature not in self.valid_features: - return 'Unrecognized feature: "%s"' % feature + unrecognized = set(features) - set(self.valid_features) + if len(unrecognized) > 0: + return 'Unrecognized features: %s' % ', '.join(sorted(unrecognized)) if len(set(features)) != len(features): return 'The `features` tag may not include duplicate entries' diff --git a/tools/lint/lib/checks/includes.py b/tools/lint/lib/checks/includes.py index 7c92d814ef..ad66eec64e 100644 --- a/tools/lint/lib/checks/includes.py +++ b/tools/lint/lib/checks/includes.py @@ -60,6 +60,7 @@ class CheckIncludes(Check): without_frontmatter = self._remove_frontmatter(source) + unused = [] for harness_file in harness_files: if harness_file['allow_unused']: continue @@ -77,4 +78,7 @@ class CheckIncludes(Check): if self._has_reference(other_harness_file['source'], harness_file['defines']): break else: - return 'Unused include: "%s"' % harness_file['name'] + unused.append(harness_file['name']) + + if len(unused) > 0: + return 'Unused includes: %s' % ', '.join(sorted(unused))