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

Unified Diff: testing/iossim/iossim.mm

Issue 1796093003: Remove support for old version of Xcode from iossim. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Rebase on origin/master and remove unused const variables Created 4 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 | « testing/iossim/iossim.gyp ('k') | no next file » | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: testing/iossim/iossim.mm
diff --git a/testing/iossim/iossim.mm b/testing/iossim/iossim.mm
index d66296f0a3e7e4284303123a53a9a23a7ad9b13f..a746bc4c03c3043a1f76870ae2f3e4a0cf87e9cb 100644
--- a/testing/iossim/iossim.mm
+++ b/testing/iossim/iossim.mm
@@ -21,16 +21,9 @@
// However, there are some forward declarations required to get things to
// compile.
-// TODO(lliabraa): Once all builders are on Xcode 6 this ifdef can be removed
-// (crbug.com/385030).
-#if defined(IOSSIM_USE_XCODE_6)
@class DVTStackBacktrace;
#import "DVTFoundation.h"
-#endif // IOSSIM_USE_XCODE_6
-// TODO(lliabraa): Once all builders are on Xcode 6 this ifdef can be removed
-// (crbug.com/385030).
-#if defined(IOSSIM_USE_XCODE_6)
@protocol SimBridge;
@class DVTSimulatorApplication;
@class SimDeviceSet;
@@ -39,7 +32,6 @@
@class SimRuntime;
@class SimServiceConnectionManager;
#import "CoreSimulator.h"
-#endif // IOSSIM_USE_XCODE_6
@interface DVTPlatform : NSObject
+ (BOOL)loadAllPlatformsReturningError:(id*)arg1;
@@ -77,10 +69,6 @@ namespace {
const char* const kUserHomeEnvVariable = "CFFIXED_USER_HOME";
const char* const kHomeEnvVariable = "HOME";
-// Device family codes for iPhone and iPad.
-const int kIPhoneFamily = 1;
-const int kIPadFamily = 2;
-
// Max number of seconds to wait for the simulator session to start.
// This timeout must allow time to start up iOS Simulator, install the app
// and perform any other black magic that is encoded in the
@@ -118,7 +106,6 @@ const int kExitInvalidArguments = 2;
const int kExitInitializationFailure = 3;
const int kExitAppFailedToStart = 4;
const int kExitAppCrashed = 5;
-const int kExitUnsupportedXcodeVersion = 6;
void LogError(NSString* format, ...) {
va_list list;
@@ -185,74 +172,17 @@ NSString* GetOutputFromTask(NSString* toolPath, NSArray* args) {
encoding:NSUTF8StringEncoding] autorelease];
}
-// Finds the Xcode version via xcodebuild -version. Output from xcodebuild is
-// expected to look like:
-// Xcode <version>
-// Build version 5B130a
-// where <version> is the string returned by this function (e.g. 6.0).
-NSString* FindXcodeVersion() {
- NSString* output = GetOutputFromTask(@"/usr/bin/xcodebuild",
- @[ @"-version" ]);
- // Scan past the "Xcode ", then scan the rest of the line into |version|.
- NSScanner* scanner = [NSScanner scannerWithString:output];
- BOOL valid = [scanner scanString:@"Xcode " intoString:NULL];
- NSString* version;
- valid =
- [scanner scanUpToCharactersFromSet:[NSCharacterSet newlineCharacterSet]
- intoString:&version];
- if (!valid) {
- LogError(@"Unable to find Xcode version. 'xcodebuild -version' "
- @"returned \n%@", output);
- return nil;
- }
- return version;
-}
-
-// Returns true if iossim is running with Xcode 6 or later installed on the
-// host.
-BOOL IsRunningWithXcode6OrLater() {
- static NSString* xcodeVersion = FindXcodeVersion();
- if (!xcodeVersion) {
- return false;
- }
- NSArray* components = [xcodeVersion componentsSeparatedByString:@"."];
- if ([components count] < 1) {
- return false;
- }
- NSInteger majorVersion = [[components objectAtIndex:0] integerValue];
- return majorVersion >= 6;
-}
-
// Prints supported devices and SDKs.
void PrintSupportedDevices() {
- if (IsRunningWithXcode6OrLater()) {
-#if defined(IOSSIM_USE_XCODE_6)
- printf("Supported device/SDK combinations:\n");
- Class simDeviceSetClass = FindClassByName(@"SimDeviceSet");
- id deviceSet =
- [simDeviceSetClass setForSetPath:[simDeviceSetClass defaultSetPath]];
- for (id simDevice in [deviceSet availableDevices]) {
- NSString* deviceInfo =
- [NSString stringWithFormat:@" -d '%@' -s '%@'\n",
- [simDevice name], [[simDevice runtime] versionString]];
- printf("%s", [deviceInfo UTF8String]);
- }
-#endif // IOSSIM_USE_XCODE_6
- } else {
- printf("Supported SDK versions:\n");
- Class rootClass = FindClassByName(@"DTiPhoneSimulatorSystemRoot");
- for (id root in [rootClass knownRoots]) {
- printf(" '%s'\n", [[root sdkVersion] UTF8String]);
- }
- // This is the list of devices supported on Xcode 5.1.x.
- printf("Supported devices:\n");
- printf(" 'iPhone'\n");
- printf(" 'iPhone Retina (3.5-inch)'\n");
- printf(" 'iPhone Retina (4-inch)'\n");
- printf(" 'iPhone Retina (4-inch 64-bit)'\n");
- printf(" 'iPad'\n");
- printf(" 'iPad Retina'\n");
- printf(" 'iPad Retina (64-bit)'\n");
+ printf("Supported device/SDK combinations:\n");
+ Class simDeviceSetClass = FindClassByName(@"SimDeviceSet");
+ id deviceSet =
+ [simDeviceSetClass setForSetPath:[simDeviceSetClass defaultSetPath]];
+ for (id simDevice in [deviceSet availableDevices]) {
+ NSString* deviceInfo =
+ [NSString stringWithFormat:@" -d '%@' -s '%@'\n",
+ [simDevice name], [[simDevice runtime] versionString]];
+ printf("%s", [deviceInfo UTF8String]);
}
}
} // namespace
@@ -312,21 +242,15 @@ void PrintSupportedDevices() {
NSAutoreleasePool* pool = [[NSAutoreleasePool alloc] init];
NSFileHandle* simio = [NSFileHandle fileHandleForReadingAtPath:stdioPath_];
- if (IsRunningWithXcode6OrLater()) {
-#if defined(IOSSIM_USE_XCODE_6)
- // With iOS 8 simulators on Xcode 6, the app output is relative to the
- // simulator's data directory.
- NSString* versionString =
- [[[session sessionConfig] simulatedSystemRoot] sdkVersion];
- NSInteger majorVersion = [[[versionString componentsSeparatedByString:@"."]
- objectAtIndex:0] intValue];
- if (majorVersion >= 8) {
- NSString* dataPath = session.sessionConfig.device.dataPath;
- NSString* appOutput =
- [dataPath stringByAppendingPathComponent:stdioPath_];
- simio = [NSFileHandle fileHandleForReadingAtPath:appOutput];
- }
-#endif // IOSSIM_USE_XCODE_6
+ NSString* versionString =
+ [[[session sessionConfig] simulatedSystemRoot] sdkVersion];
+ NSInteger majorVersion = [[[versionString componentsSeparatedByString:@"."]
+ objectAtIndex:0] intValue];
+ if (majorVersion >= 8) {
+ NSString* dataPath = session.sessionConfig.device.dataPath;
+ NSString* appOutput =
+ [dataPath stringByAppendingPathComponent:stdioPath_];
+ simio = [NSFileHandle fileHandleForReadingAtPath:appOutput];
}
NSFileHandle* standardOutput = [NSFileHandle fileHandleWithStandardOutput];
// Copy data to stdout/stderr while the app is running.
@@ -477,19 +401,9 @@ void PrintSupportedDevices() {
// Otherwise, the iOS Simulator's system logging is sandboxed, so parse the
// sandboxed system.log file for known errors.
NSString* path;
- if (IsRunningWithXcode6OrLater()) {
-#if defined(IOSSIM_USE_XCODE_6)
- NSString* dataPath = session.sessionConfig.device.dataPath;
- path =
- [dataPath stringByAppendingPathComponent:@"Library/Logs/system.log"];
-#endif // IOSSIM_USE_XCODE_6
- } else {
- NSString* relativePathToSystemLog =
- [NSString stringWithFormat:
- @"Library/Logs/iOS Simulator/%@/system.log", versionString];
- path = [simulatorHome_
- stringByAppendingPathComponent:relativePathToSystemLog];
- }
+ NSString* dataPath = session.sessionConfig.device.dataPath;
+ path =
+ [dataPath stringByAppendingPathComponent:@"Library/Logs/system.log"];
NSFileManager* fileManager = [NSFileManager defaultManager];
if ([fileManager fileExistsAtPath:path]) {
NSString* content =
@@ -586,22 +500,16 @@ NSBundle* LoadSimulatorFramework(NSString* developerDir) {
// The path within the developer dir of the private Simulator frameworks.
NSString* simulatorFrameworkRelativePath;
- if (IsRunningWithXcode6OrLater()) {
- simulatorFrameworkRelativePath =
- @"../SharedFrameworks/DVTiPhoneSimulatorRemoteClient.framework";
- NSString* const kCoreSimulatorRelativePath =
- @"Library/PrivateFrameworks/CoreSimulator.framework";
- NSString* coreSimulatorPath = [developerDir
- stringByAppendingPathComponent:kCoreSimulatorRelativePath];
- NSBundle* coreSimulatorBundle =
- [NSBundle bundleWithPath:coreSimulatorPath];
- if (![coreSimulatorBundle load])
- return nil;
- } else {
- simulatorFrameworkRelativePath =
- @"Platforms/iPhoneSimulator.platform/Developer/Library/PrivateFrameworks/"
- @"DVTiPhoneSimulatorRemoteClient.framework";
- }
+ simulatorFrameworkRelativePath =
+ @"../SharedFrameworks/DVTiPhoneSimulatorRemoteClient.framework";
+ NSString* const kCoreSimulatorRelativePath =
+ @"Library/PrivateFrameworks/CoreSimulator.framework";
+ NSString* coreSimulatorPath = [developerDir
+ stringByAppendingPathComponent:kCoreSimulatorRelativePath];
+ NSBundle* coreSimulatorBundle =
+ [NSBundle bundleWithPath:coreSimulatorPath];
+ if (![coreSimulatorBundle load])
+ return nil;
NSString* simBundlePath = [developerDir
stringByAppendingPathComponent:simulatorFrameworkRelativePath];
NSBundle* simBundle = [NSBundle bundleWithPath:simBundlePath];
@@ -633,7 +541,6 @@ DTiPhoneSimulatorApplicationSpecifier* BuildAppSpec(NSString* appPath) {
// valid.
DTiPhoneSimulatorSystemRoot* BuildSystemRoot(NSString* sdkVersion) {
Class systemRootClass = FindClassByName(@"DTiPhoneSimulatorSystemRoot");
-#if defined(IOSSIM_USE_XCODE_6)
Class simRuntimeClass = FindClassByName(@"SimRuntime");
NSArray* sorted =
[[simRuntimeClass supportedRuntimes] sortedArrayUsingDescriptors:@[
@@ -642,9 +549,6 @@ DTiPhoneSimulatorSystemRoot* BuildSystemRoot(NSString* sdkVersion) {
NSString* versionString = [[sorted lastObject] versionString];
DTiPhoneSimulatorSystemRoot* systemRoot =
[systemRootClass rootWithSDKVersion:versionString];
-#else
- DTiPhoneSimulatorSystemRoot* systemRoot = [systemRootClass defaultRoot];
-#endif
if (sdkVersion)
systemRoot = [systemRootClass rootWithSDKVersion:sdkVersion];
@@ -674,47 +578,43 @@ DTiPhoneSimulatorSessionConfig* BuildSessionConfig(
sessionConfig.simulatedDeviceInfoName = deviceName;
sessionConfig.simulatedDeviceFamily = deviceFamily;
- if (IsRunningWithXcode6OrLater()) {
-#if defined(IOSSIM_USE_XCODE_6)
- Class simDeviceTypeClass = FindClassByName(@"SimDeviceType");
- id simDeviceType =
- [simDeviceTypeClass supportedDeviceTypesByAlias][deviceName];
- Class simRuntimeClass = FindClassByName(@"SimRuntime");
- NSString* identifier = systemRoot.runtime.identifier;
- id simRuntime = [simRuntimeClass supportedRuntimesByIdentifier][identifier];
-
- // Attempt to use an existing device, but create one if a suitable match
- // can't be found. For example, if the simulator is running with a
- // non-default home directory (e.g. via iossim's -u command line arg) then
- // there won't be any devices so one will have to be created.
- Class simDeviceSetClass = FindClassByName(@"SimDeviceSet");
- id deviceSet =
- [simDeviceSetClass setForSetPath:[simDeviceSetClass defaultSetPath]];
- id simDevice = nil;
- for (id device in [deviceSet availableDevices]) {
- if ([device runtime] == simRuntime &&
- [device deviceType] == simDeviceType) {
- simDevice = device;
- break;
- }
+ Class simDeviceTypeClass = FindClassByName(@"SimDeviceType");
+ id simDeviceType =
+ [simDeviceTypeClass supportedDeviceTypesByAlias][deviceName];
+ Class simRuntimeClass = FindClassByName(@"SimRuntime");
+ NSString* identifier = systemRoot.runtime.identifier;
+ id simRuntime = [simRuntimeClass supportedRuntimesByIdentifier][identifier];
+
+ // Attempt to use an existing device, but create one if a suitable match
+ // can't be found. For example, if the simulator is running with a
+ // non-default home directory (e.g. via iossim's -u command line arg) then
+ // there won't be any devices so one will have to be created.
+ Class simDeviceSetClass = FindClassByName(@"SimDeviceSet");
+ id deviceSet =
+ [simDeviceSetClass setForSetPath:[simDeviceSetClass defaultSetPath]];
+ id simDevice = nil;
+ for (id device in [deviceSet availableDevices]) {
+ if ([device runtime] == simRuntime &&
+ [device deviceType] == simDeviceType) {
+ simDevice = device;
+ break;
}
- if (!simDevice) {
- NSError* error = nil;
- // n.b. only the device name is necessary because the iOS Simulator menu
- // already splits devices by runtime version.
- NSString* name = [NSString stringWithFormat:@"iossim - %@ ", deviceName];
- simDevice = [deviceSet createDeviceWithType:simDeviceType
- runtime:simRuntime
- name:name
- error:&error];
- if (error) {
- LogError(@"Failed to create device: %@", error);
- exit(kExitInitializationFailure);
- }
+ }
+ if (!simDevice) {
+ NSError* error = nil;
+ // n.b. only the device name is necessary because the iOS Simulator menu
+ // already splits devices by runtime version.
+ NSString* name = [NSString stringWithFormat:@"iossim - %@ ", deviceName];
+ simDevice = [deviceSet createDeviceWithType:simDeviceType
+ runtime:simRuntime
+ name:name
+ error:&error];
+ if (error) {
+ LogError(@"Failed to create device: %@", error);
+ exit(kExitInitializationFailure);
}
- sessionConfig.device = simDevice;
-#endif // IOSSIM_USE_XCODE_6
}
+ sessionConfig.device = simDevice;
return sessionConfig;
}
@@ -795,16 +695,6 @@ BOOL InitializeSimulatorUserHome(NSString* userHomePath) {
return YES;
}
-// Performs a case-insensitive search to see if |stringToSearch| begins with
-// |prefixToFind|. Returns true if a match is found.
-BOOL CaseInsensitivePrefixSearch(NSString* stringToSearch,
- NSString* prefixToFind) {
- NSStringCompareOptions options = (NSAnchoredSearch | NSCaseInsensitiveSearch);
- NSRange range = [stringToSearch rangeOfString:prefixToFind
- options:options];
- return range.location != NSNotFound;
-}
-
// Prints the usage information to stderr.
void PrintUsage() {
fprintf(stderr, "Usage: iossim [-d device] [-s sdkVersion] [-u homeDir] "
@@ -828,20 +718,9 @@ void PrintUsage() {
}
} // namespace
-void EnsureSupportForCurrentXcodeVersion() {
- if (IsRunningWithXcode6OrLater()) {
-#if !IOSSIM_USE_XCODE_6
- LogError(@"Running on Xcode 6, but Xcode 6 support was not compiled in.");
- exit(kExitUnsupportedXcodeVersion);
-#endif // IOSSIM_USE_XCODE_6
- }
-}
-
int main(int argc, char* const argv[]) {
NSAutoreleasePool* pool = [[NSAutoreleasePool alloc] init];
- EnsureSupportForCurrentXcodeVersion();
-
// basename() may modify the passed in string and it returns a pointer to an
// internal buffer. Give it a copy to modify, and copy what it returns.
char* worker = strdup(argv[0]);
@@ -857,8 +736,7 @@ int main(int argc, char* const argv[]) {
NSString* appPath = nil;
NSString* appName = nil;
NSString* sdkVersion = nil;
- NSString* deviceName =
- IsRunningWithXcode6OrLater() ? @"iPhone 5s" : @"iPhone";
+ NSString* deviceName = @"iPhone 5s";
NSString* simHomePath = nil;
NSMutableArray* appArgs = [NSMutableArray array];
NSMutableDictionary* appEnv = [NSMutableDictionary dictionary];
@@ -965,26 +843,11 @@ int main(int argc, char* const argv[]) {
// Determine the deviceFamily based on the deviceName
NSNumber* deviceFamily = nil;
- if (IsRunningWithXcode6OrLater()) {
-#if defined(IOSSIM_USE_XCODE_6)
- Class simDeviceTypeClass = FindClassByName(@"SimDeviceType");
- if ([simDeviceTypeClass supportedDeviceTypesByAlias][deviceName] == nil) {
- LogError(@"Invalid device name: %@.", deviceName);
- PrintSupportedDevices();
- exit(kExitInvalidArguments);
- }
-#endif // IOSSIM_USE_XCODE_6
- } else {
- if (!deviceName || CaseInsensitivePrefixSearch(deviceName, @"iPhone")) {
- deviceFamily = [NSNumber numberWithInt:kIPhoneFamily];
- } else if (CaseInsensitivePrefixSearch(deviceName, @"iPad")) {
- deviceFamily = [NSNumber numberWithInt:kIPadFamily];
- }
- else {
- LogError(@"Invalid device name: %@. Must begin with 'iPhone' or 'iPad'",
- deviceName);
- exit(kExitInvalidArguments);
- }
+ Class simDeviceTypeClass = FindClassByName(@"SimDeviceType");
+ if ([simDeviceTypeClass supportedDeviceTypesByAlias][deviceName] == nil) {
+ LogError(@"Invalid device name: %@.", deviceName);
+ PrintSupportedDevices();
+ exit(kExitInvalidArguments);
}
// Set up the user home directory for the simulator only if a non-default
« no previous file with comments | « testing/iossim/iossim.gyp ('k') | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698