| #!/usr/bin/env python2.7 |
| |
| # Copyright 2015 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. |
| |
| """Runs the unit test suite for systrace.""" |
| |
| import optparse |
| import os |
| import sys |
| import unittest |
| |
| _SYSTRACE_DIR = os.path.abspath( |
| os.path.join(os.path.dirname(__file__), os.path.pardir)) |
| sys.path.insert(0, _SYSTRACE_DIR) |
| from systrace import decorators |
| |
| |
| def main(): |
| parser = optparse.OptionParser() |
| parser.add_option("-d", "--device", dest="device", |
| help="device the test runs on", metavar="DEVICE") |
| options, _args = parser.parse_args() # pylint: disable=unused-variable |
| unfiltered_suite = unittest.TestLoader().discover( |
| _SYSTRACE_DIR, |
| pattern = '*_unittest.py', |
| top_level_dir=_SYSTRACE_DIR) |
| suite = unittest.TestSuite() |
| |
| for test_group in unfiltered_suite._tests: |
| for inner_group in test_group: |
| for test in inner_group: |
| method = getattr( |
| test, test._testMethodName) # pylint: disable=protected-access |
| if not decorators.ShouldSkip(method, options.device): |
| suite.addTest(test) |
| |
| result = unittest.TextTestRunner(verbosity=2).run(suite) |
| if result.wasSuccessful(): |
| sys.exit(0) |
| else: |
| sys.exit(1) |
| |
| if __name__ == '__main__': |
| main() |