mirror of
https://github.com/mruby/mruby
synced 2026-06-08 16:11:16 +00:00
71f21845ca
* _mkdir() has only one argument * use mktemp && mkdir instead of mkdtemp * use _getcwd instead of P_tmpdir (sandbox is on current dir) * test for Dir#tell and Dir#seek: skip when NotImplementedError
137 lines
2.4 KiB
Ruby
137 lines
2.4 KiB
Ruby
assert('Dir') do
|
|
assert_equal(Class, Dir.class)
|
|
end
|
|
|
|
assert('DirTest.setup') do
|
|
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 { |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(".")
|
|
end
|
|
|
|
assert('Dir#each') do
|
|
a = []
|
|
d = Dir.open(DirTest.sandbox)
|
|
d.each { |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
|
|
DirTest.teardown
|
|
end
|