#!/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-dir', 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_dir), '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())