1#!/usr/bin/env python2 2# 3# Copyright (c) 2012 The Chromium OS Authors. 4# 5# SPDX-License-Identifier: GPL-2.0+ 6# 7 8"""See README for more information""" 9 10import multiprocessing 11import os 12import re 13import sys 14import unittest 15 16# Bring in the patman libraries 17our_path = os.path.dirname(os.path.realpath(__file__)) 18sys.path.insert(1, os.path.join(our_path, '../patman')) 19 20# Our modules 21import board 22import bsettings 23import builder 24import checkpatch 25import cmdline 26import control 27import doctest 28import gitutil 29import patchstream 30import terminal 31import toolchain 32 33def RunTests(skip_net_tests): 34 import func_test 35 import test 36 import doctest 37 38 result = unittest.TestResult() 39 for module in ['toolchain', 'gitutil']: 40 suite = doctest.DocTestSuite(module) 41 suite.run(result) 42 43 sys.argv = [sys.argv[0]] 44 if skip_net_tests: 45 test.use_network = False 46 for module in (test.TestBuild, func_test.TestFunctional): 47 suite = unittest.TestLoader().loadTestsFromTestCase(module) 48 suite.run(result) 49 50 print result 51 for test, err in result.errors: 52 print err 53 for test, err in result.failures: 54 print err 55 56 57options, args = cmdline.ParseArgs() 58 59# Run our meagre tests 60if options.test: 61 RunTests(options.skip_net_tests) 62 63# Build selected commits for selected boards 64else: 65 bsettings.Setup(options.config_file) 66 ret_code = control.DoBuildman(options, args) 67 sys.exit(ret_code) 68