summaryrefslogtreecommitdiff
path: root/deps/gyp/test/mac/gyptest-postbuild-copy-bundle.py
diff options
context:
space:
mode:
authorMike Morris <michael.patrick.morris@gmail.com>2015-12-04 13:29:51 -0500
committerMike Morris <michael.patrick.morris@gmail.com>2015-12-07 15:48:34 -0800
commitd467ae6e7867044b8d7b466776fb37089292c52b (patch)
tree730ee0656e6bf9f0dff33346f07acd800e83ab25 /deps/gyp/test/mac/gyptest-postbuild-copy-bundle.py
parent59ef8da69549cf6308078c6f656affba96e9439e (diff)
downloadqtlocation-mapboxgl-d467ae6e7867044b8d7b466776fb37089292c52b.tar.gz
[core] upgrade gyp to git commit 6fb8bd8
https://chromium.googlesource.com/external/gyp/+/6fb8bd829f0ca8fd432fd85ede788b6881c4f09f
Diffstat (limited to 'deps/gyp/test/mac/gyptest-postbuild-copy-bundle.py')
-rw-r--r--deps/gyp/test/mac/gyptest-postbuild-copy-bundle.py75
1 files changed, 75 insertions, 0 deletions
diff --git a/deps/gyp/test/mac/gyptest-postbuild-copy-bundle.py b/deps/gyp/test/mac/gyptest-postbuild-copy-bundle.py
new file mode 100644
index 0000000000..1f04d1cb36
--- /dev/null
+++ b/deps/gyp/test/mac/gyptest-postbuild-copy-bundle.py
@@ -0,0 +1,75 @@
+#!/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 a postbuild copying a dependend framework into an app bundle is
+rerun if the resources in the framework change.
+"""
+
+import TestGyp
+
+import os.path
+import sys
+
+if sys.platform == 'darwin':
+ # TODO(thakis): Make this pass with the make generator, http://crbug.com/95529
+ test = TestGyp.TestGyp(formats=['ninja', 'xcode'])
+
+ CHDIR = 'postbuild-copy-bundle'
+ test.run_gyp('test.gyp', chdir=CHDIR)
+
+ app_bundle_dir = test.built_file_path('Test App.app', chdir=CHDIR)
+ bundled_framework_dir = os.path.join(
+ app_bundle_dir, 'Contents', 'My Framework.framework', 'Resources')
+ final_plist_path = os.path.join(bundled_framework_dir, 'Info.plist')
+ final_resource_path = os.path.join(bundled_framework_dir, 'resource_file.sb')
+ final_copies_path = os.path.join(
+ app_bundle_dir, 'Contents', 'My Framework.framework', 'Versions', 'A',
+ 'Libraries', 'copied.txt')
+
+ # Check that the dependency was built and copied into the app bundle:
+ test.build('test.gyp', 'test_app', chdir=CHDIR)
+ test.must_exist(final_resource_path)
+ test.must_match(final_resource_path,
+ 'This is included in the framework bundle.\n')
+
+ test.must_exist(final_plist_path)
+ test.must_contain(final_plist_path, '''\
+\t<key>RandomKey</key>
+\t<string>RandomValue</string>''')
+
+ # Touch the dependency's bundle resource, and check that the modification
+ # makes it all the way into the app bundle:
+ test.sleep()
+ test.write('postbuild-copy-bundle/resource_file.sb', 'New text\n')
+ test.build('test.gyp', 'test_app', chdir=CHDIR)
+
+ test.must_exist(final_resource_path)
+ test.must_match(final_resource_path, 'New text\n')
+
+ # Check the same for the plist file.
+ test.sleep()
+ contents = test.read('postbuild-copy-bundle/Framework-Info.plist')
+ contents = contents.replace('RandomValue', 'NewRandomValue')
+ test.write('postbuild-copy-bundle/Framework-Info.plist', contents)
+ test.build('test.gyp', 'test_app', chdir=CHDIR)
+
+ test.must_exist(final_plist_path)
+ test.must_contain(final_plist_path, '''\
+\t<key>RandomKey</key>
+\t<string>NewRandomValue</string>''')
+
+ # Check the same for the copies section, test for http://crbug.com/157077
+ test.sleep()
+ contents = test.read('postbuild-copy-bundle/copied.txt')
+ contents = contents.replace('old', 'new')
+ test.write('postbuild-copy-bundle/copied.txt', contents)
+ test.build('test.gyp', 'test_app', chdir=CHDIR)
+
+ test.must_exist(final_copies_path)
+ test.must_contain(final_copies_path, 'new copied file')
+
+ test.pass_test()