173d2a4436feed9412fd067377d705aeb2397e354thakis@chromium.org#!/usr/bin/env python 273d2a4436feed9412fd067377d705aeb2397e354thakis@chromium.org 314821d9ce557f087f24d0016c2a5b9b7278b8560thakis@chromium.org# Copyright (c) 2012 Google Inc. All rights reserved. 473d2a4436feed9412fd067377d705aeb2397e354thakis@chromium.org# Use of this source code is governed by a BSD-style license that can be 573d2a4436feed9412fd067377d705aeb2397e354thakis@chromium.org# found in the LICENSE file. 673d2a4436feed9412fd067377d705aeb2397e354thakis@chromium.org 773d2a4436feed9412fd067377d705aeb2397e354thakis@chromium.org""" 873d2a4436feed9412fd067377d705aeb2397e354thakis@chromium.orgVerifies that 'copies' with app bundles are handled correctly. 973d2a4436feed9412fd067377d705aeb2397e354thakis@chromium.org""" 1073d2a4436feed9412fd067377d705aeb2397e354thakis@chromium.org 1173d2a4436feed9412fd067377d705aeb2397e354thakis@chromium.orgimport TestGyp 1273d2a4436feed9412fd067377d705aeb2397e354thakis@chromium.org 1373d2a4436feed9412fd067377d705aeb2397e354thakis@chromium.orgimport os 1473d2a4436feed9412fd067377d705aeb2397e354thakis@chromium.orgimport sys 1573d2a4436feed9412fd067377d705aeb2397e354thakis@chromium.orgimport time 1673d2a4436feed9412fd067377d705aeb2397e354thakis@chromium.org 1773d2a4436feed9412fd067377d705aeb2397e354thakis@chromium.orgif sys.platform == 'darwin': 1814821d9ce557f087f24d0016c2a5b9b7278b8560thakis@chromium.org test = TestGyp.TestGyp(formats=['ninja', 'make', 'xcode']) 1973d2a4436feed9412fd067377d705aeb2397e354thakis@chromium.org 2073d2a4436feed9412fd067377d705aeb2397e354thakis@chromium.org test.run_gyp('framework.gyp', chdir='framework') 2173d2a4436feed9412fd067377d705aeb2397e354thakis@chromium.org 2273d2a4436feed9412fd067377d705aeb2397e354thakis@chromium.org test.build('framework.gyp', 'copy_target', chdir='framework') 2373d2a4436feed9412fd067377d705aeb2397e354thakis@chromium.org 2473d2a4436feed9412fd067377d705aeb2397e354thakis@chromium.org # Check that the copy succeeded. 2573d2a4436feed9412fd067377d705aeb2397e354thakis@chromium.org test.built_file_must_exist( 2673d2a4436feed9412fd067377d705aeb2397e354thakis@chromium.org 'Test Framework.framework/foo/Dependency Bundle.framework', 2773d2a4436feed9412fd067377d705aeb2397e354thakis@chromium.org chdir='framework') 2873d2a4436feed9412fd067377d705aeb2397e354thakis@chromium.org test.built_file_must_exist( 2973d2a4436feed9412fd067377d705aeb2397e354thakis@chromium.org 'Test Framework.framework/foo/Dependency Bundle.framework/Versions/A', 3073d2a4436feed9412fd067377d705aeb2397e354thakis@chromium.org chdir='framework') 316377b5422801f251819bfcf4761e60a6391a8522thakis@chromium.org test.built_file_must_exist( 326377b5422801f251819bfcf4761e60a6391a8522thakis@chromium.org 'Test Framework.framework/Versions/A/Libraries/empty.c', 336377b5422801f251819bfcf4761e60a6391a8522thakis@chromium.org chdir='framework') 3473d2a4436feed9412fd067377d705aeb2397e354thakis@chromium.org 3573d2a4436feed9412fd067377d705aeb2397e354thakis@chromium.org 3673d2a4436feed9412fd067377d705aeb2397e354thakis@chromium.org # Check that rebuilding the target a few times works. 3773d2a4436feed9412fd067377d705aeb2397e354thakis@chromium.org dep_bundle = test.built_file_path('Dependency Bundle.framework', 3873d2a4436feed9412fd067377d705aeb2397e354thakis@chromium.org chdir='framework') 3973d2a4436feed9412fd067377d705aeb2397e354thakis@chromium.org mtime = os.path.getmtime(dep_bundle) 4073d2a4436feed9412fd067377d705aeb2397e354thakis@chromium.org atime = os.path.getatime(dep_bundle) 4173d2a4436feed9412fd067377d705aeb2397e354thakis@chromium.org for i in range(3): 4273d2a4436feed9412fd067377d705aeb2397e354thakis@chromium.org os.utime(dep_bundle, (atime + i * 1000, mtime + i * 1000)) 4373d2a4436feed9412fd067377d705aeb2397e354thakis@chromium.org test.build('framework.gyp', 'copy_target', chdir='framework') 4473d2a4436feed9412fd067377d705aeb2397e354thakis@chromium.org 456377b5422801f251819bfcf4761e60a6391a8522thakis@chromium.org 466377b5422801f251819bfcf4761e60a6391a8522thakis@chromium.org # Check that actions ran. 476377b5422801f251819bfcf4761e60a6391a8522thakis@chromium.org test.built_file_must_exist('action_file', chdir='framework') 486377b5422801f251819bfcf4761e60a6391a8522thakis@chromium.org 4973d2a4436feed9412fd067377d705aeb2397e354thakis@chromium.org test.pass_test() 50