107b131e8ffa26908c78fa6fdc54afaae01367febmmoss@chromium.org#!/usr/bin/env python 207b131e8ffa26908c78fa6fdc54afaae01367febmmoss@chromium.org 39be1d37a9a6561f135412db66806def9f82a29c1steveblock@chromium.org# Copyright (c) 2012 Google Inc. All rights reserved. 407b131e8ffa26908c78fa6fdc54afaae01367febmmoss@chromium.org# Use of this source code is governed by a BSD-style license that can be 507b131e8ffa26908c78fa6fdc54afaae01367febmmoss@chromium.org# found in the LICENSE file. 607b131e8ffa26908c78fa6fdc54afaae01367febmmoss@chromium.org 707b131e8ffa26908c78fa6fdc54afaae01367febmmoss@chromium.org""" 87a9d1ab1b214d7342b5a6d3ae4837fd572a8f4d0evan@chromium.orgVerifies inclusion of $HOME/.gyp/include.gypi works properly with relocation 907b131e8ffa26908c78fa6fdc54afaae01367febmmoss@chromium.organd with regeneration. 1007b131e8ffa26908c78fa6fdc54afaae01367febmmoss@chromium.org""" 1107b131e8ffa26908c78fa6fdc54afaae01367febmmoss@chromium.org 1207b131e8ffa26908c78fa6fdc54afaae01367febmmoss@chromium.orgimport os 1307b131e8ffa26908c78fa6fdc54afaae01367febmmoss@chromium.orgimport TestGyp 1407b131e8ffa26908c78fa6fdc54afaae01367febmmoss@chromium.org 1507b131e8ffa26908c78fa6fdc54afaae01367febmmoss@chromium.org# Regenerating build files when a gyp file changes is currently only supported 16dc9d50a9c015fa86d8ffae123d63173cf5bd7b73torne@chromium.org# by the make generator. 17dc9d50a9c015fa86d8ffae123d63173cf5bd7b73torne@chromium.orgtest = TestGyp.TestGyp(formats=['make']) 1807b131e8ffa26908c78fa6fdc54afaae01367febmmoss@chromium.org 1907b131e8ffa26908c78fa6fdc54afaae01367febmmoss@chromium.orgos.environ['HOME'] = os.path.abspath('home') 2007b131e8ffa26908c78fa6fdc54afaae01367febmmoss@chromium.org 218051f4242ca0291165aef138ab4b621eb3128d92thomasvl@chromium.orgtest.run_gyp('all.gyp', chdir='src') 2207b131e8ffa26908c78fa6fdc54afaae01367febmmoss@chromium.org 2307b131e8ffa26908c78fa6fdc54afaae01367febmmoss@chromium.org# After relocating, we should still be able to build (build file shouldn't 247a9d1ab1b214d7342b5a6d3ae4837fd572a8f4d0evan@chromium.org# contain relative reference to ~/.gyp/include.gypi) 2507b131e8ffa26908c78fa6fdc54afaae01367febmmoss@chromium.orgtest.relocate('src', 'relocate/src') 2607b131e8ffa26908c78fa6fdc54afaae01367febmmoss@chromium.org 2707b131e8ffa26908c78fa6fdc54afaae01367febmmoss@chromium.orgtest.build('all.gyp', test.ALL, chdir='relocate/src') 2807b131e8ffa26908c78fa6fdc54afaae01367febmmoss@chromium.org 2907b131e8ffa26908c78fa6fdc54afaae01367febmmoss@chromium.orgtest.run_built_executable('printfoo', 3007b131e8ffa26908c78fa6fdc54afaae01367febmmoss@chromium.org chdir='relocate/src', 31a7fd578d98e5fff82dfd51d8a8e41f8392ff38b7bradnelson@google.com stdout='FOO is fromhome\n') 3207b131e8ffa26908c78fa6fdc54afaae01367febmmoss@chromium.org 337a9d1ab1b214d7342b5a6d3ae4837fd572a8f4d0evan@chromium.org# Building should notice any changes to ~/.gyp/include.gypi and regyp. 3407b131e8ffa26908c78fa6fdc54afaae01367febmmoss@chromium.orgtest.sleep() 3507b131e8ffa26908c78fa6fdc54afaae01367febmmoss@chromium.org 3607b131e8ffa26908c78fa6fdc54afaae01367febmmoss@chromium.orgtest.write('home/.gyp/include.gypi', test.read('home2/.gyp/include.gypi')) 3707b131e8ffa26908c78fa6fdc54afaae01367febmmoss@chromium.org 388051f4242ca0291165aef138ab4b621eb3128d92thomasvl@chromium.orgtest.build('all.gyp', test.ALL, chdir='relocate/src') 3907b131e8ffa26908c78fa6fdc54afaae01367febmmoss@chromium.org 4007b131e8ffa26908c78fa6fdc54afaae01367febmmoss@chromium.orgtest.run_built_executable('printfoo', 4107b131e8ffa26908c78fa6fdc54afaae01367febmmoss@chromium.org chdir='relocate/src', 42a7fd578d98e5fff82dfd51d8a8e41f8392ff38b7bradnelson@google.com stdout='FOO is fromhome2\n') 4307b131e8ffa26908c78fa6fdc54afaae01367febmmoss@chromium.org 4407b131e8ffa26908c78fa6fdc54afaae01367febmmoss@chromium.orgtest.pass_test() 45