1700119484c46eab4bbff324caf55dce32bd7c401sgk@chromium.org#!/usr/bin/env python 2700119484c46eab4bbff324caf55dce32bd7c401sgk@chromium.org 39be1d37a9a6561f135412db66806def9f82a29c1steveblock@chromium.org# 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 7700119484c46eab4bbff324caf55dce32bd7c401sgk@chromium.org""" 8f040c6194657a5972871a96cb8c3572e9296ef37evan@chromium.orgVerifies file copies with --generator-output using an explicit build 9f040c6194657a5972871a96cb8c3572e9296ef37evan@chromium.orgtarget of 'all'. 10700119484c46eab4bbff324caf55dce32bd7c401sgk@chromium.org""" 11700119484c46eab4bbff324caf55dce32bd7c401sgk@chromium.org 12700119484c46eab4bbff324caf55dce32bd7c401sgk@chromium.orgimport TestGyp 13700119484c46eab4bbff324caf55dce32bd7c401sgk@chromium.org 142724da9e5f57957af502ff40ed586fd6351a5f71thakis@chromium.org# Android doesn't support --generator-output. 15d0176c0a2a9e558662905c328c3aa93fd25bbf12bungeman@chromium.orgtest = TestGyp.TestGyp(formats=['!android']) 16700119484c46eab4bbff324caf55dce32bd7c401sgk@chromium.org 17700119484c46eab4bbff324caf55dce32bd7c401sgk@chromium.orgtest.writable(test.workpath('copies'), False) 18700119484c46eab4bbff324caf55dce32bd7c401sgk@chromium.org 19700119484c46eab4bbff324caf55dce32bd7c401sgk@chromium.orgtest.run_gyp('copies.gyp', 20700119484c46eab4bbff324caf55dce32bd7c401sgk@chromium.org '--generator-output=' + test.workpath('gypfiles'), 216bd80e4bba1e6076b262fbfa67517ec683a144c8sdefresne@chromium.org '-G', 'xcode_ninja_target_pattern=^(?!copies_null)', 22700119484c46eab4bbff324caf55dce32bd7c401sgk@chromium.org chdir='copies') 23700119484c46eab4bbff324caf55dce32bd7c401sgk@chromium.org 24700119484c46eab4bbff324caf55dce32bd7c401sgk@chromium.orgtest.writable(test.workpath('copies'), True) 25700119484c46eab4bbff324caf55dce32bd7c401sgk@chromium.org 26fa5b46b96b21ff75d8b6b3dacc4693b69c43654csgk@chromium.orgtest.relocate('copies', 'relocate/copies') 27fa5b46b96b21ff75d8b6b3dacc4693b69c43654csgk@chromium.orgtest.relocate('gypfiles', 'relocate/gypfiles') 28700119484c46eab4bbff324caf55dce32bd7c401sgk@chromium.org 29700119484c46eab4bbff324caf55dce32bd7c401sgk@chromium.orgtest.writable(test.workpath('relocate/copies'), False) 30700119484c46eab4bbff324caf55dce32bd7c401sgk@chromium.org 31700119484c46eab4bbff324caf55dce32bd7c401sgk@chromium.orgtest.writable(test.workpath('relocate/copies/build'), True) 32700119484c46eab4bbff324caf55dce32bd7c401sgk@chromium.orgtest.writable(test.workpath('relocate/copies/copies-out'), True) 33700119484c46eab4bbff324caf55dce32bd7c401sgk@chromium.orgtest.writable(test.workpath('relocate/copies/subdir/build'), True) 34700119484c46eab4bbff324caf55dce32bd7c401sgk@chromium.orgtest.writable(test.workpath('relocate/copies/subdir/copies-out'), True) 35700119484c46eab4bbff324caf55dce32bd7c401sgk@chromium.org 36040d50e7277c41a0b9641dc42c76be8605055637sgk@chromium.orgtest.build('copies.gyp', test.ALL, chdir='relocate/gypfiles') 37700119484c46eab4bbff324caf55dce32bd7c401sgk@chromium.org 38700119484c46eab4bbff324caf55dce32bd7c401sgk@chromium.orgtest.must_match(['relocate', 'copies', 'copies-out', 'file1'], 39700119484c46eab4bbff324caf55dce32bd7c401sgk@chromium.org "file1 contents\n") 40700119484c46eab4bbff324caf55dce32bd7c401sgk@chromium.org 4165f1cdd22ad8f73f507077d3baab38c6314f13c8mmoss@chromium.orgif test.format == 'xcode': 42700119484c46eab4bbff324caf55dce32bd7c401sgk@chromium.org chdir = 'relocate/copies/build' 436bd80e4bba1e6076b262fbfa67517ec683a144c8sdefresne@chromium.orgelif test.format in ['make', 'ninja', 'xcode-ninja', 'cmake']: 440a7b25b553ea0b2519ea5d24289e7c1542ddaeb0mmoss@chromium.org chdir = 'relocate/gypfiles/out' 45700119484c46eab4bbff324caf55dce32bd7c401sgk@chromium.orgelse: 46700119484c46eab4bbff324caf55dce32bd7c401sgk@chromium.org chdir = 'relocate/gypfiles' 47700119484c46eab4bbff324caf55dce32bd7c401sgk@chromium.orgtest.must_match([chdir, 'Default', 'copies-out', 'file2'], "file2 contents\n") 48700119484c46eab4bbff324caf55dce32bd7c401sgk@chromium.org 49700119484c46eab4bbff324caf55dce32bd7c401sgk@chromium.orgtest.must_match(['relocate', 'copies', 'subdir', 'copies-out', 'file3'], 50700119484c46eab4bbff324caf55dce32bd7c401sgk@chromium.org "file3 contents\n") 51700119484c46eab4bbff324caf55dce32bd7c401sgk@chromium.org 5265f1cdd22ad8f73f507077d3baab38c6314f13c8mmoss@chromium.orgif test.format == 'xcode': 53700119484c46eab4bbff324caf55dce32bd7c401sgk@chromium.org chdir = 'relocate/copies/subdir/build' 546bd80e4bba1e6076b262fbfa67517ec683a144c8sdefresne@chromium.orgelif test.format in ['make', 'ninja', 'xcode-ninja', 'cmake']: 550a7b25b553ea0b2519ea5d24289e7c1542ddaeb0mmoss@chromium.org chdir = 'relocate/gypfiles/out' 56700119484c46eab4bbff324caf55dce32bd7c401sgk@chromium.orgelse: 57700119484c46eab4bbff324caf55dce32bd7c401sgk@chromium.org chdir = 'relocate/gypfiles' 58700119484c46eab4bbff324caf55dce32bd7c401sgk@chromium.orgtest.must_match([chdir, 'Default', 'copies-out', 'file4'], "file4 contents\n") 59700119484c46eab4bbff324caf55dce32bd7c401sgk@chromium.org 60700119484c46eab4bbff324caf55dce32bd7c401sgk@chromium.orgtest.pass_test() 61