Index: tools/telemetry/telemetry/internal/backends/mandoline/config.py |
diff --git a/tools/telemetry/telemetry/internal/backends/mandoline/config.py b/tools/telemetry/telemetry/internal/backends/mandoline/config.py |
deleted file mode 100644 |
index 2ff513c1c76dc442831ee8f98540b9a4446dfe18..0000000000000000000000000000000000000000 |
--- a/tools/telemetry/telemetry/internal/backends/mandoline/config.py |
+++ /dev/null |
@@ -1,143 +0,0 @@ |
-# 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. |
- |
-# TODO(yzshen): Once the dep manager is ready, remove this file and use the one |
-# from src/mojo/tools directly. |
- |
- |
-import ast |
-import os.path |
-import platform |
-import re |
-import sys |
- |
- |
-class Config(object): |
- '''A Config contains a dictionary that species a build configuration.''' |
- |
- # Valid values for target_os: |
- OS_ANDROID = 'android' |
- OS_CHROMEOS = 'chromeos' |
- OS_LINUX = 'linux' |
- OS_MAC = 'mac' |
- OS_WINDOWS = 'windows' |
- |
- # Valid values for target_cpu: |
- ARCH_X86 = 'x86' |
- ARCH_X64 = 'x64' |
- ARCH_ARM = 'arm' |
- |
- def __init__(self, build_dir=None, target_os=None, target_cpu=None, |
- is_debug=None, is_verbose=None, apk_name='MojoRunner.apk'): |
- '''Function arguments take precedence over GN args and default values.''' |
- assert target_os in (None, Config.OS_ANDROID, Config.OS_CHROMEOS, |
- Config.OS_LINUX, Config.OS_MAC, Config.OS_WINDOWS) |
- assert target_cpu in (None, Config.ARCH_X86, Config.ARCH_X64, |
- Config.ARCH_ARM) |
- assert is_debug in (None, True, False) |
- assert is_verbose in (None, True, False) |
- |
- self.values = { |
- 'build_dir': build_dir, |
- 'target_os': self.GetHostOS(), |
- 'target_cpu': self.GetHostCPU(), |
- 'is_debug': True, |
- 'is_verbose': True, |
- 'dcheck_always_on': False, |
- 'is_asan': False, |
- 'apk_name': apk_name, |
- } |
- |
- self._ParseGNArgs() |
- if target_os is not None: |
- self.values['target_os'] = target_os |
- if target_cpu is not None: |
- self.values['target_cpu'] = target_cpu |
- if is_debug is not None: |
- self.values['is_debug'] = is_debug |
- if is_verbose is not None: |
- self.values['is_verbose'] = is_verbose |
- |
- @staticmethod |
- def GetHostOS(): |
- if sys.platform == 'linux2': |
- return Config.OS_LINUX |
- if sys.platform == 'darwin': |
- return Config.OS_MAC |
- if sys.platform == 'win32': |
- return Config.OS_WINDOWS |
- raise NotImplementedError('Unsupported host OS') |
- |
- @staticmethod |
- def GetHostCPU(): |
- # Derived from //native_client/pynacl/platform.py |
- machine = platform.machine() |
- if machine in ('x86', 'x86-32', 'x86_32', 'x8632', 'i386', 'i686', 'ia32', |
- '32'): |
- return Config.ARCH_X86 |
- if machine in ('x86-64', 'amd64', 'AMD64', 'x86_64', 'x8664', '64'): |
- return Config.ARCH_X64 |
- if machine.startswith('arm'): |
- return Config.ARCH_ARM |
- raise Exception('Cannot identify CPU arch: %s' % machine) |
- |
- def _ParseGNArgs(self): |
- '''Parse the gn config file from the build directory, if it exists.''' |
- TRANSLATIONS = {'true': 'True', 'false': 'False',} |
- if self.values['build_dir'] is None: |
- return |
- gn_file = os.path.join(self.values['build_dir'], 'args.gn') |
- if not os.path.isfile(gn_file): |
- return |
- |
- with open(gn_file, 'r') as f: |
- for line in f: |
- line = re.sub(r'\s*#.*', '', line) |
- result = re.match(r'^\s*(\w+)\s*=\s*(.*)\s*$', line) |
- if result: |
- key = result.group(1) |
- value = result.group(2) |
- self.values[key] = ast.literal_eval(TRANSLATIONS.get(value, value)) |
- |
- # Getters for standard fields ------------------------------------------------ |
- |
- @property |
- def build_dir(self): |
- '''Build directory path.''' |
- return self.values['build_dir'] |
- |
- @property |
- def target_os(self): |
- '''OS of the build/test target.''' |
- return self.values['target_os'] |
- |
- @property |
- def target_cpu(self): |
- '''CPU arch of the build/test target.''' |
- return self.values['target_cpu'] |
- |
- @property |
- def is_debug(self): |
- '''Is Debug build?''' |
- return self.values['is_debug'] |
- |
- @property |
- def is_verbose(self): |
- '''Should print additional logging information?''' |
- return self.values['is_verbose'] |
- |
- @property |
- def dcheck_always_on(self): |
- '''DCHECK and MOJO_DCHECK are fatal even in release builds''' |
- return self.values['dcheck_always_on'] |
- |
- @property |
- def is_asan(self): |
- '''Is ASAN build?''' |
- return self.values['is_asan'] |
- |
- @property |
- def apk_name(self): |
- '''Name of the APK file to run''' |
- return self.values['apk_name'] |