Home | History | Annotate | Download | only in mac
      1 #!/usr/bin/env python
      2 
      3 # Copyright (c) 2012 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 """
      8 Verifies that bundles that have no 'sources' (pure resource containers) work.
      9 """
     10 
     11 import TestGyp
     12 
     13 import sys
     14 
     15 if sys.platform == 'darwin':
     16   test = TestGyp.TestGyp(formats=['ninja', 'make', 'xcode'])
     17 
     18   test.run_gyp('test.gyp', chdir='sourceless-module')
     19 
     20   # Just needs to build without errors.
     21   test.build('test.gyp', 'empty_bundle', chdir='sourceless-module')
     22   test.built_file_must_not_exist(
     23       'empty_bundle.bundle', chdir='sourceless-module')
     24 
     25   # Needs to build, and contain a resource.
     26   test.build('test.gyp', 'resource_bundle', chdir='sourceless-module')
     27 
     28   test.built_file_must_exist(
     29       'resource_bundle.bundle/Contents/Resources/foo.manifest',
     30       chdir='sourceless-module')
     31   test.built_file_must_not_exist(
     32       'resource_bundle.bundle/Contents/MacOS/resource_bundle',
     33       chdir='sourceless-module')
     34 
     35   # Build an app containing an actionless bundle.
     36   test.build(
     37       'test.gyp',
     38       'bundle_dependent_on_resource_bundle_no_actions',
     39       chdir='sourceless-module')
     40 
     41   test.built_file_must_exist(
     42       'bundle_dependent_on_resource_bundle_no_actions.app/Contents/Resources/'
     43           'mac_resource_bundle_no_actions.bundle/Contents/Resources/empty.txt',
     44       chdir='sourceless-module')
     45 
     46   # Needs to build and cause the bundle to be built.
     47   test.build(
     48       'test.gyp', 'dependent_on_resource_bundle', chdir='sourceless-module')
     49 
     50   test.built_file_must_exist(
     51       'resource_bundle.bundle/Contents/Resources/foo.manifest',
     52       chdir='sourceless-module')
     53   test.built_file_must_not_exist(
     54       'resource_bundle.bundle/Contents/MacOS/resource_bundle',
     55       chdir='sourceless-module')
     56 
     57   # TODO(thakis): shared_libraries that have no sources but depend on static
     58   # libraries currently only work with the ninja generator.  This is used by
     59   # chrome/mac's components build.
     60   if test.format == 'ninja':
     61     # Check that an executable depending on a resource framework links fine too.
     62     test.build(
     63        'test.gyp', 'dependent_on_resource_framework', chdir='sourceless-module')
     64 
     65     test.built_file_must_exist(
     66         'resource_framework.framework/Resources/foo.manifest',
     67         chdir='sourceless-module')
     68     test.built_file_must_exist(
     69         'resource_framework.framework/resource_framework',
     70         chdir='sourceless-module')
     71 
     72   test.pass_test()
     73