summaryrefslogtreecommitdiff
path: root/deps/gyp/test/mac/gyptest-framework.py
diff options
context:
space:
mode:
Diffstat (limited to 'deps/gyp/test/mac/gyptest-framework.py')
-rwxr-xr-xdeps/gyp/test/mac/gyptest-framework.py78
1 files changed, 78 insertions, 0 deletions
diff --git a/deps/gyp/test/mac/gyptest-framework.py b/deps/gyp/test/mac/gyptest-framework.py
new file mode 100755
index 0000000000..553cc9f648
--- /dev/null
+++ b/deps/gyp/test/mac/gyptest-framework.py
@@ -0,0 +1,78 @@
+#!/usr/bin/env python
+
+# Copyright (c) 2012 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 app bundles are built correctly.
+"""
+
+import TestGyp
+
+import os
+import sys
+
+if sys.platform == 'darwin':
+ print "This test is currently disabled: https://crbug.com/483696."
+ sys.exit(0)
+
+
+def ls(path):
+ '''Returns a list of all files in a directory, relative to the directory.'''
+ result = []
+ for dirpath, _, files in os.walk(path):
+ for f in files:
+ result.append(os.path.join(dirpath, f)[len(path) + 1:])
+ return result
+
+
+if sys.platform == 'darwin':
+ test = TestGyp.TestGyp(formats=['ninja', 'make', 'xcode'])
+
+ test.run_gyp('framework.gyp', chdir='framework')
+
+ test.build('framework.gyp', 'test_framework', chdir='framework')
+
+ # Binary
+ test.built_file_must_exist(
+ 'Test Framework.framework/Versions/A/Test Framework',
+ chdir='framework')
+
+ # Info.plist
+ info_plist = test.built_file_path(
+ 'Test Framework.framework/Versions/A/Resources/Info.plist',
+ chdir='framework')
+ test.must_exist(info_plist)
+ test.must_contain(info_plist, 'com.yourcompany.Test_Framework')
+
+ # Resources
+ test.built_file_must_exist(
+ 'Test Framework.framework/Versions/A/Resources/English.lproj/'
+ 'InfoPlist.strings',
+ chdir='framework')
+
+ # Symlinks created by packaging process
+ test.built_file_must_exist('Test Framework.framework/Versions/Current',
+ chdir='framework')
+ test.built_file_must_exist('Test Framework.framework/Resources',
+ chdir='framework')
+ test.built_file_must_exist('Test Framework.framework/Test Framework',
+ chdir='framework')
+ # PkgInfo.
+ test.built_file_must_not_exist(
+ 'Test Framework.framework/Versions/A/Resources/PkgInfo',
+ chdir='framework')
+
+ # Check that no other files get added to the bundle.
+ if set(ls(test.built_file_path('Test Framework.framework',
+ chdir='framework'))) != \
+ set(['Versions/A/Test Framework',
+ 'Versions/A/Resources/Info.plist',
+ 'Versions/A/Resources/English.lproj/InfoPlist.strings',
+ 'Test Framework',
+ 'Versions/A/Libraries/empty.c', # Written by a gyp action.
+ ]):
+ test.fail_test()
+
+ test.pass_test()