summaryrefslogtreecommitdiffstats
path: root/third_party/python/gyp/test/ninja/normalize-paths-win
diff options
context:
space:
mode:
Diffstat (limited to 'third_party/python/gyp/test/ninja/normalize-paths-win')
-rw-r--r--third_party/python/gyp/test/ninja/normalize-paths-win/gyptest-normalize-paths.py46
-rw-r--r--third_party/python/gyp/test/ninja/normalize-paths-win/hello.cc7
-rw-r--r--third_party/python/gyp/test/ninja/normalize-paths-win/normalize-paths.gyp68
3 files changed, 121 insertions, 0 deletions
diff --git a/third_party/python/gyp/test/ninja/normalize-paths-win/gyptest-normalize-paths.py b/third_party/python/gyp/test/ninja/normalize-paths-win/gyptest-normalize-paths.py
new file mode 100644
index 0000000000..f56dbe5921
--- /dev/null
+++ b/third_party/python/gyp/test/ninja/normalize-paths-win/gyptest-normalize-paths.py
@@ -0,0 +1,46 @@
+#!/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.
+
+"""
+Make sure paths are normalized with VS macros properly expanded on Windows.
+"""
+
+import TestGyp
+
+import sys
+
+if sys.platform == 'win32':
+ test = TestGyp.TestGyp(formats=['ninja'])
+
+ test.run_gyp('normalize-paths.gyp')
+
+ # We can't use existence tests because any case will pass, so we check the
+ # contents of ninja files directly since that's what we're most concerned
+ # with anyway.
+ subninja = open(test.built_file_path('obj/some_target.ninja')).read()
+ if '$!product_dir' in subninja:
+ test.fail_test()
+ if 'out\\Default' in subninja:
+ test.fail_test()
+
+ second = open(test.built_file_path('obj/second.ninja')).read()
+ if ('..\\..\\things\\AnotherName.exe' in second or
+ 'AnotherName.exe' not in second):
+ test.fail_test()
+
+ copytarget = open(test.built_file_path('obj/copy_target.ninja')).read()
+ if '$(VSInstallDir)' in copytarget:
+ test.fail_test()
+
+ action = open(test.built_file_path('obj/action.ninja')).read()
+ if '..\\..\\out\\Default' in action:
+ test.fail_test()
+ if '..\\..\\SomethingElse' in action or 'SomethingElse' not in action:
+ test.fail_test()
+ if '..\\..\\SomeOtherInput' in action or 'SomeOtherInput' not in action:
+ test.fail_test()
+
+ test.pass_test()
diff --git a/third_party/python/gyp/test/ninja/normalize-paths-win/hello.cc b/third_party/python/gyp/test/ninja/normalize-paths-win/hello.cc
new file mode 100644
index 0000000000..1711567ef5
--- /dev/null
+++ b/third_party/python/gyp/test/ninja/normalize-paths-win/hello.cc
@@ -0,0 +1,7 @@
+// 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.
+
+int main() {
+ return 0;
+}
diff --git a/third_party/python/gyp/test/ninja/normalize-paths-win/normalize-paths.gyp b/third_party/python/gyp/test/ninja/normalize-paths-win/normalize-paths.gyp
new file mode 100644
index 0000000000..544d06456d
--- /dev/null
+++ b/third_party/python/gyp/test/ninja/normalize-paths-win/normalize-paths.gyp
@@ -0,0 +1,68 @@
+# Copyright (c) 2010 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.
+
+{
+ 'targets': [
+ {
+ 'target_name': 'Some_Target',
+ 'type': 'executable',
+ 'msvs_settings': {
+ 'VCLinkerTool': {
+ 'OutputFile': '<(PRODUCT_DIR)/stuff/AnotherName.exe',
+ },
+ },
+ 'sources': [
+ 'HeLLo.cc',
+ 'blOrP.idl',
+ ],
+ },
+ {
+ 'target_name': 'second',
+ 'type': 'executable',
+ 'msvs_settings': {
+ 'VCLinkerTool': {
+ 'OutputFile': '$(OutDir)\\things\\AnotherName.exe',
+ },
+ },
+ 'sources': [
+ 'HeLLo.cc',
+ ],
+ },
+ {
+ 'target_name': 'Copy_Target',
+ 'type': 'none',
+ 'copies': [
+ {
+ 'destination': '<(PRODUCT_DIR)',
+ 'files': [
+ '$(VSInstallDir)\\bin\\cl.exe',
+ ],
+ },
+ ],
+ },
+ {
+ 'target_name': 'action',
+ 'type': 'none',
+ 'msvs_cygwin_shell': '0',
+ 'actions': [
+ {
+ 'inputs': [
+ '$(IntDir)\\SomeInput',
+ '$(OutDir)\\SomeOtherInput',
+ ],
+ 'outputs': [
+ '<(PRODUCT_DIR)/ReSuLt',
+ '<(SHARED_INTERMEDIATE_DIR)/TempFile',
+ '$(OutDir)\SomethingElse',
+ ],
+ 'action_name': 'Test action',
+ # Unfortunately, we can't normalize this field because it's
+ # free-form. Fortunately, ninja doesn't inspect it at all (only the
+ # inputs and outputs) so it's not mandatory.
+ 'action': [],
+ },
+ ],
+ },
+ ],
+}