• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1#!/usr/bin/env python
2
3# Copyright (c) 2013 Google Inc. All rights reserved.
4# Use of this source code is governed by a BSD-style license that can be
5# found in the LICENSE file.
6
7"""
8Verifies that device and simulator bundles are built correctly.
9"""
10
11import TestGyp
12import TestMac
13
14import collections
15import sys
16
17
18if sys.platform == 'darwin':
19  test = TestGyp.TestGyp(formats=['ninja', 'xcode'])
20
21  test_cases = [
22    ('Default', 'TestArch32Bits', ['i386']),
23    ('Default-iphoneos', 'TestArch32Bits', ['armv7']),
24  ]
25
26  if TestMac.Xcode.Version() < '0510':
27    test_cases.extend([
28        ('Default', 'TestNoArchs', ['i386']),
29        ('Default-iphoneos', 'TestNoArchs', ['armv7'])])
30
31  if TestMac.Xcode.Version() >= '0500':
32    test_cases.extend([
33        ('Default', 'TestArch64Bits', ['x86_64']),
34        ('Default', 'TestMultiArchs', ['i386', 'x86_64']),
35        ('Default-iphoneos', 'TestArch64Bits', ['arm64']),
36        ('Default-iphoneos', 'TestMultiArchs', ['armv7', 'arm64'])])
37
38  test.run_gyp('test-archs.gyp', chdir='app-bundle')
39  for configuration, target, archs in test_cases:
40    is_device_build = configuration.endswith('-iphoneos')
41
42    kwds = collections.defaultdict(list)
43    if test.format == 'xcode':
44      if is_device_build:
45        configuration, sdk = configuration.split('-')
46        kwds['arguments'].extend(['-sdk', sdk])
47      if TestMac.Xcode.Version() < '0500':
48        kwds['arguments'].extend(['-arch', archs[0]])
49
50    test.set_configuration(configuration)
51    filename = '%s.app/%s' % (target, target)
52    test.build('test-archs.gyp', target, chdir='app-bundle', **kwds)
53    result_file = test.built_file_path(filename, chdir='app-bundle')
54
55    test.must_exist(result_file)
56    TestMac.CheckFileType(test, result_file, archs)
57
58  test.pass_test()
59