diff options
-rw-r--r-- | ChangeLog | 6 | ||||
-rw-r--r-- | lib/fileutils.rb | 1 | ||||
-rw-r--r-- | test/fileutils/test_fileutils.rb | 5 |
3 files changed, 12 insertions, 0 deletions
@@ -1,3 +1,9 @@ +Fri Nov 4 10:35:47 2016 Nobuyoshi Nakada <nobu@ruby-lang.org> + + * lib/fileutils.rb (FileUtils::Entry_#copy): ensure that the + source entry exists first, to fix error for non-existent entry. + [ruby-core:77885] [Bug #12892] + Thu Nov 3 21:45:00 2016 Kenta Murata <mrkn@mrkn.jp> * ext/bigdecimal/bigdecimal.c: Import changes from ruby/bigdecimal diff --git a/lib/fileutils.rb b/lib/fileutils.rb index 4317af5327..efceb2fba7 100644 --- a/lib/fileutils.rb +++ b/lib/fileutils.rb @@ -1244,6 +1244,7 @@ module FileUtils end def copy(dest) + lstat case when file? copy_file dest diff --git a/test/fileutils/test_fileutils.rb b/test/fileutils/test_fileutils.rb index 00441a4cfb..0ff0aadca2 100644 --- a/test/fileutils/test_fileutils.rb +++ b/test/fileutils/test_fileutils.rb @@ -361,6 +361,11 @@ class TestFileUtils < Test::Unit::TestCase assert_raise(ArgumentError, bug3588) do cp_r 'tmp2', 'tmp2/new_tmp2' end + + bug12892 = '[ruby-core:77885] [Bug #12892]' + assert_raise(Errno::ENOENT, bug12892) do + cp_r 'non/existent', 'tmp' + end end def test_cp_r_symlink |