Index: test/actions-multiple/gyptest-all.py |
=================================================================== |
--- test/actions-multiple/gyptest-all.py (revision 1402) |
+++ test/actions-multiple/gyptest-all.py (working copy) |
@@ -1,6 +1,6 @@ |
#!/usr/bin/env python |
-# Copyright (c) 2011 Google Inc. All rights reserved. |
+# 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. |
@@ -8,6 +8,8 @@ |
Verifies two actions can be attached to the same input files. |
""" |
+import sys |
+ |
import TestGyp |
test = TestGyp.TestGyp() |
@@ -16,6 +18,34 @@ |
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') |