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

Side by Side Diff: build/android/pylib/gtest/test_package.py

Issue 20649002: [Android] Dedup content_browsertests test setup from gtests. (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: Addressed bulach's comments Created 7 years, 4 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/gtest/setup.py ('k') | build/android/pylib/gtest/test_package_apk.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 """Base class representing GTest test packages.""" 5 """Base class representing GTest test packages."""
6 6
7 import os 7 import logging
8
9 from pylib import constants
10 8
11 9
12 class TestPackage(object): 10 class TestPackage(object):
11
13 """A helper base class for both APK and stand-alone executables. 12 """A helper base class for both APK and stand-alone executables.
14 13
15 Args: 14 Args:
16 adb: ADB interface the tests are using. 15 suite_name: Name of the test suite (e.g. base_unittests).
17 device: Device to run the tests.
18 suite_path_full: Absolute path to a specific test suite to run,
19 empty to run all.
20 Ex: '/foo/bar/base_unittests-debug.apk', for which
21 self.suite_path_full = '/foo/bar/base_unittests-debug.apk'
22 self.suite_path = '/foo/bar/base_unittests-debug'
23 self.suite_basename = 'base_unittests'
24 self.suite_dirname = '/foo/bar'
25 tool: Name of the Valgrind tool.
26 """ 16 """
17 def __init__(self, suite_name):
18 self.suite_name = suite_name
27 19
28 def __init__(self, adb, device, suite_path_full, tool): 20 def ClearApplicationState(self, adb):
29 self.adb = adb 21 """Clears the application state.
30 self.device = device
31 self.suite_path_full = suite_path_full
32 self.suite_path = os.path.splitext(suite_path_full)[0]
33 self.suite_basename = self._GetTestSuiteBaseName()
34 self.suite_dirname = os.path.dirname(
35 self.suite_path.split(self.suite_basename)[0])
36 self.tool = tool
37 22
38 def ClearApplicationState(self): 23 Args:
39 """Clears the application state.""" 24 adb: Instance of AndroidCommands.
25 """
40 raise NotImplementedError('Method must be overriden.') 26 raise NotImplementedError('Method must be overriden.')
41 27
42 def CreateCommandLineFileOnDevice(self, test_filter, test_arguments): 28 def CreateCommandLineFileOnDevice(self, adb, test_filter, test_arguments):
43 """Creates a test runner script and pushes to the device. 29 """Creates a test runner script and pushes to the device.
44 30
45 Args: 31 Args:
32 adb: Instance of AndroidCommands.
46 test_filter: A test_filter flag. 33 test_filter: A test_filter flag.
47 test_arguments: Additional arguments to pass to the test binary. 34 test_arguments: Additional arguments to pass to the test binary.
48 """ 35 """
49 raise NotImplementedError('Method must be overriden.') 36 raise NotImplementedError('Method must be overriden.')
50 37
51 def GetAllTests(self): 38 def GetAllTests(self, adb):
52 """Returns a list of all tests available in the test suite.""" 39 """Returns a list of all tests available in the test suite.
40
41 Args:
42 adb: Instance of AndroidCommands.
43 """
53 raise NotImplementedError('Method must be overriden.') 44 raise NotImplementedError('Method must be overriden.')
54 45
55 def GetGTestReturnCode(self): 46 def GetGTestReturnCode(self, adb):
56 return None 47 return None
57 48
58 def SpawnTestProcess(self): 49 def SpawnTestProcess(self, adb):
59 """Spawn the test process. 50 """Spawn the test process.
60 51
52 Args:
53 adb: Instance of AndroidCommands.
54
61 Returns: 55 Returns:
62 An instance of pexpect spawn class. 56 An instance of pexpect spawn class.
63 """ 57 """
64 raise NotImplementedError('Method must be overriden.') 58 raise NotImplementedError('Method must be overriden.')
65 59
66 def Install(self): 60 def Install(self, adb):
67 """Install the test package to the device.""" 61 """Install the test package to the device.
62
63 Args:
64 adb: Instance of AndroidCommands.
65 """
68 raise NotImplementedError('Method must be overriden.') 66 raise NotImplementedError('Method must be overriden.')
69 67
70 def _ParseGTestListTests(self, raw_list): 68 def _ParseGTestListTests(self, raw_list):
71 """Parses a raw test list as provided by --gtest_list_tests. 69 """Parses a raw test list as provided by --gtest_list_tests.
72 70
73 Args: 71 Args:
74 raw_list: The raw test listing with the following format: 72 raw_list: The raw test listing with the following format:
75 73
76 IPCChannelTest. 74 IPCChannelTest.
77 SendMessageInChannelConnected 75 SendMessageInChannelConnected
(...skipping 16 matching lines...) Expand all
94 # Ignore any lines with unexpected format. 92 # Ignore any lines with unexpected format.
95 continue 93 continue
96 if test[0] != ' ' and test.endswith('.'): 94 if test[0] != ' ' and test.endswith('.'):
97 current = test 95 current = test
98 continue 96 continue
99 if 'YOU HAVE' in test: 97 if 'YOU HAVE' in test:
100 break 98 break
101 test_name = test[2:] 99 test_name = test[2:]
102 ret += [current + test_name] 100 ret += [current + test_name]
103 return ret 101 return ret
OLDNEW
« no previous file with comments | « build/android/pylib/gtest/setup.py ('k') | build/android/pylib/gtest/test_package_apk.py » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698