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

sys.path.append(os.path.join(os.path.dirname(__file__), os.pardir, 'telemetry'))
sys.path.append(os.path.join(os.path.dirname(__file__), os.pardir, 'perf'))

from telemetry import test_runner
from telemetry.core import environment


if __name__ == '__main__':
  base_dir = os.path.dirname(os.path.realpath(__file__))
  test_runner.config = environment.Environment([base_dir])
  sys.exit(test_runner.main())
