OLD | NEW |
1 # Copyright 2015 The Chromium Authors. All rights reserved. | 1 # Copyright 2015 The Chromium Authors. All rights reserved. |
2 # Use of this source code is governed by a BSD-style license that can be | 2 # Use of this source code is governed by a BSD-style license that can be |
3 # found in the LICENSE file. | 3 # found in the LICENSE file. |
4 | 4 |
5 | 5 |
6 import android_devices | 6 import android_devices |
7 import copy | 7 import copy |
8 import default_flavor | 8 import default_flavor |
9 | 9 |
10 | 10 |
11 """Appurify flavor utils, used for building and running tests in Appurify.""" | 11 """Appurify flavor utils, used for building and running tests in Appurify.""" |
12 | 12 |
13 | 13 |
14 class AppurifyFlavorUtils(default_flavor.DefaultFlavorUtils): | 14 class AppurifyFlavorUtils(default_flavor.DefaultFlavorUtils): |
15 def __init__(self, skia_api): | 15 def __init__(self, skia_api): |
16 super(AppurifyFlavorUtils, self).__init__(skia_api) | 16 super(AppurifyFlavorUtils, self).__init__(skia_api) |
17 self.device = self._skia_api.builder_spec['device_cfg'] | 17 self.device = self._skia_api.builder_spec['device_cfg'] |
18 slave_info = android_devices.SLAVE_INFO.get( | 18 slave_info = android_devices.SLAVE_INFO.get( |
19 self._skia_api.slave_name, | 19 self._skia_api.slave_name, |
20 android_devices.SLAVE_INFO['default']) | 20 android_devices.SLAVE_INFO['default']) |
21 self.android_tools = self._skia_api.m.path['slave_build'].join( | 21 self.android_tools = self._skia_api.m.path['slave_build'].join( |
22 'skia', 'platform_tools', 'android') | 22 'skia', 'platform_tools', 'android') |
23 self.android_bin = self.android_tools.join('bin') | 23 self.android_bin = self.android_tools.join('bin') |
24 self.apk_dir = self.android_tools.join('apps', 'visualbench', 'build', | 24 self.apk_dir = self.android_tools.join('apps', 'visualbench', 'build', |
25 'outputs', 'apk') | 25 'outputs', 'apk') |
| 26 self.assets_dir = self.android_tools.join('apps', 'visualbench', 'src', |
| 27 'main', 'assets') |
26 self._android_sdk_root = slave_info.android_sdk_root | 28 self._android_sdk_root = slave_info.android_sdk_root |
27 self._default_env = {'ANDROID_SDK_ROOT': self._android_sdk_root, | 29 self._default_env = {'ANDROID_SDK_ROOT': self._android_sdk_root, |
28 'ANDROID_HOME': self._android_sdk_root, | 30 'ANDROID_HOME': self._android_sdk_root, |
29 'SKIA_ANDROID_VERBOSE_SETUP': 1} | 31 'SKIA_ANDROID_VERBOSE_SETUP': 1} |
30 | 32 |
31 def step(self, name, cmd, env=None, **kwargs): | 33 def step(self, name, cmd, env=None, **kwargs): |
32 # Extract the json file name from the command; ignore the rest. | 34 # Extract the json file name from the command; ignore the rest. |
33 json_file = None | 35 json_file = None |
34 for i, arg in enumerate(cmd): | 36 for i, arg in enumerate(cmd): |
35 if str(arg) == '--outResultsFile': | 37 if str(arg) == '--outResultsFile': |
(...skipping 39 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
75 self._skia_api.perf_data_dir.join(json_file)) | 77 self._skia_api.perf_data_dir.join(json_file)) |
76 return result | 78 return result |
77 | 79 |
78 def compile(self, target): | 80 def compile(self, target): |
79 """Build the given target.""" | 81 """Build the given target.""" |
80 env = dict(self._default_env) | 82 env = dict(self._default_env) |
81 ccache = self._skia_api.ccache() | 83 ccache = self._skia_api.ccache() |
82 if ccache: | 84 if ccache: |
83 env['ANDROID_MAKE_CCACHE'] = ccache | 85 env['ANDROID_MAKE_CCACHE'] = ccache |
84 | 86 |
| 87 # Write the nanobench flags to a file inside the APK. |
| 88 args = list(self._skia_api.nanobench_flags) |
| 89 args.extend(['--outResultsFile', '/sdcard/skia_results/visualbench.json']) |
| 90 self.create_clean_host_dir(self.assets_dir) |
| 91 self._skia_api._writefile(self.assets_dir.join('nanobench_flags.txt'), |
| 92 ' '.join(args)) |
| 93 |
85 cmd = [self.android_bin.join('android_ninja'), target, '-d', self.device] | 94 cmd = [self.android_bin.join('android_ninja'), target, '-d', self.device] |
86 self._skia_api.run(self._skia_api.m.step, 'build %s' % target, cmd=cmd, | 95 self._skia_api.run(self._skia_api.m.step, 'build %s' % target, cmd=cmd, |
87 env=env, cwd=self._skia_api.m.path['checkout']) | 96 env=env, cwd=self._skia_api.m.path['checkout']) |
OLD | NEW |