summaryrefslogtreecommitdiffstats
path: root/third_party/python/gyp/test/copies/gyptest-attribs.py
diff options
context:
space:
mode:
Diffstat (limited to 'third_party/python/gyp/test/copies/gyptest-attribs.py')
-rw-r--r--third_party/python/gyp/test/copies/gyptest-attribs.py41
1 files changed, 41 insertions, 0 deletions
diff --git a/third_party/python/gyp/test/copies/gyptest-attribs.py b/third_party/python/gyp/test/copies/gyptest-attribs.py
new file mode 100644
index 0000000000..70d717a45e
--- /dev/null
+++ b/third_party/python/gyp/test/copies/gyptest-attribs.py
@@ -0,0 +1,41 @@
+#!/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 copying files preserves file attributes.
+"""
+
+import TestGyp
+
+import os
+import stat
+import sys
+
+
+def check_attribs(path, expected_exec_bit):
+ out_path = test.built_file_path(path, chdir='src')
+
+ in_stat = os.stat(os.path.join('src', path))
+ out_stat = os.stat(out_path)
+ if out_stat.st_mode & stat.S_IXUSR != expected_exec_bit:
+ test.fail_test()
+
+
+test = TestGyp.TestGyp()
+
+test.run_gyp('copies-attribs.gyp', chdir='src')
+
+test.build('copies-attribs.gyp', chdir='src')
+
+if sys.platform != 'win32':
+ out_path = test.built_file_path('executable-file.sh', chdir='src')
+ test.must_contain(out_path,
+ '#!/bin/bash\n'
+ '\n'
+ 'echo echo echo echo cho ho o o\n')
+ check_attribs('executable-file.sh', expected_exec_bit=stat.S_IXUSR)
+
+test.pass_test()