1880ec408d9c22ed4fd0bab3e5f311f1189b5ff90sgk@chromium.org#!/usr/bin/env python
2880ec408d9c22ed4fd0bab3e5f311f1189b5ff90sgk@chromium.org
346d34d835a9fb416adc83e8cf4aba29204bece0bbradnelson@google.com# Copyright (c) 2012 Google Inc. All rights reserved.
4df8224662e615bd36cf8bebae8e58c017201f998sgk@chromium.org# Use of this source code is governed by a BSD-style license that can be
5df8224662e615bd36cf8bebae8e58c017201f998sgk@chromium.org# found in the LICENSE file.
6df8224662e615bd36cf8bebae8e58c017201f998sgk@chromium.org
7880ec408d9c22ed4fd0bab3e5f311f1189b5ff90sgk@chromium.org"""
8880ec408d9c22ed4fd0bab3e5f311f1189b5ff90sgk@chromium.orgVerifies building a subsidiary dependent target from a .gyp file in a
9880ec408d9c22ed4fd0bab3e5f311f1189b5ff90sgk@chromium.orgsubdirectory, without specifying an explicit output build directory,
10880ec408d9c22ed4fd0bab3e5f311f1189b5ff90sgk@chromium.organd using the subdirectory's solution or project file as the entry point.
11880ec408d9c22ed4fd0bab3e5f311f1189b5ff90sgk@chromium.org"""
12880ec408d9c22ed4fd0bab3e5f311f1189b5ff90sgk@chromium.org
13880ec408d9c22ed4fd0bab3e5f311f1189b5ff90sgk@chromium.orgimport TestGyp
14880ec408d9c22ed4fd0bab3e5f311f1189b5ff90sgk@chromium.org
152724da9e5f57957af502ff40ed586fd6351a5f71thakis@chromium.org# Android doesn't support running from subdirectories.
162724da9e5f57957af502ff40ed586fd6351a5f71thakis@chromium.org# Ninja doesn't support relocation.
17d0176c0a2a9e558662905c328c3aa93fd25bbf12bungeman@chromium.org# CMake produces a single CMakeLists.txt in the output directory.
18d0176c0a2a9e558662905c328c3aa93fd25bbf12bungeman@chromium.orgtest = TestGyp.TestGyp(formats=['!ninja', '!android', '!cmake'])
19880ec408d9c22ed4fd0bab3e5f311f1189b5ff90sgk@chromium.org
20d11b9aee6479cfb7d6499995bd6a8ccb834567f0sgk@chromium.orgtest.run_gyp('prog1.gyp', chdir='src')
21880ec408d9c22ed4fd0bab3e5f311f1189b5ff90sgk@chromium.org
22fa5b46b96b21ff75d8b6b3dacc4693b69c43654csgk@chromium.orgtest.relocate('src', 'relocate/src')
23d550593518022aba6c0a52203c1fd98922ac08ffsgk@chromium.org
2418b1b6eb489661c28a4295f7689f65f9de9f45ecmmoss@chromium.orgchdir = 'relocate/src/subdir'
2518b1b6eb489661c28a4295f7689f65f9de9f45ecmmoss@chromium.orgtarget = test.ALL
2618b1b6eb489661c28a4295f7689f65f9de9f45ecmmoss@chromium.org
278f4548b0b9501d03d32499e07eb486408620a2e7mmoss@chromium.orgtest.build('prog2.gyp', target, chdir=chdir)
288f4548b0b9501d03d32499e07eb486408620a2e7mmoss@chromium.org
292e1293c2505a6215a723d89fcb6897a8a7c61bd9sgk@chromium.orgtest.built_file_must_not_exist('prog1', type=test.EXECUTABLE, chdir=chdir)
30880ec408d9c22ed4fd0bab3e5f311f1189b5ff90sgk@chromium.org
31880ec408d9c22ed4fd0bab3e5f311f1189b5ff90sgk@chromium.orgtest.run_built_executable('prog2',
3218b1b6eb489661c28a4295f7689f65f9de9f45ecmmoss@chromium.org                          chdir=chdir,
33880ec408d9c22ed4fd0bab3e5f311f1189b5ff90sgk@chromium.org                          stdout="Hello from prog2.c\n")
34880ec408d9c22ed4fd0bab3e5f311f1189b5ff90sgk@chromium.org
35880ec408d9c22ed4fd0bab3e5f311f1189b5ff90sgk@chromium.orgtest.pass_test()
36