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

Unified Diff: scripts/slave/ios/test_runner.py

Issue 2229183002: Use iossim/test-without-building for Earlgrey tests. (Closed) Base URL: https://chromium.googlesource.com/chromium/tools/build.git@master
Patch Set: Remove unused arg Created 4 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 side-by-side diff with in-line comments
Download patch
« no previous file with comments | « scripts/slave/ios/run.py ('k') | scripts/slave/recipe_modules/ios/api.py » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: scripts/slave/ios/test_runner.py
diff --git a/scripts/slave/ios/test_runner.py b/scripts/slave/ios/test_runner.py
index 7aa80857bb8553eb9735c8a015e8423fa0d8537f..afde43883d966efe4c2908e90b0b60f2ca508c41 100755
--- a/scripts/slave/ios/test_runner.py
+++ b/scripts/slave/ios/test_runner.py
@@ -91,6 +91,13 @@ class SimulatorNotFoundError(TestRunnerError):
'Simulator does not exist: %s.' % iossim_path)
+class XctestNotFoundError(TestRunnerError):
+ """The xctest intended to be run was not found."""
+ def __init__(self, xctest_path):
+ super(XctestNotFoundError, self).__init__(
+ 'Xctest does not exist: %s.' % xctest_path)
+
+
class AppLaunchError(TestRunnerError):
"""There was an error launching the app."""
pass
@@ -786,8 +793,6 @@ class XCTestRunner(TestRunner):
def __init__(
self,
app_path,
- test_host,
- test_project_dir,
xcode_version=None,
gs_bucket=None,
perf_bot_name=None,
@@ -803,8 +808,6 @@ class XCTestRunner(TestRunner):
Args:
app_path: Full path to the compiled app to run.
- test_host: Name of the compiled test host app to run tests.
- test_project_dir: Directory of the dummy test project.
xcode_version: Version of Xcode to use.
gs_bucket: Google Storage bucket to upload test data to, or None if the
test data should not be uploaded.
@@ -837,10 +840,6 @@ class XCTestRunner(TestRunner):
xcode_version=xcode_version,
)
self.app_path = os.path.abspath(app_path)
- self.test_host_name = test_host
- # Test target name is its host name without '_host' suffix.
- self.test_target_name = test_host.rsplit('_', 1)[0]
- self.test_project_dir = test_project_dir
self.timeout = '120'
self.homedir = ''
self.start_time = None
@@ -857,8 +856,7 @@ class XCTestRunner(TestRunner):
def GetLaunchEnvironment(self):
"""Returns the environment which is used to run the xctest.
"""
- env = dict(os.environ, APP_TARGET_NAME=self.test_host_name,
- TEST_TARGET_NAME=self.test_target_name,
+ env = dict(os.environ,
NSUnbufferedIO='YES')
return env
@@ -1020,8 +1018,8 @@ class SimulatorXCTestRunner(XCTestRunner):
def __init__(
self,
app_path,
- test_host,
- test_project_dir,
+ xctest_path,
+ iossim_path,
platform,
version,
xcode_version=None,
@@ -1039,8 +1037,8 @@ class SimulatorXCTestRunner(XCTestRunner):
Args:
app_path: Full path to the compiled app to run.
- test_host: Name of the compiled test host app to run tests.
- test_project_dir: Directory of the dummy test project.
+ iossim_path: Full path to the iossim executable to launch.
+ xctest_path: Full path to the compiled test bundle.
platform: The platform to simulate. Supported values can be found by
running 'xcodebuild -list'. e.g. 'iPhone 5', 'iPhone 5s'.
version: The iOS version the simulator should be running. Supported values
@@ -1064,8 +1062,6 @@ class SimulatorXCTestRunner(XCTestRunner):
"""
super(SimulatorXCTestRunner, self).__init__(
app_path,
- test_host,
- test_project_dir,
env_vars=env_vars,
gs_bucket=gs_bucket,
perf_bot_name=perf_bot_name,
@@ -1077,6 +1073,15 @@ class SimulatorXCTestRunner(XCTestRunner):
test_args=test_args,
xcode_version=xcode_version,
)
+
+ if not os.path.exists(iossim_path):
+ raise SimulatorNotFoundError(iossim_path)
+
+ if not os.path.exists(xctest_path):
+ raise XctestNotFoundError(xctest_path)
+
+ self.iossim_path = iossim_path
+ self.xctest_path = xctest_path
self.platform = platform
self.version = version
@@ -1265,19 +1270,12 @@ class SimulatorXCTestRunner(XCTestRunner):
Returns:
A list whose elements are the args representing the command.
"""
- built_dir = os.path.split(self.app_path)[0]
-
cmd = [
- 'xcodebuild', 'test-without-building',
- 'BUILT_PRODUCTS_DIR=%s' % built_dir,
- '-project', self.test_project_dir,
- '-scheme','TestProject',
- '-destination','platform=iOS Simulator,name=%s,OS=%s'
- % (self.platform, self.version),
- '-archivePath', self.homedir,
- 'APP_TARGET_NAME=%s' % self.test_host_name,
- 'TEST_TARGET_NAME=%s' % self.test_target_name,
- 'NSUnbufferedIO=YES'
+ self.iossim_path,
+ '-d', self.platform,
+ '-s', self.version,
+ self.app_path,
+ self.xctest_path
]
return cmd
@@ -1313,8 +1311,8 @@ class DeviceXCTestRunner(XCTestRunner):
def __init__(
self,
app_path,
- test_host,
- test_project_dir,
+ xctest_path,
+ xcodeproj_path,
xcode_version=None,
gs_bucket=None,
perf_bot_name=None,
@@ -1354,8 +1352,6 @@ class DeviceXCTestRunner(XCTestRunner):
"""
super(DeviceXCTestRunner, self).__init__(
app_path,
- test_host,
- test_project_dir,
env_vars=env_vars,
gs_bucket=gs_bucket,
perf_bot_name=perf_bot_name,
@@ -1367,6 +1363,10 @@ class DeviceXCTestRunner(XCTestRunner):
test_args=test_args,
xcode_version=xcode_version,
)
+ # The scheme name is the app name without the '.app' suffix.
+ app_name = os.path.split(self.app_path)[1]
+ self.scheme_name = app_name.split('.', 1)[0]
+ self.xcodeproj_path = xcodeproj_path
self.cfbundleid = utils.call(
utils.PLIST_BUDDY,
'-c', 'Print:CFBundleIdentifier',
@@ -1427,19 +1427,11 @@ class DeviceXCTestRunner(XCTestRunner):
Returns:
A list whose elements are the args representing the command.
"""
- built_dir = os.path.split(self.app_path)[0]
-
cmd = [
'xcodebuild', 'test-without-building',
- 'BUILT_PRODUCTS_DIR=%s' % built_dir,
- 'CONFIGURATION_BUILD_DIR=%s' % built_dir,
- '-project', self.test_project_dir,
- '-configuration', 'iphoneos',
- '-scheme', 'TestProject',
- '-destination','id=%s' % self.device_id,
- 'APP_TARGET_NAME=%s' % self.test_host_name,
- 'TEST_TARGET_NAME=%s' % self.test_target_name,
- 'NSUnbufferedIO=YES'
+ '-project', self.xcodeproj_path,
+ '-scheme', self.scheme_name,
+ '-destination', 'id=%s' % self.device_id
]
return cmd
« no previous file with comments | « scripts/slave/ios/run.py ('k') | scripts/slave/recipe_modules/ios/api.py » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698