#!/usr/bin/env python
# Copyright (c) 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


_THIS_PATH = os.path.dirname(os.path.realpath(__file__))
_TESTS = [
    {'path': os.path.join(_THIS_PATH, 'run_py_tests')},
    {'path': os.path.join(_THIS_PATH, 'run_vinn_tests'),
     'disabled': {'win32'}},
    {'path': os.path.join(_THIS_PATH, 'run_dev_server_tests'),
     'chrome_path_arg': True}
]


if __name__ == '__main__':
  tracing_path = os.path.abspath(os.path.join(
    os.path.dirname(os.path.realpath(__file__)), '..'))
  sys.path.append(tracing_path)
  from catapult_build import test_runner
  sys.exit(test_runner.Main('tracing', _TESTS, sys.argv))
