1 #!/usr/bin/env python 2 # Copyright (c) 2015 The Chromium Authors. All rights reserved. 3 # Use of this source code is governed by a BSD-style license that can be 4 # found in the LICENSE file. 5 6 import argparse 7 import os 8 import sys 9 10 from hooks import install 11 import tracing_project 12 import vinn 13 14 15 def _RelPathToUnixPath(p): 16 return p.replace(os.sep, '/') 17 18 19 def RunTests(): 20 project = tracing_project.TracingProject() 21 headless_test_module_filenames = [ 22 '/' + _RelPathToUnixPath(x) 23 for x in project.FindAllD8TestModuleRelPaths()] 24 headless_test_module_filenames.sort() 25 26 cmd = """ 27 HTMLImportsLoader.loadHTML('/tracing/base/headless_tests.html'); 28 tr.b.unittest.loadAndRunTests(sys.argv.slice(1)); 29 """ 30 res = vinn.RunJsString( 31 cmd, source_paths=list(project.source_paths), 32 js_args=headless_test_module_filenames, 33 stdout=sys.stdout, stdin=sys.stdin) 34 return res.returncode 35 36 37 def Main(argv): 38 parser = argparse.ArgumentParser( 39 description='Run d8 tests.') 40 parser.add_argument( 41 '--no-install-hooks', dest='install_hooks', action='store_false') 42 parser.set_defaults(install_hooks=True) 43 args = parser.parse_args(argv[1:]) 44 if args.install_hooks: 45 install.InstallHooks() 46 47 sys.exit(RunTests()) 48