Hixie 5585498846 Improve run_tests
Enumerate the tests in run_tests rather than test:test since test:test
tries to walk symbolic links and that takes a long time.

Turn off color if TERM is 'dumb'.

Enable checked mode for the test harness, to help catch bugs in the
harness itself.
2015-10-30 16:43:18 -07:00

53 lines
1.8 KiB
Python
Executable File

#!/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
SKY_TOOLS_DIR = os.path.dirname(os.path.abspath(__file__))
SKY_ROOT = os.path.dirname(SKY_TOOLS_DIR)
SRC_ROOT = os.path.dirname(SKY_ROOT)
DART_SDK = os.path.join(SRC_ROOT, 'third_party', 'dart-sdk', 'dart-sdk', 'bin')
PUB = os.path.join(DART_SDK, 'pub')
UNIT_DIR = os.path.join(SRC_ROOT, 'sky', 'unit')
PACKAGES_DIR = os.path.join(UNIT_DIR, 'packages')
TESTS_DIR = os.path.join(UNIT_DIR, 'test')
def main():
parser = argparse.ArgumentParser(description='Runs Sky tests')
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(SRC_ROOT, 'out', args.config)
sky_shell = None
if sys.platform == 'linux2':
sky_shell = os.path.join(build_dir, 'sky_shell')
elif sys.platform == 'darwin':
sky_shell = os.path.join(build_dir, 'SkyShell.app', 'Contents', 'MacOS', 'SkyShell')
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"))
env = os.environ.copy()
env['SKY_SHELL'] = sky_shell
if env['TERM'] == 'dumb':
remaining = [ '--no-color' ] + remaining
return subprocess.call([
PUB, 'run', '--checked', 'sky_tools:sky_test',
] + remaining, cwd=UNIT_DIR, env=env)
if __name__ == '__main__':
sys.exit(main())