xref: /aosp_15_r20/external/cronet/build/PRESUBMIT_test.py (revision 6777b5387eb2ff775bb5750e3f5d96f37fb7352b)
1*6777b538SAndroid Build Coastguard Worker#!/usr/bin/env python3
2*6777b538SAndroid Build Coastguard Worker# Copyright 2022 The Chromium Authors
3*6777b538SAndroid Build Coastguard Worker# Use of this source code is governed by a BSD-style license that can be
4*6777b538SAndroid Build Coastguard Worker# found in the LICENSE file.
5*6777b538SAndroid Build Coastguard Worker
6*6777b538SAndroid Build Coastguard Workerimport os
7*6777b538SAndroid Build Coastguard Workerimport sys
8*6777b538SAndroid Build Coastguard Workerimport unittest
9*6777b538SAndroid Build Coastguard Worker
10*6777b538SAndroid Build Coastguard Workerimport PRESUBMIT
11*6777b538SAndroid Build Coastguard Worker
12*6777b538SAndroid Build Coastguard Workersys.path.append(os.path.join(os.path.dirname(__file__), '..'))
13*6777b538SAndroid Build Coastguard Worker
14*6777b538SAndroid Build Coastguard Workerfrom PRESUBMIT_test_mocks import MockAffectedFile
15*6777b538SAndroid Build Coastguard Workerfrom PRESUBMIT_test_mocks import MockInputApi, MockOutputApi
16*6777b538SAndroid Build Coastguard Worker
17*6777b538SAndroid Build Coastguard Worker
18*6777b538SAndroid Build Coastguard Worker
19*6777b538SAndroid Build Coastguard Workerdef _fails_deps_check(line, filename='BUILD.gn'):
20*6777b538SAndroid Build Coastguard Worker  mock_input_api = MockInputApi()
21*6777b538SAndroid Build Coastguard Worker  mock_input_api.files = [MockAffectedFile(filename, [line])]
22*6777b538SAndroid Build Coastguard Worker  errors = PRESUBMIT.CheckNoBadDeps(mock_input_api, MockOutputApi())
23*6777b538SAndroid Build Coastguard Worker  return bool(errors)
24*6777b538SAndroid Build Coastguard Worker
25*6777b538SAndroid Build Coastguard Worker
26*6777b538SAndroid Build Coastguard Workerclass CheckNoBadDepsTest(unittest.TestCase):
27*6777b538SAndroid Build Coastguard Worker  def testComments(self):
28*6777b538SAndroid Build Coastguard Worker    self.assertFalse(_fails_deps_check('no # import("//third_party/foo")'))
29*6777b538SAndroid Build Coastguard Worker
30*6777b538SAndroid Build Coastguard Worker  def testFiles(self):
31*6777b538SAndroid Build Coastguard Worker    self.assertFalse(
32*6777b538SAndroid Build Coastguard Worker        _fails_deps_check('import("//third_party/foo")', filename='foo.txt'))
33*6777b538SAndroid Build Coastguard Worker    self.assertTrue(
34*6777b538SAndroid Build Coastguard Worker        _fails_deps_check('import("//third_party/foo")', filename='foo.gni'))
35*6777b538SAndroid Build Coastguard Worker
36*6777b538SAndroid Build Coastguard Worker  def testPaths(self):
37*6777b538SAndroid Build Coastguard Worker    self.assertFalse(_fails_deps_check('import("//build/things.gni")'))
38*6777b538SAndroid Build Coastguard Worker    self.assertTrue(_fails_deps_check('import("//chrome/things.gni")'))
39*6777b538SAndroid Build Coastguard Worker
40*6777b538SAndroid Build Coastguard Worker
41*6777b538SAndroid Build Coastguard Workerif __name__ == '__main__':
42*6777b538SAndroid Build Coastguard Worker  unittest.main()
43