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