Index: test/msvs/external_builder/gyptest-all.py |
diff --git a/test/msvs/external_builder/gyptest-all.py b/test/msvs/external_builder/gyptest-all.py |
new file mode 100644 |
index 0000000000000000000000000000000000000000..7649dd5c7f0de03a29a95ce970339057214ceba8 |
--- /dev/null |
+++ b/test/msvs/external_builder/gyptest-all.py |
@@ -0,0 +1,56 @@ |
+#!/usr/bin/env python |
+ |
+# Copyright (c) 2013 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 that msvs_external_builder being set will invoke the provided |
+msvs_external_builder_build_cmd and msvs_external_builder_clean_cmd, and will |
+not invoke MSBuild actions and rules. |
+""" |
+ |
+import os |
+import TestGyp |
+ |
+test = TestGyp.TestGyp(formats=['msvs'], workdir='workarea_all') |
+ |
+# without the flag set |
+test.run_gyp('external.gyp') |
+test.build('external.gyp', target='external') |
+test.must_not_exist('external_builder.out') |
+test.must_exist('msbuild_rule.out') |
+test.must_exist('msbuild_action.out') |
+test.must_match('msbuild_rule.out', 'msbuild_rule.py hello.z a b c') |
+test.must_match('msbuild_action.out', 'msbuild_action.py x y z') |
+os.remove('msbuild_rule.out') |
+os.remove('msbuild_action.out') |
+ |
+# with the flag set, using Build |
+try: |
+ os.environ['GYP_DEFINES'] = 'use_external_builder=1' |
+ test.run_gyp('external.gyp') |
+ test.build('external.gyp', target='external') |
+finally: |
+ del os.environ['GYP_DEFINES'] |
+test.must_not_exist('msbuild_rule.out') |
+test.must_not_exist('msbuild_action.out') |
+test.must_exist('external_builder.out') |
+test.must_match('external_builder.out', 'external_builder.py build 1 2 3') |
+os.remove('external_builder.out') |
+ |
+# with the flag set, using Clean |
+try: |
+ os.environ['GYP_DEFINES'] = 'use_external_builder=1' |
+ test.run_gyp('external.gyp') |
+ test.build('external.gyp', target='external', clean=True) |
+finally: |
+ del os.environ['GYP_DEFINES'] |
+test.must_not_exist('msbuild_rule.out') |
+test.must_not_exist('msbuild_action.out') |
+test.must_exist('external_builder.out') |
+test.must_match('external_builder.out', 'external_builder.py clean 4 5') |
+os.remove('external_builder.out') |
+ |
+test.pass_test() |
+ |