| #!/usr/bin/env python | |
| # Copyright 2017 The Chromium Authors. All rights reserved. | |
| # Use of this source code is governed by a BSD-style license that can be | |
| # found in the LICENSE file. | |
| import logging | |
| import os | |
| import sys | |
| import unittest | |
| if __name__ == '__main__': | |
| logging.basicConfig( | |
| level=logging.DEBUG if '-v' in sys.argv else logging.WARNING, | |
| format='%(levelname)5s %(filename)15s(%(lineno)3d): %(message)s') | |
| suite = unittest.TestSuite() | |
| loader = unittest.TestLoader() | |
| root_dir = os.path.dirname(os.path.realpath(__file__)) | |
| if len(sys.argv) < 2: | |
| cases = loader.discover(start_dir=root_dir, pattern='*_unittest.py') | |
| else: | |
| cases = [] | |
| for module in sys.argv[1:]: | |
| pattern = '{}_unittest.py'.format(module) | |
| cases.extend(loader.discover(start_dir=root_dir, pattern=pattern)) | |
| suite.addTests(cases) | |
| res = unittest.TextTestRunner(verbosity=2).run(suite) | |
| if res.wasSuccessful(): | |
| sys.exit(0) | |
| else: | |
| sys.exit(1) |