12724da9e5f57957af502ff40ed586fd6351a5f71thakis@chromium.org#!/usr/bin/env python 22724da9e5f57957af502ff40ed586fd6351a5f71thakis@chromium.org 32724da9e5f57957af502ff40ed586fd6351a5f71thakis@chromium.org# Copyright (c) 2012 Google Inc. All rights reserved. 42724da9e5f57957af502ff40ed586fd6351a5f71thakis@chromium.org# Use of this source code is governed by a BSD-style license that can be 52724da9e5f57957af502ff40ed586fd6351a5f71thakis@chromium.org# found in the LICENSE file. 62724da9e5f57957af502ff40ed586fd6351a5f71thakis@chromium.org 72724da9e5f57957af502ff40ed586fd6351a5f71thakis@chromium.org""" 82724da9e5f57957af502ff40ed586fd6351a5f71thakis@chromium.orgVerifies building a target when the --generator-output= option is used to put 92724da9e5f57957af502ff40ed586fd6351a5f71thakis@chromium.orgthe build configuration files in a separate directory tree referenced by a 102724da9e5f57957af502ff40ed586fd6351a5f71thakis@chromium.orgsymlink. 112724da9e5f57957af502ff40ed586fd6351a5f71thakis@chromium.org""" 122724da9e5f57957af502ff40ed586fd6351a5f71thakis@chromium.org 132724da9e5f57957af502ff40ed586fd6351a5f71thakis@chromium.orgimport TestGyp 142724da9e5f57957af502ff40ed586fd6351a5f71thakis@chromium.orgimport os 152724da9e5f57957af502ff40ed586fd6351a5f71thakis@chromium.org 162724da9e5f57957af502ff40ed586fd6351a5f71thakis@chromium.org# Android doesn't support --generator-output. 172724da9e5f57957af502ff40ed586fd6351a5f71thakis@chromium.orgtest = TestGyp.TestGyp(formats=['!android']) 182724da9e5f57957af502ff40ed586fd6351a5f71thakis@chromium.orgif not hasattr(os, 'symlink'): 192724da9e5f57957af502ff40ed586fd6351a5f71thakis@chromium.org test.skip_test('Missing os.symlink -- skipping test.\n') 202724da9e5f57957af502ff40ed586fd6351a5f71thakis@chromium.org 212724da9e5f57957af502ff40ed586fd6351a5f71thakis@chromium.orgtest.writable(test.workpath('src'), False) 222724da9e5f57957af502ff40ed586fd6351a5f71thakis@chromium.org 232724da9e5f57957af502ff40ed586fd6351a5f71thakis@chromium.orgtest.writable(test.workpath('src/subdir2/deeper/build'), True) 242724da9e5f57957af502ff40ed586fd6351a5f71thakis@chromium.org 252724da9e5f57957af502ff40ed586fd6351a5f71thakis@chromium.orgtest.subdir(test.workpath('build')) 262724da9e5f57957af502ff40ed586fd6351a5f71thakis@chromium.orgtest.subdir(test.workpath('build/deeper')) 272724da9e5f57957af502ff40ed586fd6351a5f71thakis@chromium.orgtest.symlink('build/deeper', test.workpath('symlink')) 282724da9e5f57957af502ff40ed586fd6351a5f71thakis@chromium.org 292724da9e5f57957af502ff40ed586fd6351a5f71thakis@chromium.orgtest.writable(test.workpath('build/deeper'), True) 302724da9e5f57957af502ff40ed586fd6351a5f71thakis@chromium.orgtest.run_gyp('deeper.gyp', 312724da9e5f57957af502ff40ed586fd6351a5f71thakis@chromium.org '-Dset_symroot=2', 322724da9e5f57957af502ff40ed586fd6351a5f71thakis@chromium.org '--generator-output=' + test.workpath('symlink'), 332724da9e5f57957af502ff40ed586fd6351a5f71thakis@chromium.org chdir='src/subdir2/deeper') 342724da9e5f57957af502ff40ed586fd6351a5f71thakis@chromium.org 352724da9e5f57957af502ff40ed586fd6351a5f71thakis@chromium.orgchdir = 'symlink' 362724da9e5f57957af502ff40ed586fd6351a5f71thakis@chromium.orgtest.build('deeper.gyp', test.ALL, chdir=chdir) 372724da9e5f57957af502ff40ed586fd6351a5f71thakis@chromium.org 382724da9e5f57957af502ff40ed586fd6351a5f71thakis@chromium.orgif test.format == 'xcode': 392724da9e5f57957af502ff40ed586fd6351a5f71thakis@chromium.org chdir = 'src/subdir2/deeper' 402724da9e5f57957af502ff40ed586fd6351a5f71thakis@chromium.orgtest.run_built_executable('deeper', 412724da9e5f57957af502ff40ed586fd6351a5f71thakis@chromium.org chdir=chdir, 422724da9e5f57957af502ff40ed586fd6351a5f71thakis@chromium.org stdout="Hello from deeper.c\n") 432724da9e5f57957af502ff40ed586fd6351a5f71thakis@chromium.orgtest.pass_test() 44