xref: /openbmc/u-boot/tools/buildman/buildman.py (revision e8f80a5a)
194b13bbaSMasahiro Yamada#!/usr/bin/env python2
2*83d290c5STom Rini# SPDX-License-Identifier: GPL-2.0+
3fc3fe1c2SSimon Glass#
4fc3fe1c2SSimon Glass# Copyright (c) 2012 The Chromium OS Authors.
5fc3fe1c2SSimon Glass#
6fc3fe1c2SSimon Glass
7fc3fe1c2SSimon Glass"""See README for more information"""
8fc3fe1c2SSimon Glass
9fc3fe1c2SSimon Glassimport multiprocessing
10fc3fe1c2SSimon Glassimport os
11fc3fe1c2SSimon Glassimport re
12fc3fe1c2SSimon Glassimport sys
13fc3fe1c2SSimon Glassimport unittest
14fc3fe1c2SSimon Glass
15fc3fe1c2SSimon Glass# Bring in the patman libraries
16fc3fe1c2SSimon Glassour_path = os.path.dirname(os.path.realpath(__file__))
17a556eeebSSimon Glasssys.path.insert(1, os.path.join(our_path, '../patman'))
18fc3fe1c2SSimon Glass
19fc3fe1c2SSimon Glass# Our modules
20fc3fe1c2SSimon Glassimport board
21fd03d63fSSimon Glassimport bsettings
22fc3fe1c2SSimon Glassimport builder
23fc3fe1c2SSimon Glassimport checkpatch
24d3d5c123SSimon Glassimport cmdline
25fc3fe1c2SSimon Glassimport control
26fc3fe1c2SSimon Glassimport doctest
27fc3fe1c2SSimon Glassimport gitutil
28fc3fe1c2SSimon Glassimport patchstream
29fc3fe1c2SSimon Glassimport terminal
30fc3fe1c2SSimon Glassimport toolchain
31fc3fe1c2SSimon Glass
32cb39a109SSimon Glassdef RunTests(skip_net_tests):
33d4144e45SSimon Glass    import func_test
34fc3fe1c2SSimon Glass    import test
354281ad8eSSimon Glass    import doctest
364281ad8eSSimon Glass
374281ad8eSSimon Glass    result = unittest.TestResult()
38d4144e45SSimon Glass    for module in ['toolchain', 'gitutil']:
394281ad8eSSimon Glass        suite = doctest.DocTestSuite(module)
404281ad8eSSimon Glass        suite.run(result)
414281ad8eSSimon Glass
42fc3fe1c2SSimon Glass    sys.argv = [sys.argv[0]]
43cb39a109SSimon Glass    if skip_net_tests:
44cb39a109SSimon Glass        test.use_network = False
45d4144e45SSimon Glass    for module in (test.TestBuild, func_test.TestFunctional):
46d4144e45SSimon Glass        suite = unittest.TestLoader().loadTestsFromTestCase(module)
47fc3fe1c2SSimon Glass        suite.run(result)
48fc3fe1c2SSimon Glass
49fc3fe1c2SSimon Glass    print result
50fc3fe1c2SSimon Glass    for test, err in result.errors:
51fc3fe1c2SSimon Glass        print err
52fc3fe1c2SSimon Glass    for test, err in result.failures:
53fc3fe1c2SSimon Glass        print err
54fc3fe1c2SSimon Glass
55fc3fe1c2SSimon Glass
56d3d5c123SSimon Glassoptions, args = cmdline.ParseArgs()
57fc3fe1c2SSimon Glass
58fc3fe1c2SSimon Glass# Run our meagre tests
59fc3fe1c2SSimon Glassif options.test:
60cb39a109SSimon Glass    RunTests(options.skip_net_tests)
61fc3fe1c2SSimon Glass
62fc3fe1c2SSimon Glass# Build selected commits for selected boards
63fc3fe1c2SSimon Glasselse:
64fd03d63fSSimon Glass    bsettings.Setup(options.config_file)
652c3deb97SSimon Glass    ret_code = control.DoBuildman(options, args)
662c3deb97SSimon Glass    sys.exit(ret_code)
67