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

Unified Diff: build/android/pylib/instrumentation/test_runner.py

Issue 13577003: [Android] Specify dependency files for instrumentation tests. (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: Minor change: Also add ssl/certs dep to contentshell Created 7 years, 9 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 side-by-side diff with in-line comments
Download patch
« no previous file with comments | « build/android/pylib/instrumentation/test_package.py ('k') | no next file » | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: build/android/pylib/instrumentation/test_runner.py
diff --git a/build/android/pylib/instrumentation/test_runner.py b/build/android/pylib/instrumentation/test_runner.py
index 4128b0f9ee667496fe12bcfcfa763d7708195a90..55c7541c95b894a801f657480e699f5f27cb3728 100644
--- a/build/android/pylib/instrumentation/test_runner.py
+++ b/build/android/pylib/instrumentation/test_runner.py
@@ -27,6 +27,23 @@ import test_result
_PERF_TEST_ANNOTATION = 'PerfTest'
+def _GetDataFilesForTestSuite(test_suite_basename):
+ """Returns a list of data files/dirs needed by the test suite.
+
+ Args:
+ test_suite_basename: The test suite basename for which to return file paths.
+
+ Returns:
+ A list of test file and directory paths.
+ """
+ test_files = []
+ if test_suite_basename in ['ChromeTest', 'ContentShellTest']:
+ test_files += [
+ 'net/data/ssl/certificates/',
+ ]
+ return test_files
+
+
class TestRunner(base_test_runner.BaseTestRunner):
"""Responsible for running a series of tests connected to a single device."""
@@ -106,12 +123,24 @@ class TestRunner(base_test_runner.BaseTestRunner):
TestRunner._COVERAGE_WEB_ROOT_DIR +
'] does not exist.')
- def CopyTestFilesOnce(self):
- """Pushes the test data files to the device. Installs the apk if opted."""
+ #override.
+ def PushDependencies(self):
+ # TODO(frankf): Implement a general approach for copying/installing
+ # once across test runners.
if TestRunner._DEVICE_HAS_TEST_FILES.get(self.device, False):
logging.warning('Already copied test files to device %s, skipping.',
self.device)
return
+
+ test_data = _GetDataFilesForTestSuite(self.test_pkg.GetApkName())
+ if test_data:
+ # Make sure SD card is ready.
+ self.adb.WaitForSdCardReady(20)
+ for data in test_data:
+ self.CopyTestData([data], self.adb.GetExternalStorage())
+
+ # TODO(frankf): Specify test data in this file as opposed to passing
+ # as command-line.
for dest_host_pair in self.test_data:
dst_src = dest_host_pair.split(':',1)
dst_layer = dst_src[0]
@@ -121,11 +150,8 @@ class TestRunner(base_test_runner.BaseTestRunner):
self.adb.PushIfNeeded(host_test_files_path,
self.adb.GetExternalStorage() + '/' +
TestRunner._DEVICE_DATA_DIR + '/' + dst_layer)
- if self.is_uiautomator_test:
+ if self.is_uiautomator_test or self.install_apk:
self.test_pkg.Install(self.adb)
- elif self.install_apk:
- self.test_pkg.Install(self.adb)
-
self.tool.CopyFiles()
TestRunner._DEVICE_HAS_TEST_FILES[self.device] = True
@@ -206,7 +232,6 @@ class TestRunner(base_test_runner.BaseTestRunner):
if self.adb.SetJavaAssertsEnabled(enable=not self.disable_assertions):
self.adb.Reboot(full_reboot=False)
- self.CopyTestFilesOnce()
# We give different default value to launch HTTP server based on shard index
# because it may have race condition when multiple processes are trying to
# launch lighttpd with same port at same time.
« no previous file with comments | « build/android/pylib/instrumentation/test_package.py ('k') | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698