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