1
0
Fork 0
mirror of https://github.com/ruby/ruby.git synced 2022-11-09 12:17:21 -05:00
ruby--ruby/test/rake/test_rake_clean.rb
hsbt 6361928083 * lib/rake.rb, lib/rake/*.rb: Upgrade to rake-10.3.2
[fix GH-668]
* test/rake/*.rb: ditto.

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@46818 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2014-07-15 03:07:37 +00:00

61 lines
1.6 KiB
Ruby

require File.expand_path('../helper', __FILE__)
require 'rake/clean'
class TestRakeClean < Rake::TestCase
def test_clean
load 'rake/clean.rb', true
assert Rake::Task['clean'], "Should define clean"
assert Rake::Task['clobber'], "Should define clobber"
assert Rake::Task['clobber'].prerequisites.include?("clean"),
"Clobber should require clean"
end
def test_cleanup
file_name = create_undeletable_file
out, _ = capture_io do
Rake::Cleaner.cleanup(file_name, :verbose => false)
end
assert_match(/failed to remove/i, out)
ensure
remove_undeletable_file
end
def test_cleanup_ignores_missing_files
file_name = File.join(@tempdir, "missing_directory", "no_such_file")
out, _ = capture_io do
Rake::Cleaner.cleanup(file_name, :verbose => false)
end
refute_match(/failed to remove/i, out)
end
private
def create_undeletable_file
dir_name = File.join(@tempdir, "deletedir")
file_name = File.join(dir_name, "deleteme")
FileUtils.mkdir(dir_name)
FileUtils.touch(file_name)
FileUtils.chmod(0, file_name)
FileUtils.chmod(0, dir_name)
begin
FileUtils.chmod(0644, file_name)
rescue
file_name
else
skip "Permission to delete files is different on thie system"
end
end
def remove_undeletable_file
dir_name = File.join(@tempdir, "deletedir")
file_name = File.join(dir_name, "deleteme")
FileUtils.chmod(0777, dir_name)
FileUtils.chmod(0777, file_name)
Rake::Cleaner.cleanup(file_name, :verbose => false)
Rake::Cleaner.cleanup(dir_name, :verbose => false)
end
end