summaryrefslogtreecommitdiffstats
path: root/third_party/python/gyp/test/escaping
diff options
context:
space:
mode:
Diffstat (limited to 'third_party/python/gyp/test/escaping')
-rw-r--r--third_party/python/gyp/test/escaping/colon/test.gyp21
-rw-r--r--third_party/python/gyp/test/escaping/gyptest-colon.py51
2 files changed, 72 insertions, 0 deletions
diff --git a/third_party/python/gyp/test/escaping/colon/test.gyp b/third_party/python/gyp/test/escaping/colon/test.gyp
new file mode 100644
index 0000000000..715f95490e
--- /dev/null
+++ b/third_party/python/gyp/test/escaping/colon/test.gyp
@@ -0,0 +1,21 @@
+# 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.
+{
+ 'targets': [
+ {
+ 'target_name': 'colon',
+ 'type': 'executable',
+ 'sources': [
+ 'a:b.c',
+ ],
+ 'copies': [
+ {
+ 'destination': '<(PRODUCT_DIR)/',
+ # MSVS2008 gets confused if the same file is in 'sources' and 'copies'
+ 'files': [ 'a:b.c-d', ],
+ },
+ ],
+ },
+ ],
+}
diff --git a/third_party/python/gyp/test/escaping/gyptest-colon.py b/third_party/python/gyp/test/escaping/gyptest-colon.py
new file mode 100644
index 0000000000..f62f8dc65e
--- /dev/null
+++ b/third_party/python/gyp/test/escaping/gyptest-colon.py
@@ -0,0 +1,51 @@
+#!/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.
+
+"""
+Tests that filenames that contain colons are handled correctly.
+(This is important for absolute paths on Windows.)
+"""
+
+from __future__ import print_function
+
+import os
+import sys
+
+if sys.platform == 'win32':
+ print("This test is currently disabled: https://crbug.com/483696.")
+ sys.exit(0)
+
+
+import TestGyp
+
+# TODO: Make colons in filenames work with make, if required.
+test = TestGyp.TestGyp(formats=['!make'])
+CHDIR = 'colon'
+
+source_name = 'colon/a:b.c'
+copies_name = 'colon/a:b.c-d'
+if sys.platform == 'win32':
+ # Windows uses : as drive separator and doesn't allow it in regular filenames.
+ # Use abspath() to create a path that contains a colon instead.
+ abs_source = os.path.abspath('colon/file.c')
+ test.write('colon/test.gyp',
+ test.read('colon/test.gyp').replace("'a:b.c'", repr(abs_source)))
+ source_name = abs_source
+
+ abs_copies = os.path.abspath('colon/file.txt')
+ test.write('colon/test.gyp',
+ test.read('colon/test.gyp').replace("'a:b.c-d'", repr(abs_copies)))
+ copies_name = abs_copies
+
+# Create the file dynamically, Windows is unhappy if a file with a colon in
+# its name is checked in.
+test.write(source_name, 'int main() {}')
+test.write(copies_name, 'foo')
+
+test.run_gyp('test.gyp', chdir=CHDIR)
+test.build('test.gyp', test.ALL, chdir=CHDIR)
+test.built_file_must_exist(os.path.basename(copies_name), chdir=CHDIR)
+test.pass_test()