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] |