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