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