main.py 1.5 KB

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