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 | 22ce641 | 2023-11-04 10:25:20 -0600 | [diff] [blame] | 18 | from patman import cmdline |
Simon Glass | 24725af | 2020-07-05 21:41:49 -0600 | [diff] [blame] | 19 | from patman import control |
Simon Glass | 131444f | 2023-02-23 18:18:04 -0700 | [diff] [blame] | 20 | from u_boot_pylib import test_util |
Simon Glass | 2613288 | 2012-01-14 15:12:45 +0000 | [diff] [blame] | 21 | |
Simon Glass | 2613288 | 2012-01-14 15:12:45 +0000 | [diff] [blame] | 22 | |
Simon Glass | f42ad6a | 2023-11-04 10:25:21 -0600 | [diff] [blame] | 23 | def run_patman(): |
| 24 | """Run patamn |
Simon Glass | 2b68b36 | 2015-07-30 13:47:41 -0600 | [diff] [blame] | 25 | |
Simon Glass | f42ad6a | 2023-11-04 10:25:21 -0600 | [diff] [blame] | 26 | This is the main program. It collects arguments and runs either the tests or |
| 27 | the control module. |
| 28 | """ |
| 29 | args = cmdline.parse_args() |
Simon Glass | 22ce641 | 2023-11-04 10:25:20 -0600 | [diff] [blame] | 30 | |
Simon Glass | f42ad6a | 2023-11-04 10:25:21 -0600 | [diff] [blame] | 31 | if not args.debug: |
| 32 | sys.tracebacklimit = 0 |
Simon Glass | dbac716 | 2020-07-05 21:41:59 -0600 | [diff] [blame] | 33 | |
Simon Glass | f42ad6a | 2023-11-04 10:25:21 -0600 | [diff] [blame] | 34 | # Run our meagre tests |
| 35 | if args.cmd == 'test': |
Simon Glass | d1b6ecf | 2023-11-04 10:25:22 -0600 | [diff] [blame] | 36 | # pylint: disable=C0415 |
Simon Glass | f42ad6a | 2023-11-04 10:25:21 -0600 | [diff] [blame] | 37 | from patman import func_test |
| 38 | from patman import test_checkpatch |
Simon Glass | 2613288 | 2012-01-14 15:12:45 +0000 | [diff] [blame] | 39 | |
Simon Glass | f42ad6a | 2023-11-04 10:25:21 -0600 | [diff] [blame] | 40 | result = test_util.run_test_suites( |
Simon Glass | 17899e4 | 2025-04-29 07:22:06 -0600 | [diff] [blame^] | 41 | 'patman', False, False, False, False, None, None, None, |
Simon Glass | f42ad6a | 2023-11-04 10:25:21 -0600 | [diff] [blame] | 42 | [test_checkpatch.TestPatch, func_test.TestFunctional, |
Simon Glass | ba1b3b9 | 2025-02-09 14:26:00 -0700 | [diff] [blame] | 43 | 'settings']) |
Simon Glass | 2613288 | 2012-01-14 15:12:45 +0000 | [diff] [blame] | 44 | |
Simon Glass | f42ad6a | 2023-11-04 10:25:21 -0600 | [diff] [blame] | 45 | sys.exit(0 if result.wasSuccessful() else 1) |
Tom Rini | 5a9ecb2 | 2020-07-24 08:42:06 -0400 | [diff] [blame] | 46 | |
Simon Glass | f42ad6a | 2023-11-04 10:25:21 -0600 | [diff] [blame] | 47 | # Process commits, produce patches files, check them, email them |
Simon Glass | 3c0196f | 2025-04-29 07:21:58 -0600 | [diff] [blame] | 48 | else: |
| 49 | control.do_patman(args) |
Simon Glass | f42ad6a | 2023-11-04 10:25:21 -0600 | [diff] [blame] | 50 | |
Simon Glass | 3db916d | 2020-10-29 21:46:35 -0600 | [diff] [blame] | 51 | |
Simon Glass | f42ad6a | 2023-11-04 10:25:21 -0600 | [diff] [blame] | 52 | if __name__ == "__main__": |
| 53 | sys.exit(run_patman()) |