1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
|
require 'fileutils'
require 'test/unit'
require 'tmpdir'
require_relative 'fileasserts'
class TestFileUtils < Test::Unit::TestCase
end
module TestFileUtils::Clobber
include Test::Unit::FileAssertions
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
|