138 lines
2.5 KiB
Ruby
Vendored
138 lines
2.5 KiB
Ruby
Vendored
assert('Dir') do
|
|
assert_equal(Class, Dir.class)
|
|
end
|
|
|
|
assert('DirTest.setup') do
|
|
assert_nothing_raised{DirTest.setup}
|
|
end
|
|
|
|
assert('Dir.chdir') do
|
|
assert_equal 0, Dir.chdir(DirTest.sandbox)
|
|
end
|
|
|
|
assert('Dir.entries') do
|
|
a = Dir.entries(DirTest.sandbox)
|
|
assert_true a.include?("a")
|
|
assert_true a.include?("b")
|
|
end
|
|
|
|
assert('Dir.exist?') do
|
|
assert_true Dir.exist?(DirTest.sandbox)
|
|
assert_false Dir.exist?(DirTest.sandbox + "/nosuchdir")
|
|
end
|
|
|
|
assert('Dir.foreach') do
|
|
a = []
|
|
Dir.foreach(DirTest.sandbox) { |s| a << s }
|
|
assert_true a.include?("a")
|
|
assert_true a.include?("b")
|
|
end
|
|
|
|
assert('Dir.getwd') do
|
|
s = Dir.getwd
|
|
assert_true s.kind_of? String
|
|
end
|
|
|
|
assert('Dir.mkdir') do
|
|
m1 = DirTest.sandbox + "/mkdir1"
|
|
m2 = DirTest.sandbox + "/mkdir2"
|
|
assert_equal 0, Dir.mkdir(m1)
|
|
assert_equal 0, Dir.mkdir(m2, 0765)
|
|
end
|
|
|
|
assert('Dir.delete') do
|
|
s = DirTest.sandbox + "/delete"
|
|
Dir.mkdir(s)
|
|
assert_true Dir.exist?(s)
|
|
|
|
Dir.delete(s)
|
|
assert_false Dir.exist?(s)
|
|
end
|
|
|
|
assert('Dir.open') do
|
|
a = []
|
|
Dir.open(DirTest.sandbox) { |d|
|
|
d.each_child { |s| a << s }
|
|
}
|
|
assert_true a.include?("a")
|
|
assert_true a.include?("b")
|
|
end
|
|
|
|
assert('Dir#initialize and Dir#close') do
|
|
d = Dir.new(".")
|
|
assert_true d.instance_of?(Dir)
|
|
assert_nil d.close
|
|
end
|
|
|
|
assert('Dir#close') do
|
|
d = Dir.new(".")
|
|
assert_nothing_raised{d.close}
|
|
end
|
|
|
|
assert('Dir#each_child') do
|
|
a = []
|
|
d = Dir.open(DirTest.sandbox)
|
|
d.each_child { |s| a << s }
|
|
d.close
|
|
assert_true a.include?("a")
|
|
assert_true a.include?("b")
|
|
end
|
|
|
|
assert('Dir#read') do
|
|
a = []
|
|
d = Dir.open(DirTest.sandbox)
|
|
while s = d.read
|
|
a << s
|
|
end
|
|
d.close
|
|
assert_true a.include?("a")
|
|
assert_true a.include?("b")
|
|
end
|
|
|
|
assert('Dir#rewind') do
|
|
d = Dir.open(DirTest.sandbox)
|
|
while d.read; end
|
|
|
|
assert_equal d, d.rewind
|
|
|
|
a = []
|
|
while s = d.read
|
|
a << s
|
|
end
|
|
d.close
|
|
assert_true a.include? "a"
|
|
assert_true a.include? "b"
|
|
end
|
|
|
|
# Note: behaviors of seekdir(3) and telldir(3) are so platform-dependent
|
|
# that we cannot write portable tests here.
|
|
|
|
assert('Dir#tell') do
|
|
n = nil
|
|
begin
|
|
Dir.open(DirTest.sandbox) { |d|
|
|
n = d.tell
|
|
}
|
|
assert_true n.is_a? Integer
|
|
rescue NotImplementedError => e
|
|
skip e.message
|
|
end
|
|
end
|
|
|
|
assert('Dir#seek') do
|
|
d1 = Dir.open(DirTest.sandbox)
|
|
d1.read
|
|
begin
|
|
n = d1.tell
|
|
d1.read
|
|
d2 = d1.seek(n)
|
|
assert_equal d1, d2
|
|
rescue NotImplementedError => e
|
|
skip e.message
|
|
end
|
|
end
|
|
|
|
assert('DirTest.teardown') do
|
|
GC.start
|
|
assert_nothing_raised{DirTest.teardown}
|
|
end
|