mirror of https://github.com/lukechilds/node.git
You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
72 lines
2.1 KiB
72 lines
2.1 KiB
#!/usr/bin/env python
|
|
|
|
# Copyright (c) 2012 Google Inc. All rights reserved.
|
|
# Use of this source code is governed by a BSD-style license that can be
|
|
# found in the LICENSE file.
|
|
|
|
"""
|
|
Verifies two actions can be attached to the same input files.
|
|
"""
|
|
|
|
import sys
|
|
|
|
import TestGyp
|
|
|
|
test = TestGyp.TestGyp()
|
|
|
|
test.run_gyp('actions.gyp', chdir='src')
|
|
|
|
test.relocate('src', 'relocate/src')
|
|
|
|
# Test of fine-grained dependencies for generators that can build individual
|
|
# files on demand.
|
|
# In particular:
|
|
# - TargetA depends on TargetB.
|
|
# - TargetA and TargetB are 'none' type with actions attached.
|
|
# - TargetA has multiple actions.
|
|
# - An output from one of the actions in TargetA (not the first listed),
|
|
# is requested as the build target.
|
|
# Ensure that TargetB gets built.
|
|
#
|
|
# This sub-test can only be done with generators/build tools that can
|
|
# be asked to build individual files rather than whole targets (make, ninja).
|
|
if test.format in ['make', 'ninja']:
|
|
# Select location of target based on generator.
|
|
if test.format == 'make':
|
|
target = 'multi2.txt'
|
|
elif test.format == 'ninja':
|
|
if sys.platform in ['win32', 'cygwin']:
|
|
target = '..\\..\\multi2.txt'
|
|
else:
|
|
target = '../../multi2.txt'
|
|
else:
|
|
assert False
|
|
test.build('actions.gyp', chdir='relocate/src', target=target)
|
|
test.must_contain('relocate/src/multi2.txt', 'hello there')
|
|
test.must_contain('relocate/src/multi_dep.txt', 'hello there')
|
|
|
|
|
|
# Test that two actions can be attached to the same inputs.
|
|
test.build('actions.gyp', test.ALL, chdir='relocate/src')
|
|
test.must_contain('relocate/src/output1.txt', 'hello there')
|
|
test.must_contain('relocate/src/output2.txt', 'hello there')
|
|
test.must_contain('relocate/src/output3.txt', 'hello there')
|
|
test.must_contain('relocate/src/output4.txt', 'hello there')
|
|
|
|
# Test that process_outputs_as_sources works in conjuction with merged
|
|
# actions.
|
|
test.run_built_executable(
|
|
'multiple_action_source_filter',
|
|
chdir='relocate/src',
|
|
stdout=(
|
|
'{\n'
|
|
'bar\n'
|
|
'car\n'
|
|
'dar\n'
|
|
'ear\n'
|
|
'}\n'
|
|
),
|
|
)
|
|
|
|
|
|
test.pass_test()
|
|
|