| #!/usr/bin/env python |
| |
| # Copyright 2015 Google Inc. All rights reserved. |
| # Use of this source code is governed by a BSD-style license that can be |
| # found in the LICENSE file. |
| |
| """ |
| Verifies that iOS XCTests can be built correctly. |
| """ |
| |
| import TestGyp |
| |
| import os |
| import subprocess |
| import sys |
| |
| def HasCerts(): |
| # Because the bots do not have certs, don't check them if there are no |
| # certs available. |
| proc = subprocess.Popen(['security','find-identity','-p', 'codesigning', |
| '-v'], stdout=subprocess.PIPE) |
| return "0 valid identities found" not in proc.communicate()[0].strip() |
| |
| if sys.platform == "darwin": |
| # This test appears to be flaky and hangs some of the time. |
| sys.exit(2) # bug=531 |
| |
| test = TestGyp.TestGyp(formats=['xcode', 'ninja']) |
| test.run_gyp('xctests.gyp') |
| test_configs = ['Default'] |
| # TODO(crbug.com/557418): Enable this once xcodebuild works for iOS devices. |
| #if HasCerts() and test.format == 'xcode': |
| # test_configs.append('Default-iphoneos') |
| for config in test_configs: |
| test.set_configuration(config) |
| test.build('xctests.gyp', test.ALL) |
| test.built_file_must_exist('app_under_test.app/app_under_test') |
| test.built_file_must_exist('app_tests.xctest/app_tests') |
| if 'ninja' in test.format: |
| test.built_file_must_exist('obj/AppTests/app_tests.AppTests.i386.o') |
| test.built_file_must_exist('obj/AppTests/app_tests.AppTests.x86_64.o') |
| elif test.format == 'xcode': |
| xcode_object_path = os.path.join('..', 'xctests.build', |
| 'Default-iphonesimulator', |
| 'app_tests.build', 'Objects-normal', |
| '%s', 'AppTests.o') |
| test.built_file_must_exist(xcode_object_path % 'i386') |
| test.built_file_must_exist(xcode_object_path % 'x86_64') |
| test.pass_test() |