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 22fc3fe1c2SSimon Glassimport builder 23fc3fe1c2SSimon Glassimport checkpatch 24*d3d5c123SSimon Glassimport cmdline 25fc3fe1c2SSimon Glassimport control 26fc3fe1c2SSimon Glassimport doctest 27fc3fe1c2SSimon Glassimport gitutil 28fc3fe1c2SSimon Glassimport patchstream 29fc3fe1c2SSimon Glassimport terminal 30fc3fe1c2SSimon Glassimport toolchain 31fc3fe1c2SSimon Glass 32fc3fe1c2SSimon Glassdef RunTests(): 33fc3fe1c2SSimon Glass import test 344281ad8eSSimon Glass import doctest 354281ad8eSSimon Glass 364281ad8eSSimon Glass result = unittest.TestResult() 374281ad8eSSimon Glass for module in ['toolchain']: 384281ad8eSSimon Glass suite = doctest.DocTestSuite(module) 394281ad8eSSimon Glass suite.run(result) 404281ad8eSSimon Glass 414281ad8eSSimon Glass # TODO: Surely we can just 'print' result? 424281ad8eSSimon Glass print result 434281ad8eSSimon Glass for test, err in result.errors: 444281ad8eSSimon Glass print err 454281ad8eSSimon Glass for test, err in result.failures: 464281ad8eSSimon Glass print err 47fc3fe1c2SSimon Glass 48fc3fe1c2SSimon Glass sys.argv = [sys.argv[0]] 49fc3fe1c2SSimon Glass suite = unittest.TestLoader().loadTestsFromTestCase(test.TestBuild) 50fc3fe1c2SSimon Glass result = unittest.TestResult() 51fc3fe1c2SSimon Glass suite.run(result) 52fc3fe1c2SSimon Glass 53fc3fe1c2SSimon Glass # TODO: Surely we can just 'print' result? 54fc3fe1c2SSimon Glass print result 55fc3fe1c2SSimon Glass for test, err in result.errors: 56fc3fe1c2SSimon Glass print err 57fc3fe1c2SSimon Glass for test, err in result.failures: 58fc3fe1c2SSimon Glass print err 59fc3fe1c2SSimon Glass 60fc3fe1c2SSimon Glass 61*d3d5c123SSimon Glassoptions, args = cmdline.ParseArgs() 62fc3fe1c2SSimon Glass 63fc3fe1c2SSimon Glass# Run our meagre tests 64fc3fe1c2SSimon Glassif options.test: 65fc3fe1c2SSimon Glass RunTests() 66fc3fe1c2SSimon Glasselif options.full_help: 67fc3fe1c2SSimon Glass pager = os.getenv('PAGER') 68fc3fe1c2SSimon Glass if not pager: 69fc3fe1c2SSimon Glass pager = 'more' 70fc3fe1c2SSimon Glass fname = os.path.join(os.path.dirname(sys.argv[0]), 'README') 71fc3fe1c2SSimon Glass command.Run(pager, fname) 72fc3fe1c2SSimon Glass 73fc3fe1c2SSimon Glass# Build selected commits for selected boards 74fc3fe1c2SSimon Glasselse: 752c3deb97SSimon Glass ret_code = control.DoBuildman(options, args) 762c3deb97SSimon Glass sys.exit(ret_code) 77