1*6777b538SAndroid Build Coastguard Worker# Copyright 2017 The Chromium Authors 2*6777b538SAndroid Build Coastguard Worker# Use of this source code is governed by a BSD-style license that can be 3*6777b538SAndroid Build Coastguard Worker# found in the LICENSE file. 4*6777b538SAndroid Build Coastguard Worker 5*6777b538SAndroid Build Coastguard Worker"""Chromium presubmit script to check that BadMessage enums in histograms.xml 6*6777b538SAndroid Build Coastguard Workermatch the corresponding bad_message.h file. 7*6777b538SAndroid Build Coastguard Worker""" 8*6777b538SAndroid Build Coastguard Worker 9*6777b538SAndroid Build Coastguard Workerdef _RunHistogramChecks(input_api, output_api, histogram_name): 10*6777b538SAndroid Build Coastguard Worker try: 11*6777b538SAndroid Build Coastguard Worker # Setup sys.path so that we can call histograms code. 12*6777b538SAndroid Build Coastguard Worker import sys 13*6777b538SAndroid Build Coastguard Worker original_sys_path = sys.path 14*6777b538SAndroid Build Coastguard Worker sys.path = sys.path + [input_api.os_path.join( 15*6777b538SAndroid Build Coastguard Worker input_api.change.RepositoryRoot(), 16*6777b538SAndroid Build Coastguard Worker 'tools', 'metrics', 'histograms')] 17*6777b538SAndroid Build Coastguard Worker 18*6777b538SAndroid Build Coastguard Worker import presubmit_bad_message_reasons 19*6777b538SAndroid Build Coastguard Worker return presubmit_bad_message_reasons.PrecheckBadMessage(input_api, 20*6777b538SAndroid Build Coastguard Worker output_api, histogram_name) 21*6777b538SAndroid Build Coastguard Worker except: 22*6777b538SAndroid Build Coastguard Worker return [output_api.PresubmitError('Could not verify histogram!')] 23*6777b538SAndroid Build Coastguard Worker finally: 24*6777b538SAndroid Build Coastguard Worker sys.path = original_sys_path 25*6777b538SAndroid Build Coastguard Worker 26*6777b538SAndroid Build Coastguard Workerdef CheckChangeOnUpload(input_api, output_api): 27*6777b538SAndroid Build Coastguard Worker return _RunHistogramChecks(input_api, output_api, "BadMessageReasonNaCl") 28