Index: test/ninja/action_dependencies/gyptest-action-dependencies.py |
diff --git a/test/ninja/action_dependencies/gyptest-action-dependencies.py b/test/ninja/action_dependencies/gyptest-action-dependencies.py |
new file mode 100644 |
index 0000000000000000000000000000000000000000..3ba05bb558d1eae6dec5a6ce2ba3fce708817c58 |
--- /dev/null |
+++ b/test/ninja/action_dependencies/gyptest-action-dependencies.py |
@@ -0,0 +1,38 @@ |
+#!/usr/bin/env python |
+ |
+# Copyright (c) 2011 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. |
+ |
+""" |
+Verify that building an object file correctly depends on running actions in |
+dependent targets, but not the targets themselves. |
+""" |
+ |
+import TestGyp |
+ |
+test = TestGyp.TestGyp(formats=['ninja']) |
+ |
+test.run_gyp('action_dependencies.gyp', chdir='src') |
+ |
+chdir = 'relocate/src' |
+test.relocate('src', chdir) |
+ |
+test.build('action_dependencies.gyp', 'obj/b.b.o', chdir=chdir) |
+ |
+# The 'a' actions should be run (letting b.c compile), but the a static library |
+# should not be built. |
+test.built_file_must_not_exist('a', type=test.STATIC_LIB, chdir=chdir) |
+test.built_file_must_not_exist('b', type=test.STATIC_LIB, chdir=chdir) |
+test.built_file_must_exist('obj/b.b.o', chdir=chdir) |
+ |
+test.build('action_dependencies.gyp', 'obj/c.c.o', chdir=chdir) |
+ |
+# 'a' and 'b' should be built, so that the 'c' action succeeds, letting c.c |
+# compile |
+test.built_file_must_exist('a', type=test.STATIC_LIB, chdir=chdir) |
+test.built_file_must_exist('b', type=test.EXECUTABLE, chdir=chdir) |
+test.built_file_must_exist('obj/c.c.o', chdir=chdir) |
+ |
+ |
+test.pass_test() |