| Index: test/ios/gyptest-per-config-settings.py
|
| diff --git a/test/ios/gyptest-per-config-settings.py b/test/ios/gyptest-per-config-settings.py
|
| index 63e9044f992e91490ea734b498c6c6224e2a24b9..7313e563439bbb98c7252389185c63f4c1f566b1 100644
|
| --- a/test/ios/gyptest-per-config-settings.py
|
| +++ b/test/ios/gyptest-per-config-settings.py
|
| @@ -15,11 +15,7 @@ import struct
|
| import subprocess
|
| import sys
|
| import tempfile
|
| -
|
| -if sys.platform == 'darwin':
|
| - print "This test is currently disabled: https://crbug.com/483696."
|
| - sys.exit(0)
|
| -
|
| +import TestMac
|
|
|
| def CheckFileType(file, expected):
|
| proc = subprocess.Popen(['lipo', '-info', file], stdout=subprocess.PIPE)
|
| @@ -67,8 +63,13 @@ def ParseEntitlements(data):
|
| return None
|
| return data[8:]
|
|
|
| -def GetProductVersion():
|
| - args = ['xcodebuild','-version','-sdk','iphoneos','ProductVersion']
|
| +def GetXcodeVersionValue(type):
|
| + args = ['xcodebuild', '-version', '-sdk', 'iphoneos', type]
|
| + job = subprocess.Popen(args, stdout=subprocess.PIPE)
|
| + return job.communicate()[0].strip()
|
| +
|
| +def GetMachineBuild():
|
| + args = ['sw_vers', '-buildVersion']
|
| job = subprocess.Popen(args, stdout=subprocess.PIPE)
|
| return job.communicate()[0].strip()
|
|
|
| @@ -98,45 +99,78 @@ if sys.platform == 'darwin':
|
| test.run_gyp('test-device.gyp', chdir='app-bundle')
|
|
|
| test_configs = ['Default-iphoneos', 'Default']
|
| - # TODO(justincohen): Disabling 'Default-iphoneos' for xcode until bots are
|
| - # configured with signing certs.
|
| - if test.format == 'xcode':
|
| - test_configs.remove('Default-iphoneos')
|
| -
|
| for configuration in test_configs:
|
| test.set_configuration(configuration)
|
| test.build('test-device.gyp', 'test_app', chdir='app-bundle')
|
| - result_file = test.built_file_path('Test App Gyp.bundle/Test App Gyp',
|
| + result_file = test.built_file_path('Test App Gyp.app/Test App Gyp',
|
| chdir='app-bundle')
|
| test.must_exist(result_file)
|
| -
|
| - info_plist = test.built_file_path('Test App Gyp.bundle/Info.plist',
|
| + info_plist = test.built_file_path('Test App Gyp.app/Info.plist',
|
| chdir='app-bundle')
|
| -
|
| - # plistlib doesn't support binary plists, but that's what Xcode creates.
|
| - if test.format == 'xcode':
|
| - ConvertBinaryPlistToXML(info_plist)
|
| plist = plistlib.readPlist(info_plist)
|
| -
|
| + xcode_version = TestMac.Xcode.Version()
|
| + if xcode_version >= '0720':
|
| + if len(plist) != 23:
|
| + print 'plist should have 23 entries, but it has %s' % len(plist)
|
| + test.fail_test()
|
| +
|
| + # Values that will hopefully never change.
|
| + CheckPlistvalue(plist, 'CFBundleDevelopmentRegion', 'English')
|
| + CheckPlistvalue(plist, 'CFBundleExecutable', 'Test App Gyp')
|
| + CheckPlistvalue(plist, 'CFBundleIdentifier', 'com.google.Test App Gyp')
|
| + CheckPlistvalue(plist, 'CFBundleInfoDictionaryVersion', '6.0')
|
| + CheckPlistvalue(plist, 'CFBundleName', 'Test App Gyp')
|
| + CheckPlistvalue(plist, 'CFBundlePackageType', 'APPL')
|
| + CheckPlistvalue(plist, 'CFBundleShortVersionString', '1.0')
|
| + CheckPlistvalue(plist, 'CFBundleSignature', 'ause')
|
| + CheckPlistvalue(plist, 'CFBundleVersion', '1')
|
| + CheckPlistvalue(plist, 'NSMainNibFile', 'MainMenu')
|
| + CheckPlistvalue(plist, 'NSPrincipalClass', 'NSApplication')
|
| CheckPlistvalue(plist, 'UIDeviceFamily', [1, 2])
|
|
|
| + # Values that get pulled from xcodebuild.
|
| + machine_build = GetMachineBuild()
|
| + platform_version = GetXcodeVersionValue('ProductVersion')
|
| + sdk_build = GetXcodeVersionValue('ProductBuildVersion')
|
| + xcode_build = TestMac.Xcode.Build()
|
| +
|
| + # Xcode keeps changing what gets included in executable plists, and it
|
| + # changes between device and simuator builds. Allow the strictest tests for
|
| + # Xcode 7.2 and above.
|
| + if xcode_version >= '0720':
|
| + CheckPlistvalue(plist, 'BuildMachineOSBuild', machine_build)
|
| + CheckPlistvalue(plist, 'DTCompiler', 'com.apple.compilers.llvm.clang.1_0')
|
| + CheckPlistvalue(plist, 'DTPlatformVersion', platform_version)
|
| + CheckPlistvalue(plist, 'DTSDKBuild', sdk_build)
|
| + CheckPlistvalue(plist, 'DTXcode', xcode_version)
|
| + CheckPlistvalue(plist, 'DTXcodeBuild', xcode_build)
|
| + CheckPlistvalue(plist, 'MinimumOSVersion', '8.0')
|
| +
|
| +
|
| if configuration == 'Default-iphoneos':
|
| + platform_name = 'iphoneos'
|
| CheckFileType(result_file, 'armv7')
|
| - CheckPlistvalue(plist, 'DTPlatformVersion', GetProductVersion())
|
| CheckPlistvalue(plist, 'CFBundleSupportedPlatforms', ['iPhoneOS'])
|
| - CheckPlistvalue(plist, 'DTPlatformName', 'iphoneos')
|
| + # Apple keeps changing their mind.
|
| + if xcode_version >= '0720':
|
| + CheckPlistvalue(plist, 'DTPlatformBuild', sdk_build)
|
| else:
|
| + platform_name = 'iphonesimulator'
|
| CheckFileType(result_file, 'i386')
|
| - CheckPlistNotSet(plist, 'DTPlatformVersion')
|
| CheckPlistvalue(plist, 'CFBundleSupportedPlatforms', ['iPhoneSimulator'])
|
| - CheckPlistvalue(plist, 'DTPlatformName', 'iphonesimulator')
|
| + if xcode_version >= '0720':
|
| + CheckPlistvalue(plist, 'DTPlatformBuild', '')
|
| +
|
| + CheckPlistvalue(plist, 'DTPlatformName', platform_name)
|
| + CheckPlistvalue(plist, 'DTSDKName', platform_name + platform_version)
|
| +
|
|
|
| if HasCerts() and configuration == 'Default-iphoneos':
|
| test.build('test-device.gyp', 'sig_test', chdir='app-bundle')
|
| - result_file = test.built_file_path('sig_test.bundle/sig_test',
|
| + result_file = test.built_file_path('sigtest.app/sigtest',
|
| chdir='app-bundle')
|
| CheckSignature(result_file)
|
| - info_plist = test.built_file_path('sig_test.bundle/Info.plist',
|
| + info_plist = test.built_file_path('sigtest.app/Info.plist',
|
| chdir='app-bundle')
|
|
|
| plist = plistlib.readPlist(info_plist)
|
|
|