| 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 import logging | 5 import logging |
| 6 import os | 6 import os |
| 7 import re | 7 import re |
| 8 import sys | 8 import sys |
| 9 import tempfile | 9 import tempfile |
| 10 | 10 |
| 11 from devil.android import apk_helper | 11 from devil.android import apk_helper |
| 12 from pylib import constants | 12 from pylib import constants |
| 13 from pylib.base import base_test_result | 13 from pylib.base import base_test_result |
| 14 from pylib.base import test_instance | 14 from pylib.base import test_instance |
| 15 | 15 |
| 16 sys.path.append(os.path.join( | 16 sys.path.append(os.path.join( |
| 17 constants.DIR_SOURCE_ROOT, 'build', 'util', 'lib', 'common')) | 17 constants.DIR_SOURCE_ROOT, 'build', 'util', 'lib', 'common')) |
| 18 import unittest_util # pylint: disable=import-error | 18 import unittest_util # pylint: disable=import-error |
| 19 | 19 |
| 20 | 20 |
| 21 BROWSER_TEST_SUITES = [ | 21 BROWSER_TEST_SUITES = [ |
| 22 'components_browsertests', | 22 'components_browsertests', |
| 23 'content_browsertests', | 23 'content_browsertests', |
| 24 ] | 24 ] |
| 25 | 25 |
| 26 RUN_IN_SUB_THREAD_TEST_SUITES = ['net_unittests'] |
| 27 |
| 26 | 28 |
| 27 _DEFAULT_ISOLATE_FILE_PATHS = { | 29 _DEFAULT_ISOLATE_FILE_PATHS = { |
| 28 'base_unittests': 'base/base_unittests.isolate', | 30 'base_unittests': 'base/base_unittests.isolate', |
| 29 'blink_heap_unittests': | 31 'blink_heap_unittests': |
| 30 'third_party/WebKit/Source/platform/heap/BlinkHeapUnitTests.isolate', | 32 'third_party/WebKit/Source/platform/heap/BlinkHeapUnitTests.isolate', |
| 31 'breakpad_unittests': 'breakpad/breakpad_unittests.isolate', | 33 'breakpad_unittests': 'breakpad/breakpad_unittests.isolate', |
| 32 'cc_perftests': 'cc/cc_perftests.isolate', | 34 'cc_perftests': 'cc/cc_perftests.isolate', |
| 33 'components_browsertests': 'components/components_browsertests.isolate', | 35 'components_browsertests': 'components/components_browsertests.isolate', |
| 34 'components_unittests': 'components/components_unittests.isolate', | 36 'components_unittests': 'components/components_unittests.isolate', |
| 35 'content_browsertests': 'content/content_browsertests.isolate', | 37 'content_browsertests': 'content/content_browsertests.isolate', |
| (...skipping 30 matching lines...) Expand all Loading... |
| 66 'third_party/hunspell_dictionaries/*.dic', | 68 'third_party/hunspell_dictionaries/*.dic', |
| 67 # crbug.com/258690 | 69 # crbug.com/258690 |
| 68 'webkit/data/bmp_decoder', | 70 'webkit/data/bmp_decoder', |
| 69 'webkit/data/ico_decoder', | 71 'webkit/data/ico_decoder', |
| 70 ] | 72 ] |
| 71 | 73 |
| 72 | 74 |
| 73 _EXTRA_NATIVE_TEST_ACTIVITY = ( | 75 _EXTRA_NATIVE_TEST_ACTIVITY = ( |
| 74 'org.chromium.native_test.NativeTestInstrumentationTestRunner.' | 76 'org.chromium.native_test.NativeTestInstrumentationTestRunner.' |
| 75 'NativeTestActivity') | 77 'NativeTestActivity') |
| 78 _EXTRA_RUN_IN_SUB_THREAD = ( |
| 79 'org.chromium.native_test.NativeTestActivity.RunInSubThread') |
| 76 _EXTRA_SHARD_SIZE_LIMIT = ( | 80 _EXTRA_SHARD_SIZE_LIMIT = ( |
| 77 'org.chromium.native_test.NativeTestInstrumentationTestRunner.' | 81 'org.chromium.native_test.NativeTestInstrumentationTestRunner.' |
| 78 'ShardSizeLimit') | 82 'ShardSizeLimit') |
| 79 | 83 |
| 80 # TODO(jbudorick): Remove these once we're no longer parsing stdout to generate | 84 # TODO(jbudorick): Remove these once we're no longer parsing stdout to generate |
| 81 # results. | 85 # results. |
| 82 _RE_TEST_STATUS = re.compile( | 86 _RE_TEST_STATUS = re.compile( |
| 83 r'\[ +((?:RUN)|(?:FAILED)|(?:OK)) +\] ?([^ ]+)(?: \((\d+) ms\))?$') | 87 r'\[ +((?:RUN)|(?:FAILED)|(?:OK)) +\] ?([^ ]+)(?: \((\d+) ms\))?$') |
| 84 _RE_TEST_RUN_STATUS = re.compile( | 88 _RE_TEST_RUN_STATUS = re.compile( |
| 85 r'\[ +(PASSED|RUNNER_FAILED|CRASHED) \] ?[^ ]+') | 89 r'\[ +(PASSED|RUNNER_FAILED|CRASHED) \] ?[^ ]+') |
| (...skipping 55 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 141 self._runner = None | 145 self._runner = None |
| 142 else: | 146 else: |
| 143 helper = apk_helper.ApkHelper(self._apk_path) | 147 helper = apk_helper.ApkHelper(self._apk_path) |
| 144 self._activity = helper.GetActivityName() | 148 self._activity = helper.GetActivityName() |
| 145 self._package = helper.GetPackageName() | 149 self._package = helper.GetPackageName() |
| 146 self._runner = helper.GetInstrumentationName() | 150 self._runner = helper.GetInstrumentationName() |
| 147 self._permissions = helper.GetPermissions() | 151 self._permissions = helper.GetPermissions() |
| 148 self._extras = { | 152 self._extras = { |
| 149 _EXTRA_NATIVE_TEST_ACTIVITY: self._activity, | 153 _EXTRA_NATIVE_TEST_ACTIVITY: self._activity, |
| 150 } | 154 } |
| 155 if self._suite in RUN_IN_SUB_THREAD_TEST_SUITES: |
| 156 self._extras[_EXTRA_RUN_IN_SUB_THREAD] = 1 |
| 151 if self._suite in BROWSER_TEST_SUITES: | 157 if self._suite in BROWSER_TEST_SUITES: |
| 152 self._extras[_EXTRA_SHARD_SIZE_LIMIT] = 1 | 158 self._extras[_EXTRA_SHARD_SIZE_LIMIT] = 1 |
| 153 | 159 |
| 154 if not os.path.exists(self._exe_path): | 160 if not os.path.exists(self._exe_path): |
| 155 self._exe_path = None | 161 self._exe_path = None |
| 156 if not self._apk_path and not self._exe_path: | 162 if not self._apk_path and not self._exe_path: |
| 157 error_func('Could not find apk or executable for %s' % self._suite) | 163 error_func('Could not find apk or executable for %s' % self._suite) |
| 158 | 164 |
| 159 self._data_deps = [] | 165 self._data_deps = [] |
| 160 if args.test_filter: | 166 if args.test_filter: |
| (...skipping 164 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 325 return self._permissions | 331 return self._permissions |
| 326 | 332 |
| 327 @property | 333 @property |
| 328 def runner(self): | 334 def runner(self): |
| 329 return self._runner | 335 return self._runner |
| 330 | 336 |
| 331 @property | 337 @property |
| 332 def suite(self): | 338 def suite(self): |
| 333 return self._suite | 339 return self._suite |
| 334 | 340 |
| OLD | NEW |