blob: 4944c368c62605f6dfb55cab6880b3fa3bfac1ef [file] [log] [blame]
#!/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()