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""" 8Verifies that copying files preserves file attributes. 9""" 10 11import TestGyp 12 13import os 14import stat 15import sys 16 17 18def 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 27test = TestGyp.TestGyp() 28 29test.run_gyp('copies-attribs.gyp', chdir='src') 30 31test.build('copies-attribs.gyp', chdir='src') 32 33if 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 41test.pass_test() 42