| #!/usr/bin/env python |
| # 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. |
| |
| import os |
| import sys |
| import subprocess |
| import argparse |
| |
| FLUTTER_ROOT = os.path.dirname(os.path.dirname(os.path.abspath(__file__))) |
| FLUTTER = os.path.join(FLUTTER_ROOT, 'bin', 'flutter') |
| |
| UNIT_DIR = os.path.join(FLUTTER_ROOT, 'packages', 'unit') |
| TESTS_DIR = os.path.join(UNIT_DIR, 'test') |
| DEFAULT_ENGINE_DIR = os.path.abspath(os.path.join(FLUTTER_ROOT, '..', 'engine', 'src')) |
| |
| def main(): |
| parser = argparse.ArgumentParser(description='Runs Flutter unit tests') |
| parser.add_argument('--engine-src-path', default=DEFAULT_ENGINE_DIR) |
| parser.add_argument('--config', default='Debug') |
| parser.add_argument('--debug', dest='config', action='store_const', const='Debug') |
| parser.add_argument('--release', dest='config', action='store_const', const='Release') |
| args, remaining = parser.parse_known_args() |
| |
| build_dir = os.path.join(os.path.abspath(args.engine_src_path), 'out', args.config) |
| |
| if not remaining: |
| for root, dirs, files in os.walk(TESTS_DIR): |
| remaining.extend(os.path.join(root, f) |
| for f in files if f.endswith("_test.dart")) |
| |
| if os.environ['TERM'] == 'dumb': |
| remaining = [ '--no-color' ] + remaining |
| |
| return subprocess.call([ |
| FLUTTER, |
| 'test', |
| '--build-dir=%s' % build_dir |
| ] + remaining, cwd=UNIT_DIR) |
| |
| if __name__ == '__main__': |
| sys.exit(main()) |