1 #!/usr/bin/env python 2 3 # Copyright (c) 2013 Google Inc. All rights reserved. 4 # Use of this source code is governed by a BSD-style license that can be 5 # found in the LICENSE file. 6 7 """ 8 Verifies that copying files preserves file attributes. 9 """ 10 11 import TestGyp 12 13 import os 14 import stat 15 import sys 16 17 18 def check_attribs(path, expected_exec_bit): 19 out_path = test.built_file_path(path, chdir='src') 20 21 in_stat = os.stat(os.path.join('src', path)) 22 out_stat = os.stat(out_path) 23 if out_stat.st_mode & stat.S_IXUSR != expected_exec_bit: 24 test.fail_test() 25 26 27 test = TestGyp.TestGyp() 28 29 test.run_gyp('copies-attribs.gyp', chdir='src') 30 31 test.build('copies-attribs.gyp', chdir='src') 32 33 if sys.platform != 'win32': 34 out_path = test.built_file_path('executable-file.sh', chdir='src') 35 test.must_contain(out_path, 36 '#!/bin/bash\n' 37 '\n' 38 'echo echo echo echo cho ho o o\n') 39 check_attribs('executable-file.sh', expected_exec_bit=stat.S_IXUSR) 40 41 test.pass_test() 42