summaryrefslogtreecommitdiff
path: root/test/fileutils
diff options
context:
space:
mode:
authorakr <akr@b2dd03c8-39d4-4d8f-98ff-823fe69b080e>2012-04-30 14:37:54 +0000
committerakr <akr@b2dd03c8-39d4-4d8f-98ff-823fe69b080e>2012-04-30 14:37:54 +0000
commit7d89ecdc523aab7b9908501b6743da2c26a53825 (patch)
tree7c4517ac749347c42bcdb3a6858fc47c40e8e295 /test/fileutils
parentc40e6f82579f54d0fb437876d875de87a2d16241 (diff)
* lib/fileutils.rb (copy_metadata): use File.lchown and File.lchmod to
update meta data of symlinks. git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@35499 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
Diffstat (limited to 'test/fileutils')
-rw-r--r--test/fileutils/test_fileutils.rb11
1 files changed, 11 insertions, 0 deletions
diff --git a/test/fileutils/test_fileutils.rb b/test/fileutils/test_fileutils.rb
index f563068..2549458 100644
--- a/test/fileutils/test_fileutils.rb
+++ b/test/fileutils/test_fileutils.rb
@@ -325,6 +325,17 @@ class TestFileUtils
assert_equal 'SLdest', File.readlink('tmp/cpr_dest2/symlink')
end if have_symlink?
+ def test_cp_r_symlink_preserve
+ mkdir 'tmp/cross'
+ mkdir 'tmp/cross/a'
+ mkdir 'tmp/cross/b'
+ touch 'tmp/cross/a/f'
+ touch 'tmp/cross/b/f'
+ ln_s '../a/f', 'tmp/cross/b/l'
+ ln_s '../b/f', 'tmp/cross/a/l'
+ cp_r 'tmp/cross', 'tmp/cross2', :preserve => true
+ end if have_symlink?
+
def test_cp_r_pathname
# pathname
touch 'tmp/cprtmp'