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