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

Side by Side Diff: build/android/pylib/instrumentation/test_runner.py

Issue 19799003: [android] Instumentation tests determine whether to install test apk based on Md5Sum. (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: unnecessary import Created 7 years, 5 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/instrumentation/setup.py ('k') | build/android/test_runner.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 """Class for running instrumentation tests on a single device.""" 5 """Class for running instrumentation tests on a single device."""
6 6
7 import logging 7 import logging
8 import os 8 import os
9 import re 9 import re
10 import shutil 10 import shutil
(...skipping 34 matching lines...) Expand 10 before | Expand all | Expand 10 after
45 45
46 class TestRunner(base_test_runner.BaseTestRunner): 46 class TestRunner(base_test_runner.BaseTestRunner):
47 """Responsible for running a series of tests connected to a single device.""" 47 """Responsible for running a series of tests connected to a single device."""
48 48
49 _DEVICE_DATA_DIR = 'chrome/test/data' 49 _DEVICE_DATA_DIR = 'chrome/test/data'
50 _HOSTMACHINE_PERF_OUTPUT_FILE = '/tmp/chrome-profile' 50 _HOSTMACHINE_PERF_OUTPUT_FILE = '/tmp/chrome-profile'
51 _DEVICE_PERF_OUTPUT_SEARCH_PREFIX = (constants.DEVICE_PERF_OUTPUT_DIR + 51 _DEVICE_PERF_OUTPUT_SEARCH_PREFIX = (constants.DEVICE_PERF_OUTPUT_DIR +
52 '/chrome-profile*') 52 '/chrome-profile*')
53 _DEVICE_HAS_TEST_FILES = {} 53 _DEVICE_HAS_TEST_FILES = {}
54 54
55 def __init__(self, build_type, test_data, install_apk, save_perf_json, 55 def __init__(self, build_type, test_data, save_perf_json, screenshot_failures,
56 screenshot_failures, tool, wait_for_debugger, disable_assertions, 56 tool, wait_for_debugger, disable_assertions, push_deps,
57 push_deps, cleanup_test_files, device, shard_index, test_pkg, 57 cleanup_test_files, device, shard_index, test_pkg,
58 ports_to_forward): 58 ports_to_forward):
59 """Create a new TestRunner. 59 """Create a new TestRunner.
60 60
61 Args: 61 Args:
62 build_type: 'Release' or 'Debug'. 62 build_type: 'Release' or 'Debug'.
63 test_data: Location of the test data. 63 test_data: Location of the test data.
64 install_apk: Re-installs the apk if opted.
65 save_perf_json: Whether or not to save the JSON file from UI perf tests. 64 save_perf_json: Whether or not to save the JSON file from UI perf tests.
66 screenshot_failures: Take a screenshot for a test failure 65 screenshot_failures: Take a screenshot for a test failure
67 tool: Name of the Valgrind tool. 66 tool: Name of the Valgrind tool.
68 wait_for_debugger: Blocks until the debugger is connected. 67 wait_for_debugger: Blocks until the debugger is connected.
69 disable_assertions: Whether to disable java assertions on the device. 68 disable_assertions: Whether to disable java assertions on the device.
70 push_deps: If True, push all dependencies to the device. 69 push_deps: If True, push all dependencies to the device.
71 cleanup_test_files: Whether or not to cleanup test files on device. 70 cleanup_test_files: Whether or not to cleanup test files on device.
72 device: Attached android device. 71 device: Attached android device.
73 shard_index: Shard index. 72 shard_index: Shard index.
74 test_pkg: A TestPackage object. 73 test_pkg: A TestPackage object.
75 ports_to_forward: A list of port numbers for which to set up forwarders. 74 ports_to_forward: A list of port numbers for which to set up forwarders.
76 Can be optionally requested by a test case. 75 Can be optionally requested by a test case.
77 """ 76 """
78 super(TestRunner, self).__init__(device, tool, build_type, push_deps, 77 super(TestRunner, self).__init__(device, tool, build_type, push_deps,
79 cleanup_test_files) 78 cleanup_test_files)
80 self._lighttp_port = constants.LIGHTTPD_RANDOM_PORT_FIRST + shard_index 79 self._lighttp_port = constants.LIGHTTPD_RANDOM_PORT_FIRST + shard_index
81 80
82 self.build_type = build_type 81 self.build_type = build_type
83 self.test_data = test_data 82 self.test_data = test_data
84 self.save_perf_json = save_perf_json 83 self.save_perf_json = save_perf_json
85 self.screenshot_failures = screenshot_failures 84 self.screenshot_failures = screenshot_failures
86 self.wait_for_debugger = wait_for_debugger 85 self.wait_for_debugger = wait_for_debugger
87 self.disable_assertions = disable_assertions 86 self.disable_assertions = disable_assertions
88 self.test_pkg = test_pkg 87 self.test_pkg = test_pkg
89 self.ports_to_forward = ports_to_forward 88 self.ports_to_forward = ports_to_forward
90 self.install_apk = install_apk
91 89
92 #override 90 #override
93 def InstallTestPackage(self): 91 def InstallTestPackage(self):
94 if self.install_apk: 92 self.test_pkg.Install(self.adb)
95 self.test_pkg.Install(self.adb)
96 93
97 #override 94 #override
98 def PushDataDeps(self): 95 def PushDataDeps(self):
99 # TODO(frankf): Implement a general approach for copying/installing 96 # TODO(frankf): Implement a general approach for copying/installing
100 # once across test runners. 97 # once across test runners.
101 if TestRunner._DEVICE_HAS_TEST_FILES.get(self.device, False): 98 if TestRunner._DEVICE_HAS_TEST_FILES.get(self.device, False):
102 logging.warning('Already copied test files to device %s, skipping.', 99 logging.warning('Already copied test files to device %s, skipping.',
103 self.device) 100 self.device)
104 return 101 return
105 102
(...skipping 246 matching lines...) Expand 10 before | Expand all | Expand 10 after
352 duration_ms = 0 349 duration_ms = 0
353 message = str(e) 350 message = str(e)
354 if not message: 351 if not message:
355 message = 'No information.' 352 message = 'No information.'
356 results.AddResult(test_result.InstrumentationTestResult( 353 results.AddResult(test_result.InstrumentationTestResult(
357 test, base_test_result.ResultType.CRASH, start_date_ms, duration_ms, 354 test, base_test_result.ResultType.CRASH, start_date_ms, duration_ms,
358 log=message)) 355 log=message))
359 raw_result = None 356 raw_result = None
360 self.TestTeardown(test, raw_result) 357 self.TestTeardown(test, raw_result)
361 return (results, None if results.DidRunPass() else test) 358 return (results, None if results.DidRunPass() else test)
OLDNEW
« no previous file with comments | « build/android/pylib/instrumentation/setup.py ('k') | build/android/test_runner.py » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698