blob: 20553e981450417f34e2043444895cf6e84cb925 [file] [log] [blame]
Patrick Williamsc0f7c042017-02-23 20:41:17 -06001#!/usr/bin/env python3
Patrick Williamsc124f4f2015-09-15 14:41:29 -05002#
3# Copyright (C) 2012 Richard Purdie
4#
Brad Bishopc342db32019-05-15 21:57:59 -04005# SPDX-License-Identifier: GPL-2.0-only
Patrick Williamsc124f4f2015-09-15 14:41:29 -05006#
Patrick Williamsc124f4f2015-09-15 14:41:29 -05007
8import os
9import sys, logging
10sys.path.insert(0, os.path.join(os.path.dirname(os.path.dirname(__file__)), 'lib'))
11
12import unittest
13try:
14 import bb
Brad Bishop19323692019-04-05 15:28:33 -040015 import hashserv
Brad Bishop1a4b7ee2018-12-16 17:11:34 -080016 import layerindexlib
Patrick Williamsc124f4f2015-09-15 14:41:29 -050017except RuntimeError as exc:
18 sys.exit(str(exc))
19
Patrick Williamsc0f7c042017-02-23 20:41:17 -060020tests = ["bb.tests.codeparser",
Brad Bishop1a4b7ee2018-12-16 17:11:34 -080021 "bb.tests.cooker",
Patrick Williamsc0f7c042017-02-23 20:41:17 -060022 "bb.tests.cow",
23 "bb.tests.data",
Brad Bishopd7bf8c12018-02-25 22:55:05 -050024 "bb.tests.event",
Patrick Williamsc0f7c042017-02-23 20:41:17 -060025 "bb.tests.fetch",
26 "bb.tests.parse",
Brad Bishop19323692019-04-05 15:28:33 -040027 "bb.tests.persist_data",
Brad Bishop1a4b7ee2018-12-16 17:11:34 -080028 "bb.tests.utils",
Brad Bishop19323692019-04-05 15:28:33 -040029 "hashserv.tests",
Brad Bishop1a4b7ee2018-12-16 17:11:34 -080030 "layerindexlib.tests.layerindexobj",
31 "layerindexlib.tests.restapi",
32 "layerindexlib.tests.cooker"]
Patrick Williamsc124f4f2015-09-15 14:41:29 -050033
34for t in tests:
35 t = '.'.join(t.split('.')[:3])
36 __import__(t)
37
Patrick Williamsc124f4f2015-09-15 14:41:29 -050038
Patrick Williamsc0f7c042017-02-23 20:41:17 -060039# Set-up logging
40class StdoutStreamHandler(logging.StreamHandler):
41 """Special handler so that unittest is able to capture stdout"""
42 def __init__(self):
43 # Override __init__() because we don't want to set self.stream here
44 logging.Handler.__init__(self)
45
46 @property
47 def stream(self):
48 # We want to dynamically write wherever sys.stdout is pointing to
49 return sys.stdout
50
51
52handler = StdoutStreamHandler()
53bb.logger.addHandler(handler)
54bb.logger.setLevel(logging.DEBUG)
55
56
57ENV_HELP = """\
58Environment variables:
59 BB_SKIP_NETTESTS set to 'yes' in order to skip tests using network
60 connection
61 BB_TMPDIR_NOCLEAN set to 'yes' to preserve test tmp directories
62"""
63
64class main(unittest.main):
65 def _print_help(self, *args, **kwargs):
66 super(main, self)._print_help(*args, **kwargs)
67 print(ENV_HELP)
68
69
70if __name__ == '__main__':
71 main(defaultTest=tests, buffer=True)