#!/usr/bin/env python3 # Copyright (c) 2023, the Dart project authors. Please see the AUTHORS file # for details. All rights reserved. Use of this source code is governed by a # BSD-style license that can be found in the LICENSE file. """Analyzer specific presubmit script. See http://dev.chromium.org/developers/how-tos/depottools/presubmit-scripts for more details about the presubmit API built into gcl. """ import os.path import re USE_PYTHON3 = True PRESUBMIT_VERSION = '2.0.0' def CheckNodeTextExpectationsCollectorUpdatingIsDisabled(input_api, output_api): local_root = input_api.change.RepositoryRoot() node_text_expectations_file = os.path.join(local_root, 'pkg', 'analyzer', 'test', 'src', 'dart', 'resolution', 'node_text_expectations.dart') for git_file in input_api.AffectedTestableFiles(): filename = git_file.AbsoluteLocalPath() if (filename == node_text_expectations_file): isEnabledLine = re.compile('static const updatingIsEnabled = (.*);') for line in git_file.NewContents(): m = isEnabledLine.search(line) if (m is not None): value = m.group(1) if (value == 'false'): return [] else: return [ output_api.PresubmitError( 'NodeTextExpectationsCollector.updatingIsEnabled ' 'must be `false`') ] return [ output_api.PresubmitError( 'Could not validate ' 'NodeTextExpectationsCollector.updatingIsEnabled') ] return []