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

Unified Diff: build/android/pylib/test_package_apk.py

Issue 11649008: Reorganize Android's test scripts into packages. (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 side-by-side diff with in-line comments
Download patch
« no previous file with comments | « build/android/pylib/test_package.py ('k') | build/android/pylib/test_package_executable.py » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: build/android/pylib/test_package_apk.py
diff --git a/build/android/pylib/test_package_apk.py b/build/android/pylib/test_package_apk.py
deleted file mode 100644
index e43ef751fb1d068a245f351ac92cce2c6622a551..0000000000000000000000000000000000000000
--- a/build/android/pylib/test_package_apk.py
+++ /dev/null
@@ -1,120 +0,0 @@
-# Copyright (c) 2012 The Chromium Authors. All rights reserved.
-# Use of this source code is governed by a BSD-style license that can be
-# found in the LICENSE file.
-
-
-import os
-import shlex
-import sys
-import tempfile
-import time
-
-import android_commands
-import constants
-from android_commands import errors
-from test_package import TestPackage
-from pylib import pexpect
-
-class TestPackageApk(TestPackage):
- """A helper class for running APK-based native tests.
-
- Args:
- adb: ADB interface the tests are using.
- device: Device to run the tests.
- test_suite: A specific test suite to run, empty to run all.
- timeout: Timeout for each test.
- cleanup_test_files: Whether or not to cleanup test files on device.
- tool: Name of the Valgrind tool.
- dump_debug_info: A debug_info object.
- """
-
- def __init__(self, adb, device, test_suite, timeout,
- cleanup_test_files, tool, dump_debug_info):
- TestPackage.__init__(self, adb, device, test_suite, timeout,
- cleanup_test_files, tool, dump_debug_info)
-
- def _CreateTestRunnerScript(self, options):
- command_line_file = tempfile.NamedTemporaryFile()
- # GTest expects argv[0] to be the executable path.
- command_line_file.write(self.test_suite_basename + ' ' + options)
- command_line_file.flush()
- self.adb.PushIfNeeded(command_line_file.name,
- constants.TEST_EXECUTABLE_DIR +
- '/chrome-native-tests-command-line')
-
- def _GetGTestReturnCode(self):
- return None
-
- def _GetFifo(self):
- # The test.fifo path is determined by:
- # testing/android/java/src/org/chromium/native_test/
- # ChromeNativeTestActivity.java and
- # testing/android/native_test_launcher.cc
- return '/data/data/org.chromium.native_test/files/test.fifo'
-
- def _ClearFifo(self):
- self.adb.RunShellCommand('rm -f ' + self._GetFifo())
-
- def _WatchFifo(self, timeout, logfile=None):
- for i in range(10):
- if self.adb.FileExistsOnDevice(self._GetFifo()):
- print 'Fifo created...'
- break
- time.sleep(i)
- else:
- raise errors.DeviceUnresponsiveError(
- 'Unable to find fifo on device %s ' % self._GetFifo())
- args = shlex.split(self.adb.Adb()._target_arg)
- args += ['shell', 'cat', self._GetFifo()]
- return pexpect.spawn('adb', args, timeout=timeout, logfile=logfile)
-
- def GetAllTests(self):
- """Returns a list of all tests available in the test suite."""
- self._CreateTestRunnerScript('--gtest_list_tests')
- try:
- self.tool.SetupEnvironment()
- # Clear and start monitoring logcat.
- self._ClearFifo()
- self.adb.RunShellCommand(
- 'am start -n '
- 'org.chromium.native_test/'
- 'org.chromium.native_test.ChromeNativeTestActivity')
- # Wait for native test to complete.
- p = self._WatchFifo(timeout=30 * self.tool.GetTimeoutScale())
- p.expect("<<ScopedMainEntryLogger")
- p.close()
- finally:
- self.tool.CleanUpEnvironment()
- # We need to strip the trailing newline.
- content = [line.rstrip() for line in p.before.splitlines()]
- ret = self._ParseGTestListTests(content)
- return ret
-
- def CreateTestRunnerScript(self, gtest_filter, test_arguments):
- self._CreateTestRunnerScript('--gtest_filter=%s %s' % (gtest_filter,
- test_arguments))
-
- def RunTestsAndListResults(self):
- try:
- self.tool.SetupEnvironment()
- self._ClearFifo()
- self.adb.RunShellCommand(
- 'am start -n '
- 'org.chromium.native_test/'
- 'org.chromium.native_test.ChromeNativeTestActivity')
- finally:
- self.tool.CleanUpEnvironment()
- logfile = android_commands.NewLineNormalizer(sys.stdout)
- return self._WatchTestOutput(self._WatchFifo(timeout=10, logfile=logfile))
-
- def StripAndCopyExecutable(self):
- self.tool.CopyFiles()
- # Always uninstall the previous one (by activity name); we don't
- # know what was embedded in it.
- self.adb.ManagedInstall(self.test_suite_full, False,
- package_name='org.chromium.native_test')
-
- def _GetTestSuiteBaseName(self):
- """Returns the base name of the test suite."""
- # APK test suite names end with '-debug.apk'
- return os.path.basename(self.test_suite).rsplit('-debug', 1)[0]
« no previous file with comments | « build/android/pylib/test_package.py ('k') | build/android/pylib/test_package_executable.py » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698