bitbake-selftest 2.0 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980
  1. #!/usr/bin/env python3
  2. #
  3. # Copyright (C) 2012 Richard Purdie
  4. #
  5. # SPDX-License-Identifier: GPL-2.0-only
  6. #
  7. import os
  8. import sys, logging
  9. import warnings
  10. warnings.simplefilter("default")
  11. sys.path.insert(0, os.path.join(os.path.dirname(os.path.dirname(__file__)), 'lib'))
  12. import unittest
  13. try:
  14. import bb
  15. import hashserv
  16. import prserv
  17. import layerindexlib
  18. except RuntimeError as exc:
  19. sys.exit(str(exc))
  20. tests = ["bb.tests.codeparser",
  21. "bb.tests.color",
  22. "bb.tests.cooker",
  23. "bb.tests.cow",
  24. "bb.tests.data",
  25. "bb.tests.event",
  26. "bb.tests.fetch",
  27. "bb.tests.parse",
  28. "bb.tests.runqueue",
  29. "bb.tests.setup",
  30. "bb.tests.siggen",
  31. "bb.tests.utils",
  32. "bb.tests.compression",
  33. "bb.tests.filter",
  34. "hashserv.tests",
  35. "prserv.tests",
  36. "layerindexlib.tests.layerindexobj",
  37. "layerindexlib.tests.restapi",
  38. "layerindexlib.tests.cooker"]
  39. for t in tests:
  40. t = '.'.join(t.split('.')[:3])
  41. __import__(t)
  42. # Set-up logging
  43. class StdoutStreamHandler(logging.StreamHandler):
  44. """Special handler so that unittest is able to capture stdout"""
  45. def __init__(self):
  46. # Override __init__() because we don't want to set self.stream here
  47. logging.Handler.__init__(self)
  48. @property
  49. def stream(self):
  50. # We want to dynamically write wherever sys.stdout is pointing to
  51. return sys.stdout
  52. handler = StdoutStreamHandler()
  53. bb.logger.addHandler(handler)
  54. bb.logger.setLevel(logging.DEBUG)
  55. ENV_HELP = """\
  56. Environment variables:
  57. BB_SKIP_NETTESTS set to 'yes' in order to skip tests using network
  58. connection
  59. BB_TMPDIR_NOCLEAN set to 'yes' to preserve test tmp directories
  60. """
  61. class main(unittest.main):
  62. def _print_help(self, *args, **kwargs):
  63. super(main, self)._print_help(*args, **kwargs)
  64. print(ENV_HELP)
  65. if __name__ == '__main__':
  66. main(defaultTest=tests, buffer=True)