summaryrefslogtreecommitdiffstats
path: root/chrome/test/chromedriver/chrome_paths.py
blob: a0d38123e516db9291c1d4ec95b0d0aac615b676 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
# Copyright (c) 2012 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.

"""Paths to common resources in the Chrome repository."""

import os


_THIS_DIR = os.path.abspath(os.path.dirname(__file__))


def GetSrc():
  """Returns the path to the root src directory."""
  return os.path.join(_THIS_DIR, os.pardir, os.pardir, os.pardir)


def GetTestData():
  """Returns the path to the src/chrome/test/data directory."""
  return os.path.join(GetSrc(), 'chrome', 'test', 'data')


def GetBuildDir(required_paths):
  """Returns the preferred build directory that contains given paths."""
  dirs = ['out', 'build', 'xcodebuild', 'sconsbuild']
  rel_dirs = [os.path.join(x, 'Release') for x in dirs]
  debug_dirs = [os.path.join(x, 'Debug') for x in dirs]
  full_dirs = [os.path.join(GetSrc(), x) for x in rel_dirs + debug_dirs]
  for build_dir in full_dirs:
    for required_path in required_paths:
      if not os.path.exists(os.path.join(build_dir, required_path)):
        break
    else:
      return build_dir
  raise RuntimeError('Cannot find build directory containing ' +
                     ', '.join(required_paths))