OLD | NEW |
(Empty) | |
| 1 # Copyright 2017 The Chromium Authors. All rights reserved. |
| 2 # Use of this source code is governed by a BSD-style license that can be |
| 3 # found in the LICENSE file. |
| 4 |
| 5 """Check to see if the various BadMessage enums in histograms.xml need to be |
| 6 updated. This can be called from a chromium PRESUBMIT.py to ensure updates to |
| 7 bad_message.h also include the generated changes to histograms.xml |
| 8 """ |
| 9 |
| 10 import update_histogram_enum |
| 11 |
| 12 def PrecheckBadMessage(input_api, output_api, histogram_name): |
| 13 source_path = '' |
| 14 |
| 15 # This function is called once per bad_message.h-containing directory. Check |
| 16 # for the |bad_message.h| file, and if present, remember its path. |
| 17 for f in input_api.AffectedFiles(): |
| 18 if f.LocalPath().endswith('bad_message.h'): |
| 19 source_path = f.LocalPath() |
| 20 break |
| 21 |
| 22 # If the |bad_message.h| wasn't found in this change, then there is nothing to |
| 23 # do and histogram.xml does not need to be updated. |
| 24 if source_path == '': |
| 25 return [] |
| 26 |
| 27 START_MARKER='^enum (class )?BadMessageReason {' |
| 28 END_MARKER='^BAD_MESSAGE_MAX' |
| 29 if update_histogram_enum.HistogramNeedsUpdate( |
| 30 histogram_enum_name=histogram_name, |
| 31 source_enum_path=source_path, |
| 32 start_marker=START_MARKER, |
| 33 end_marker=END_MARKER): |
| 34 return [output_api.PresubmitPromptWarning( |
| 35 'bad_messages.h has been updated but histogram.xml does not ' |
| 36 'appear to be updated.\nPlease run:\n' |
| 37 ' python tools/metrics/histograms/update_bad_message_reasons.py\n')] |
| 38 return [] |
OLD | NEW |