Simon Glass | efeac06 | 2019-10-31 07:42:52 -0600 | [diff] [blame] | 1 | #!/usr/bin/env python3 |
Tom Rini | 10e4779 | 2018-05-06 17:58:06 -0400 | [diff] [blame] | 2 | # SPDX-License-Identifier: GPL-2.0+ |
Simon Glass | 2613288 | 2012-01-14 15:12:45 +0000 | [diff] [blame] | 3 | # |
| 4 | # Copyright (c) 2011 The Chromium OS Authors. |
| 5 | # |
Simon Glass | 2613288 | 2012-01-14 15:12:45 +0000 | [diff] [blame] | 6 | |
| 7 | """See README for more information""" |
| 8 | |
Simon Glass | 2613288 | 2012-01-14 15:12:45 +0000 | [diff] [blame] | 9 | import os |
Simon Glass | 2613288 | 2012-01-14 15:12:45 +0000 | [diff] [blame] | 10 | import sys |
Simon Glass | 2613288 | 2012-01-14 15:12:45 +0000 | [diff] [blame] | 11 | |
Simon Glass | d1b6ecf | 2023-11-04 10:25:22 -0600 | [diff] [blame] | 12 | # Allow 'from patman import xxx to work' |
| 13 | # pylint: disable=C0413 |
| 14 | our_path = os.path.dirname(os.path.realpath(__file__)) |
| 15 | sys.path.append(os.path.join(our_path, '..')) |
Simon Glass | bdaad40 | 2020-04-17 18:08:52 -0600 | [diff] [blame] | 16 | |
Simon Glass | 2613288 | 2012-01-14 15:12:45 +0000 | [diff] [blame] | 17 | # Our modules |
Simon Glass | 78ee8f8 | 2025-04-29 07:22:09 -0600 | [diff] [blame^] | 18 | from u_boot_pylib import tout |
Simon Glass | 22ce641 | 2023-11-04 10:25:20 -0600 | [diff] [blame] | 19 | from patman import cmdline |
Simon Glass | 24725af | 2020-07-05 21:41:49 -0600 | [diff] [blame] | 20 | from patman import control |
Simon Glass | 131444f | 2023-02-23 18:18:04 -0700 | [diff] [blame] | 21 | from u_boot_pylib import test_util |
Simon Glass | 2613288 | 2012-01-14 15:12:45 +0000 | [diff] [blame] | 22 | |
Simon Glass | 2613288 | 2012-01-14 15:12:45 +0000 | [diff] [blame] | 23 | |
Simon Glass | f42ad6a | 2023-11-04 10:25:21 -0600 | [diff] [blame] | 24 | def run_patman(): |
| 25 | """Run patamn |
Simon Glass | 2b68b36 | 2015-07-30 13:47:41 -0600 | [diff] [blame] | 26 | |
Simon Glass | f42ad6a | 2023-11-04 10:25:21 -0600 | [diff] [blame] | 27 | This is the main program. It collects arguments and runs either the tests or |
| 28 | the control module. |
| 29 | """ |
| 30 | args = cmdline.parse_args() |
Simon Glass | 22ce641 | 2023-11-04 10:25:20 -0600 | [diff] [blame] | 31 | |
Simon Glass | f42ad6a | 2023-11-04 10:25:21 -0600 | [diff] [blame] | 32 | if not args.debug: |
| 33 | sys.tracebacklimit = 0 |
Simon Glass | dbac716 | 2020-07-05 21:41:59 -0600 | [diff] [blame] | 34 | |
Simon Glass | 78ee8f8 | 2025-04-29 07:22:09 -0600 | [diff] [blame^] | 35 | tout.init(tout.INFO if args.verbose else tout.WARNING) |
| 36 | |
| 37 | # Run our reasonably good tests |
Simon Glass | f42ad6a | 2023-11-04 10:25:21 -0600 | [diff] [blame] | 38 | if args.cmd == 'test': |
Simon Glass | d1b6ecf | 2023-11-04 10:25:22 -0600 | [diff] [blame] | 39 | # pylint: disable=C0415 |
Simon Glass | f42ad6a | 2023-11-04 10:25:21 -0600 | [diff] [blame] | 40 | from patman import func_test |
| 41 | from patman import test_checkpatch |
Simon Glass | 2613288 | 2012-01-14 15:12:45 +0000 | [diff] [blame] | 42 | |
Simon Glass | f42ad6a | 2023-11-04 10:25:21 -0600 | [diff] [blame] | 43 | result = test_util.run_test_suites( |
Simon Glass | 17899e4 | 2025-04-29 07:22:06 -0600 | [diff] [blame] | 44 | 'patman', False, False, False, False, None, None, None, |
Simon Glass | f42ad6a | 2023-11-04 10:25:21 -0600 | [diff] [blame] | 45 | [test_checkpatch.TestPatch, func_test.TestFunctional, |
Simon Glass | ba1b3b9 | 2025-02-09 14:26:00 -0700 | [diff] [blame] | 46 | 'settings']) |
Simon Glass | 2613288 | 2012-01-14 15:12:45 +0000 | [diff] [blame] | 47 | |
Simon Glass | f42ad6a | 2023-11-04 10:25:21 -0600 | [diff] [blame] | 48 | sys.exit(0 if result.wasSuccessful() else 1) |
Tom Rini | 5a9ecb2 | 2020-07-24 08:42:06 -0400 | [diff] [blame] | 49 | |
Simon Glass | f42ad6a | 2023-11-04 10:25:21 -0600 | [diff] [blame] | 50 | # Process commits, produce patches files, check them, email them |
Simon Glass | 3c0196f | 2025-04-29 07:21:58 -0600 | [diff] [blame] | 51 | else: |
Simon Glass | 78ee8f8 | 2025-04-29 07:22:09 -0600 | [diff] [blame^] | 52 | exit_code = control.do_patman(args) |
| 53 | sys.exit(exit_code) |
Simon Glass | f42ad6a | 2023-11-04 10:25:21 -0600 | [diff] [blame] | 54 | |
Simon Glass | 3db916d | 2020-10-29 21:46:35 -0600 | [diff] [blame] | 55 | |
Simon Glass | f42ad6a | 2023-11-04 10:25:21 -0600 | [diff] [blame] | 56 | if __name__ == "__main__": |
| 57 | sys.exit(run_patman()) |