mirror of
https://github.com/ruby/ruby.git
synced 2022-11-09 12:17:21 -05:00
* lib/fileutils.rb (FileUtils::LowMethods): make low level methods
in NoWrite and DryRun to do nothing. [ruby-dev:43129] git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@30787 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
This commit is contained in:
parent
ab53367bc7
commit
780678dafb
5 changed files with 106 additions and 77 deletions
|
@ -1,4 +1,7 @@
|
||||||
Sat Feb 5 03:34:59 2011 Nobuyoshi Nakada <nobu@ruby-lang.org>
|
Sat Feb 5 03:37:47 2011 Nobuyoshi Nakada <nobu@ruby-lang.org>
|
||||||
|
|
||||||
|
* lib/fileutils.rb (FileUtils::LowMethods): make low level methods
|
||||||
|
in NoWrite and DryRun to do nothing. [ruby-dev:43129]
|
||||||
|
|
||||||
* test/fileutils/fileasserts.rb: add message arguments.
|
* test/fileutils/fileasserts.rb: add message arguments.
|
||||||
|
|
||||||
|
|
|
@ -1519,6 +1519,12 @@ module FileUtils
|
||||||
OPT_TABLE.keys.select {|m| OPT_TABLE[m].include?(opt) }
|
OPT_TABLE.keys.select {|m| OPT_TABLE[m].include?(opt) }
|
||||||
end
|
end
|
||||||
|
|
||||||
|
LOW_METHODS = singleton_methods(false) - collect_method(:noop).map(&:intern)
|
||||||
|
module LowMethods
|
||||||
|
module_eval("private\n" + ::FileUtils::LOW_METHODS.map {|name| "def #{name}(*)end"}.join("\n"),
|
||||||
|
__FILE__, __LINE__)
|
||||||
|
end
|
||||||
|
|
||||||
METHODS = singleton_methods() - [:private_module_function,
|
METHODS = singleton_methods() - [:private_module_function,
|
||||||
:commands, :options, :have_option?, :options_of, :collect_method]
|
:commands, :options, :have_option?, :options_of, :collect_method]
|
||||||
|
|
||||||
|
@ -1554,6 +1560,7 @@ module FileUtils
|
||||||
#
|
#
|
||||||
module NoWrite
|
module NoWrite
|
||||||
include FileUtils
|
include FileUtils
|
||||||
|
include LowMethods
|
||||||
@fileutils_output = $stderr
|
@fileutils_output = $stderr
|
||||||
@fileutils_label = ''
|
@fileutils_label = ''
|
||||||
::FileUtils.collect_method(:noop).each do |name|
|
::FileUtils.collect_method(:noop).each do |name|
|
||||||
|
@ -1580,6 +1587,7 @@ module FileUtils
|
||||||
#
|
#
|
||||||
module DryRun
|
module DryRun
|
||||||
include FileUtils
|
include FileUtils
|
||||||
|
include LowMethods
|
||||||
@fileutils_output = $stderr
|
@fileutils_output = $stderr
|
||||||
@fileutils_label = ''
|
@fileutils_label = ''
|
||||||
::FileUtils.collect_method(:noop).each do |name|
|
::FileUtils.collect_method(:noop).each do |name|
|
||||||
|
|
89
test/fileutils/clobber.rb
Normal file
89
test/fileutils/clobber.rb
Normal file
|
@ -0,0 +1,89 @@
|
||||||
|
require 'fileutils'
|
||||||
|
require 'test/unit'
|
||||||
|
require 'tmpdir'
|
||||||
|
require_relative 'fileasserts'
|
||||||
|
|
||||||
|
class TestFileUtils < Test::Unit::TestCase
|
||||||
|
end
|
||||||
|
|
||||||
|
module TestFileUtils::Clobber
|
||||||
|
def my_rm_rf(path)
|
||||||
|
if File.exist?('/bin/rm')
|
||||||
|
system %Q[/bin/rm -rf "#{path}"]
|
||||||
|
else
|
||||||
|
FileUtils.rm_rf path
|
||||||
|
end
|
||||||
|
end
|
||||||
|
|
||||||
|
SRC = 'data/src'
|
||||||
|
COPY = 'data/copy'
|
||||||
|
|
||||||
|
def setup
|
||||||
|
@prevdir = Dir.pwd
|
||||||
|
class << (@fileutils_output = "")
|
||||||
|
alias puts <<
|
||||||
|
end
|
||||||
|
tmproot = "#{Dir.tmpdir}/fileutils.rb.#{$$}"
|
||||||
|
Dir.mkdir tmproot unless File.directory?(tmproot)
|
||||||
|
Dir.chdir tmproot
|
||||||
|
my_rm_rf 'data'; Dir.mkdir 'data'
|
||||||
|
my_rm_rf 'tmp'; Dir.mkdir 'tmp'
|
||||||
|
File.open(SRC, 'w') {|f| f.puts 'dummy' }
|
||||||
|
File.open(COPY, 'w') {|f| f.puts 'dummy' }
|
||||||
|
end
|
||||||
|
|
||||||
|
def teardown
|
||||||
|
tmproot = Dir.pwd
|
||||||
|
Dir.chdir @prevdir
|
||||||
|
my_rm_rf tmproot
|
||||||
|
end
|
||||||
|
|
||||||
|
def test_cp
|
||||||
|
cp SRC, 'tmp/cp'
|
||||||
|
check 'tmp/cp'
|
||||||
|
end
|
||||||
|
|
||||||
|
def test_mv
|
||||||
|
mv SRC, 'tmp/mv'
|
||||||
|
check 'tmp/mv'
|
||||||
|
end
|
||||||
|
|
||||||
|
def check(dest, message=nil)
|
||||||
|
assert_file_not_exist dest, message
|
||||||
|
assert_file_exist SRC, message
|
||||||
|
assert_same_file SRC, COPY, message
|
||||||
|
end
|
||||||
|
|
||||||
|
def test_rm
|
||||||
|
rm SRC
|
||||||
|
assert_file_exist SRC
|
||||||
|
assert_same_file SRC, COPY
|
||||||
|
end
|
||||||
|
|
||||||
|
def test_rm_f
|
||||||
|
rm_f SRC
|
||||||
|
assert_file_exist SRC
|
||||||
|
assert_same_file SRC, COPY
|
||||||
|
end
|
||||||
|
|
||||||
|
def test_rm_rf
|
||||||
|
rm_rf SRC
|
||||||
|
assert_file_exist SRC
|
||||||
|
assert_same_file SRC, COPY
|
||||||
|
end
|
||||||
|
|
||||||
|
def test_mkdir
|
||||||
|
mkdir 'dir'
|
||||||
|
assert_file_not_exist 'dir'
|
||||||
|
end
|
||||||
|
|
||||||
|
def test_mkdir_p
|
||||||
|
mkdir 'dir/dir/dir'
|
||||||
|
assert_file_not_exist 'dir'
|
||||||
|
end
|
||||||
|
|
||||||
|
def test_copy_entry
|
||||||
|
copy_entry SRC, 'tmp/copy_entry'
|
||||||
|
check 'tmp/copy_entry', bug4331 = '[ruby-dev:43129]'
|
||||||
|
end
|
||||||
|
end
|
|
@ -1,11 +1,13 @@
|
||||||
# $Id$
|
# $Id$
|
||||||
|
|
||||||
require 'test/unit'
|
|
||||||
require 'fileutils'
|
require 'fileutils'
|
||||||
|
require 'test/unit'
|
||||||
|
require_relative 'clobber'
|
||||||
|
|
||||||
class TestFileUtilsDryRun < Test::Unit::TestCase
|
class TestFileUtilsDryRun < Test::Unit::TestCase
|
||||||
|
|
||||||
include FileUtils::DryRun
|
include FileUtils::DryRun
|
||||||
|
include TestFileUtils::Clobber
|
||||||
|
|
||||||
def test_visibility
|
def test_visibility
|
||||||
FileUtils::METHODS.each do |m|
|
FileUtils::METHODS.each do |m|
|
||||||
|
|
|
@ -1,13 +1,13 @@
|
||||||
# $Id$
|
# $Id$
|
||||||
|
|
||||||
require 'fileutils'
|
require 'fileutils'
|
||||||
require_relative 'fileasserts'
|
|
||||||
require 'tmpdir'
|
|
||||||
require 'test/unit'
|
require 'test/unit'
|
||||||
|
require_relative 'clobber'
|
||||||
|
|
||||||
class TestFileUtilsNoWrite < Test::Unit::TestCase
|
class TestFileUtilsNoWrite < Test::Unit::TestCase
|
||||||
|
|
||||||
include FileUtils::NoWrite
|
include FileUtils::NoWrite
|
||||||
|
include TestFileUtils::Clobber
|
||||||
|
|
||||||
def test_visibility
|
def test_visibility
|
||||||
FileUtils::METHODS.each do |m|
|
FileUtils::METHODS.each do |m|
|
||||||
|
@ -23,77 +23,4 @@ class TestFileUtilsNoWrite < Test::Unit::TestCase
|
||||||
"FileUtils::NoWrite\##{m} is not private"
|
"FileUtils::NoWrite\##{m} is not private"
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
||||||
def my_rm_rf(path)
|
|
||||||
if File.exist?('/bin/rm')
|
|
||||||
system %Q[/bin/rm -rf "#{path}"]
|
|
||||||
else
|
|
||||||
FileUtils.rm_rf path
|
|
||||||
end
|
|
||||||
end
|
|
||||||
|
|
||||||
SRC = 'data/src'
|
|
||||||
COPY = 'data/copy'
|
|
||||||
|
|
||||||
def setup
|
|
||||||
@prevdir = Dir.pwd
|
|
||||||
tmproot = "#{Dir.tmpdir}/fileutils.rb.#{$$}"
|
|
||||||
Dir.mkdir tmproot unless File.directory?(tmproot)
|
|
||||||
Dir.chdir tmproot
|
|
||||||
my_rm_rf 'data'; Dir.mkdir 'data'
|
|
||||||
my_rm_rf 'tmp'; Dir.mkdir 'tmp'
|
|
||||||
File.open(SRC, 'w') {|f| f.puts 'dummy' }
|
|
||||||
File.open(COPY, 'w') {|f| f.puts 'dummy' }
|
|
||||||
end
|
|
||||||
|
|
||||||
def teardown
|
|
||||||
tmproot = Dir.pwd
|
|
||||||
Dir.chdir @prevdir
|
|
||||||
my_rm_rf tmproot
|
|
||||||
end
|
|
||||||
|
|
||||||
def test_cp
|
|
||||||
cp SRC, 'tmp/cp'
|
|
||||||
check 'tmp/cp'
|
|
||||||
end
|
|
||||||
|
|
||||||
def test_mv
|
|
||||||
mv SRC, 'tmp/mv'
|
|
||||||
check 'tmp/mv'
|
|
||||||
end
|
|
||||||
|
|
||||||
def check(dest)
|
|
||||||
assert_file_not_exist dest
|
|
||||||
assert_file_exist SRC
|
|
||||||
assert_same_file SRC, COPY
|
|
||||||
end
|
|
||||||
|
|
||||||
def test_rm
|
|
||||||
rm SRC
|
|
||||||
assert_file_exist SRC
|
|
||||||
assert_same_file SRC, COPY
|
|
||||||
end
|
|
||||||
|
|
||||||
def test_rm_f
|
|
||||||
rm_f SRC
|
|
||||||
assert_file_exist SRC
|
|
||||||
assert_same_file SRC, COPY
|
|
||||||
end
|
|
||||||
|
|
||||||
def test_rm_rf
|
|
||||||
rm_rf SRC
|
|
||||||
assert_file_exist SRC
|
|
||||||
assert_same_file SRC, COPY
|
|
||||||
end
|
|
||||||
|
|
||||||
def test_mkdir
|
|
||||||
mkdir 'dir'
|
|
||||||
assert_file_not_exist 'dir'
|
|
||||||
end
|
|
||||||
|
|
||||||
def test_mkdir_p
|
|
||||||
mkdir 'dir/dir/dir'
|
|
||||||
assert_file_not_exist 'dir'
|
|
||||||
end
|
|
||||||
|
|
||||||
end
|
end
|
||||||
|
|
Loading…
Reference in a new issue