OLD | NEW |
1 # Copyright 2014 The Chromium Authors. All rights reserved. | 1 # Copyright 2014 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 """Run specific test on specific environment.""" | 5 """Run specific test on specific environment.""" |
6 | 6 |
7 import logging | 7 import logging |
8 import os | 8 import os |
9 import tempfile | 9 import tempfile |
10 | 10 |
(...skipping 35 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
46 | 46 |
47 dummy_app_path = os.path.join( | 47 dummy_app_path = os.path.join( |
48 constants.GetOutDirectory(), 'apks', 'remote_device_dummy.apk') | 48 constants.GetOutDirectory(), 'apks', 'remote_device_dummy.apk') |
49 | 49 |
50 # pylint: disable=protected-access | 50 # pylint: disable=protected-access |
51 with tempfile.NamedTemporaryFile(suffix='.flags.txt') as flag_file: | 51 with tempfile.NamedTemporaryFile(suffix='.flags.txt') as flag_file: |
52 env_vars = dict(self._test_instance.extras) | 52 env_vars = dict(self._test_instance.extras) |
53 if gtest_test_instance.EXTRA_SHARD_NANO_TIMEOUT not in env_vars: | 53 if gtest_test_instance.EXTRA_SHARD_NANO_TIMEOUT not in env_vars: |
54 env_vars[gtest_test_instance.EXTRA_SHARD_NANO_TIMEOUT] = int( | 54 env_vars[gtest_test_instance.EXTRA_SHARD_NANO_TIMEOUT] = int( |
55 self._test_instance.shard_timeout * 1e9) | 55 self._test_instance.shard_timeout * 1e9) |
| 56 |
| 57 flags = [] |
| 58 |
56 filter_string = self._test_instance._GenerateDisabledFilterString(None) | 59 filter_string = self._test_instance._GenerateDisabledFilterString(None) |
57 if filter_string: | 60 if filter_string: |
58 flag_file.write('_ --gtest_filter=%s' % filter_string) | 61 flags.append('--gtest_filter=%s' % filter_string) |
| 62 |
| 63 if self._test_instance.test_arguments: |
| 64 flags.append(self._test_instance.test_arguments) |
| 65 |
| 66 if flags: |
| 67 flag_file.write('_ ' + ' '.join(flags)) |
59 flag_file.flush() | 68 flag_file.flush() |
60 env_vars[_EXTRA_COMMAND_LINE_FILE] = os.path.basename(flag_file.name) | 69 env_vars[_EXTRA_COMMAND_LINE_FILE] = os.path.basename(flag_file.name) |
61 self._test_instance._data_deps.append( | 70 self._test_instance._data_deps.append( |
62 (os.path.abspath(flag_file.name), None)) | 71 (os.path.abspath(flag_file.name), None)) |
63 self._AmInstrumentTestSetup( | 72 self._AmInstrumentTestSetup( |
64 dummy_app_path, self._test_instance.apk, runner_package, | 73 dummy_app_path, self._test_instance.apk, runner_package, |
65 environment_variables=env_vars) | 74 environment_variables=env_vars) |
66 | 75 |
67 _INSTRUMENTATION_STREAM_LEADER = 'INSTRUMENTATION_STATUS: stream=' | 76 _INSTRUMENTATION_STREAM_LEADER = 'INSTRUMENTATION_STATUS: stream=' |
68 | 77 |
69 #override | 78 #override |
70 def _ParseTestResults(self): | 79 def _ParseTestResults(self): |
71 logging.info('Parsing results from stdout.') | 80 logging.info('Parsing results from stdout.') |
72 results = base_test_result.TestRunResults() | 81 results = base_test_result.TestRunResults() |
73 output = self._results['results']['output'].splitlines() | 82 output = self._results['results']['output'].splitlines() |
74 output = (l[len(self._INSTRUMENTATION_STREAM_LEADER):] for l in output | 83 output = (l[len(self._INSTRUMENTATION_STREAM_LEADER):] for l in output |
75 if l.startswith(self._INSTRUMENTATION_STREAM_LEADER)) | 84 if l.startswith(self._INSTRUMENTATION_STREAM_LEADER)) |
76 results_list = self._test_instance.ParseGTestOutput(output) | 85 results_list = self._test_instance.ParseGTestOutput(output) |
77 results.AddResults(results_list) | 86 results.AddResults(results_list) |
78 | 87 |
79 self._DetectPlatformErrors(results) | 88 self._DetectPlatformErrors(results) |
80 return results | 89 return results |
OLD | NEW |