mirror of
https://github.com/mruby/mruby
synced 2026-06-08 16:11:16 +00:00
a44ada616e
- File.size delegate to FileTest.size - File.size more faster by reading i-node value
109 lines
3.0 KiB
Ruby
109 lines
3.0 KiB
Ruby
##
|
|
# IO Test
|
|
|
|
assert('File', '15.2.21') do
|
|
File.class == Class
|
|
end
|
|
|
|
assert('File', '15.2.21.2') do
|
|
File.superclass == IO
|
|
end
|
|
|
|
assert('File TEST SETUP') do
|
|
MRubyIOTestUtil.io_test_setup
|
|
end
|
|
|
|
assert('File#initialize', '15.2.21.4.1') do
|
|
io = File.open($mrbtest_io_rfname, "r")
|
|
assert_nil io.close
|
|
assert_raise IOError do
|
|
io.close
|
|
end
|
|
end
|
|
|
|
assert('File#path', '15.2.21.4.2') do
|
|
io = File.open($mrbtest_io_rfname, "r")
|
|
assert_equal $mrbtest_io_msg, io.read
|
|
assert_equal $mrbtest_io_rfname, io.path
|
|
io.close
|
|
assert_equal $mrbtest_io_rfname, io.path
|
|
io.closed?
|
|
end
|
|
|
|
assert('File.basename') do
|
|
assert_equal '/', File.basename('//')
|
|
assert_equal 'a', File.basename('/a/')
|
|
assert_equal 'b', File.basename('/a/b')
|
|
assert_equal 'b', File.basename('../a/b')
|
|
end
|
|
|
|
assert('File.dirname') do
|
|
assert_equal '.', File.dirname('')
|
|
assert_equal '.', File.dirname('a')
|
|
assert_equal '/', File.dirname('/a')
|
|
assert_equal 'a', File.dirname('a/b')
|
|
assert_equal '/a', File.dirname('/a/b')
|
|
end
|
|
|
|
assert('File.extname') do
|
|
assert_equal '.txt', File.extname('foo/foo.txt')
|
|
assert_equal '.gz', File.extname('foo/foo.tar.gz')
|
|
assert_equal '', File.extname('foo/bar')
|
|
assert_equal '', File.extname('foo/.bar')
|
|
assert_equal '', File.extname('foo.txt/bar')
|
|
assert_equal '', File.extname('.foo')
|
|
end
|
|
|
|
assert('IO#flock') do
|
|
f = File.open $mrbtest_io_rfname
|
|
assert_equal(f.flock(File::LOCK_SH), 0)
|
|
assert_equal(f.flock(File::LOCK_UN), 0)
|
|
assert_equal(f.flock(File::LOCK_EX | File::LOCK_NB), 0)
|
|
assert_equal(f.flock(File::LOCK_UN), 0)
|
|
f.close
|
|
true
|
|
end
|
|
|
|
assert('File.join') do
|
|
File.join() == "" and
|
|
File.join("a") == "a" and
|
|
File.join("/a") == "/a" and
|
|
File.join("a/") == "a/" and
|
|
File.join("a", "b", "c") == "a/b/c" and
|
|
File.join("/a", "b", "c") == "/a/b/c" and
|
|
File.join("a", "b", "c/") == "a/b/c/" and
|
|
File.join("a/", "/b/", "/c") == "a/b/c"
|
|
end
|
|
|
|
assert('File.realpath') do
|
|
usrbin = IO.popen("cd bin; /bin/pwd -P") { |f| f.read.chomp }
|
|
assert_equal usrbin, File.realpath("bin")
|
|
end
|
|
|
|
assert('File TEST CLEANUP') do
|
|
assert_nil MRubyIOTestUtil.io_test_cleanup
|
|
end
|
|
|
|
assert('File.expand_path') do
|
|
assert_equal "/", File.expand_path("..", "/tmp"), "parent path with base_dir (1)"
|
|
assert_equal "/tmp", File.expand_path("..", "/tmp/mruby"), "parent path with base_dir (2)"
|
|
|
|
assert_equal "/home", File.expand_path("/home"), "absolute"
|
|
assert_equal "/home", File.expand_path("/home", "."), "absolute with base_dir"
|
|
|
|
assert_equal "/hoge", File.expand_path("/tmp/..//hoge")
|
|
assert_equal "/hoge", File.expand_path("////tmp/..///////hoge")
|
|
|
|
assert_equal "/", File.expand_path("../../../..", "/")
|
|
assert_equal "/", File.expand_path(([".."] * 100).join("/"))
|
|
end
|
|
|
|
assert('File.expand_path (with ENV)') do
|
|
skip unless Object.const_defined?(:ENV) && ENV['HOME']
|
|
|
|
assert_equal ENV['HOME'], File.expand_path("~/"), "home"
|
|
assert_equal ENV['HOME'], File.expand_path("~/", "/"), "home with base_dir"
|
|
|
|
assert_equal "#{ENV['HOME']}/user", File.expand_path("user", ENV['HOME']), "relative with base_dir"
|
|
end
|