Home | History | Annotate | Download | only in copies
      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