Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(952)

Side by Side Diff: build/android/pylib/run_java_tests.py

Issue 11780003: [Android] Revert 175082 (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src/
Patch Set: Created 7 years, 11 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch | Annotate | Revision Log
« no previous file with comments | « build/android/pylib/python_test_base.py ('k') | build/android/pylib/run_python_tests.py » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
1 # Copyright (c) 2012 The Chromium Authors. All rights reserved. 1 # Copyright (c) 2012 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 """Runs the Java tests. See more information on run_instrumentation_tests.py.""" 5 """Runs the Java tests. See more information on run_instrumentation_tests.py."""
6 6
7 import fnmatch 7 import fnmatch
8 import logging 8 import logging
9 import os 9 import os
10 import re 10 import re
11 import shutil 11 import shutil
12 import sys 12 import sys
13 import time 13 import time
14 14
15 import android_commands 15 import android_commands
16 import apk_info
16 from base_test_runner import BaseTestRunner 17 from base_test_runner import BaseTestRunner
17 from base_test_sharder import BaseTestSharder, SetTestsContainer 18 from base_test_sharder import BaseTestSharder, SetTestsContainer
18 import cmd_helper 19 import cmd_helper
19 import constants 20 import constants
20 import errors 21 import errors
21 from forwarder import Forwarder 22 from forwarder import Forwarder
22 from json_perf_parser import GetAverageRunInfoFromJSONString 23 from json_perf_parser import GetAverageRunInfoFromJSONString
23 from perf_tests_helper import PrintPerfResult 24 from perf_tests_helper import PrintPerfResult
24 import sharded_tests_queue 25 import sharded_tests_queue
25 from test_result import SingleTestResult, TestResults 26 from test_result import SingleTestResult, TestResults
26 from utils import apk_and_jar_info
27 from utils import jar_info
28 import valgrind_tools 27 import valgrind_tools
29 28
30 _PERF_TEST_ANNOTATION = 'PerfTest' 29 _PERF_TEST_ANNOTATION = 'PerfTest'
31 30
32 31
33 class FatalTestException(Exception): 32 class FatalTestException(Exception):
34 """A fatal test exception.""" 33 """A fatal test exception."""
35 pass 34 pass
36 35
37 36
(...skipping 69 matching lines...) Expand 10 before | Expand all | Expand 10 after
107 The default is ChromeTest.apk. 106 The default is ChromeTest.apk.
108 ports_to_forward: A list of port numbers for which to set up forwarders. 107 ports_to_forward: A list of port numbers for which to set up forwarders.
109 Can be optionally requested by a test case. 108 Can be optionally requested by a test case.
110 Raises: 109 Raises:
111 FatalTestException: if coverage metadata is not available. 110 FatalTestException: if coverage metadata is not available.
112 """ 111 """
113 BaseTestRunner.__init__( 112 BaseTestRunner.__init__(
114 self, device, options.tool, shard_index, options.build_type) 113 self, device, options.tool, shard_index, options.build_type)
115 114
116 if not apks: 115 if not apks:
117 apks = [apk_and_jar_info.ApkAndJarInfo(options.test_apk_path, 116 apks = [apk_info.ApkInfo(options.test_apk_path,
118 options.test_apk_jar_path)] 117 options.test_apk_jar_path)]
119 118
120 self.build_type = options.build_type 119 self.build_type = options.build_type
121 self.install_apk = options.install_apk 120 self.install_apk = options.install_apk
122 self.test_data = options.test_data 121 self.test_data = options.test_data
123 self.save_perf_json = options.save_perf_json 122 self.save_perf_json = options.save_perf_json
124 self.screenshot_failures = options.screenshot_failures 123 self.screenshot_failures = options.screenshot_failures
125 self.wait_for_debugger = options.wait_for_debugger 124 self.wait_for_debugger = options.wait_for_debugger
126 self.disable_assertions = options.disable_assertions 125 self.disable_assertions = options.disable_assertions
127 126
128 self.tests_iter = tests_iter 127 self.tests_iter = tests_iter
(...skipping 405 matching lines...) Expand 10 before | Expand all | Expand 10 after
534 default_size_annotation = 'SmallTest' 533 default_size_annotation = 'SmallTest'
535 534
536 def _GetTestsMissingAnnotation(test_apk): 535 def _GetTestsMissingAnnotation(test_apk):
537 test_size_annotations = frozenset(['Smoke', 'SmallTest', 'MediumTest', 536 test_size_annotations = frozenset(['Smoke', 'SmallTest', 'MediumTest',
538 'LargeTest', 'EnormousTest', 'FlakyTest', 537 'LargeTest', 'EnormousTest', 'FlakyTest',
539 'DisabledTest', 'Manual', 'PerfTest']) 538 'DisabledTest', 'Manual', 'PerfTest'])
540 tests_missing_annotations = [] 539 tests_missing_annotations = []
541 for test_method in test_apk.GetTestMethods(): 540 for test_method in test_apk.GetTestMethods():
542 annotations = frozenset(test_apk.GetTestAnnotations(test_method)) 541 annotations = frozenset(test_apk.GetTestAnnotations(test_method))
543 if (annotations.isdisjoint(test_size_annotations) and 542 if (annotations.isdisjoint(test_size_annotations) and
544 not jar_info.JarInfo.IsPythonDrivenTest(test_method)): 543 not apk_info.ApkInfo.IsPythonDrivenTest(test_method)):
545 tests_missing_annotations.append(test_method) 544 tests_missing_annotations.append(test_method)
546 return sorted(tests_missing_annotations) 545 return sorted(tests_missing_annotations)
547 546
548 if options.annotation: 547 if options.annotation:
549 available_tests = test_apk.GetAnnotatedTests(options.annotation) 548 available_tests = test_apk.GetAnnotatedTests(options.annotation)
550 if options.annotation.count(default_size_annotation) > 0: 549 if options.annotation.count(default_size_annotation) > 0:
551 tests_missing_annotations = _GetTestsMissingAnnotation(test_apk) 550 tests_missing_annotations = _GetTestsMissingAnnotation(test_apk)
552 if tests_missing_annotations: 551 if tests_missing_annotations:
553 logging.warning('The following tests do not contain any annotation. ' 552 logging.warning('The following tests do not contain any annotation. '
554 'Assuming "%s":\n%s', 553 'Assuming "%s":\n%s',
555 default_size_annotation, 554 default_size_annotation,
556 '\n'.join(tests_missing_annotations)) 555 '\n'.join(tests_missing_annotations))
557 available_tests += tests_missing_annotations 556 available_tests += tests_missing_annotations
558 else: 557 else:
559 available_tests = [m for m in test_apk.GetTestMethods() 558 available_tests = [m for m in test_apk.GetTestMethods()
560 if not jar_info.JarInfo.IsPythonDrivenTest(m)] 559 if not apk_info.ApkInfo.IsPythonDrivenTest(m)]
561 coverage = os.environ.get('EMMA_INSTRUMENT') == 'true' 560 coverage = os.environ.get('EMMA_INSTRUMENT') == 'true'
562 561
563 tests = [] 562 tests = []
564 if options.test_filter: 563 if options.test_filter:
565 # |available_tests| are in adb instrument format: package.path.class#test. 564 # |available_tests| are in adb instrument format: package.path.class#test.
566 filter_without_hash = options.test_filter.replace('#', '.') 565 filter_without_hash = options.test_filter.replace('#', '.')
567 tests = [t for t in available_tests 566 tests = [t for t in available_tests
568 if filter_without_hash in t.replace('#', '.')] 567 if filter_without_hash in t.replace('#', '.')]
569 else: 568 else:
570 tests = available_tests 569 tests = available_tests
(...skipping 14 matching lines...) Expand all
585 584
586 logging.info('Will run: %s', str(tests)) 585 logging.info('Will run: %s', str(tests))
587 586
588 if len(attached_devices) > 1 and (coverage or options.wait_for_debugger): 587 if len(attached_devices) > 1 and (coverage or options.wait_for_debugger):
589 logging.warning('Coverage / debugger can not be sharded, ' 588 logging.warning('Coverage / debugger can not be sharded, '
590 'using first available device') 589 'using first available device')
591 attached_devices = attached_devices[:1] 590 attached_devices = attached_devices[:1]
592 sharder = TestSharder(attached_devices, options, tests, apks) 591 sharder = TestSharder(attached_devices, options, tests, apks)
593 test_results = sharder.RunShardedTests() 592 test_results = sharder.RunShardedTests()
594 return test_results 593 return test_results
OLDNEW
« no previous file with comments | « build/android/pylib/python_test_base.py ('k') | build/android/pylib/run_python_tests.py » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698