ruby-changes:17556
From: yugui <ko1@a...>
Date: Sat, 23 Oct 2010 18:36:42 +0900 (JST)
Subject: [ruby-changes:17556] Ruby:r29561 (ruby_1_9_2): merges tests from trunk before r29132 into ruby_1_9_2.
yugui 2010-10-23 18:36:31 +0900 (Sat, 23 Oct 2010) New Revision: 29561 http://svn.ruby-lang.org/cgi-bin/viewvc.cgi?view=rev&revision=29561 Log: merges tests from trunk before r29132 into ruby_1_9_2. -- * test/pathname/test_pathname.rb (test_expand_path): should treat drive letter. * test/pathname/test_pathnamr.rb (test_grpowned?): group onwer is not suppoted on DOSISH platforms. * test/pathname/test_pathnamr.rb (test_world_readable?, test_sticky?, test_world_writable?): skip some tests on the assumptions for Unix on DOSISH. Modified files: branches/ruby_1_9_2/test/pathname/test_pathname.rb branches/ruby_1_9_2/version.h Index: ruby_1_9_2/version.h =================================================================== --- ruby_1_9_2/version.h (revision 29560) +++ ruby_1_9_2/version.h (revision 29561) @@ -1,5 +1,5 @@ #define RUBY_VERSION "1.9.2" -#define RUBY_PATCHLEVEL 14 +#define RUBY_PATCHLEVEL 15 #define RUBY_VERSION_MAJOR 1 #define RUBY_VERSION_MINOR 9 #define RUBY_VERSION_TEENY 1 Index: ruby_1_9_2/test/pathname/test_pathname.rb =================================================================== --- ruby_1_9_2/test/pathname/test_pathname.rb (revision 29560) +++ ruby_1_9_2/test/pathname/test_pathname.rb (revision 29561) @@ -578,6 +578,622 @@ assert_equal(Pathname.new("a"), Pathname("a")) end + def test_children + with_tmpchdir('rubytest-pathname') {|dir| + open("a", "w") {} + open("b", "w") {} + Dir.mkdir("d") + open("d/x", "w") {} + open("d/y", "w") {} + assert_equal([Pathname("a"), Pathname("b"), Pathname("d")], Pathname(".").children.sort) + assert_equal([Pathname("d/x"), Pathname("d/y")], Pathname("d").children.sort) + assert_equal([Pathname("x"), Pathname("y")], Pathname("d").children(false).sort) + } + end + + def test_each_child + with_tmpchdir('rubytest-pathname') {|dir| + open("a", "w") {} + open("b", "w") {} + Dir.mkdir("d") + open("d/x", "w") {} + open("d/y", "w") {} + a = []; Pathname(".").each_child {|v| a << v }; a.sort! + assert_equal([Pathname("a"), Pathname("b"), Pathname("d")], a) + a = []; Pathname("d").each_child {|v| a << v }; a.sort! + assert_equal([Pathname("d/x"), Pathname("d/y")], a) + a = []; Pathname("d").each_child(false) {|v| a << v }; a.sort! + assert_equal([Pathname("x"), Pathname("y")], a) + } + end + + def test_each_line + with_tmpchdir('rubytest-pathname') {|dir| + open("a", "w") {|f| f.puts 1, 2 } + a = [] + Pathname("a").each_line {|line| a << line } + assert_equal(["1\n", "2\n"], a) + + a = [] + Pathname("a").each_line("2") {|line| a << line } + assert_equal(["1\n2", "\n"], a) + + a = [] + Pathname("a").each_line(1) {|line| a << line } + assert_equal(["1", "\n", "2", "\n"], a) + + a = [] + Pathname("a").each_line("2", 1) {|line| a << line } + assert_equal(["1", "\n", "2", "\n"], a) + + a = [] + enum = Pathname("a").each_line + enum.each {|line| a << line } + assert_equal(["1\n", "2\n"], a) + } + end + + def test_readlines + with_tmpchdir('rubytest-pathname') {|dir| + open("a", "w") {|f| f.puts 1, 2 } + a = Pathname("a").readlines + assert_equal(["1\n", "2\n"], a) + } + end + + def test_read + with_tmpchdir('rubytest-pathname') {|dir| + open("a", "w") {|f| f.puts 1, 2 } + assert_equal("1\n2\n", Pathname("a").read) + } + end + + def test_binread + with_tmpchdir('rubytest-pathname') {|dir| + open("a", "w") {|f| f.write "abc" } + assert_equal("abc", Pathname("a").read) + } + end + + def test_sysopen + with_tmpchdir('rubytest-pathname') {|dir| + open("a", "w") {|f| f.write "abc" } + fd = Pathname("a").sysopen + io = IO.new(fd) + begin + assert_equal("abc", io.read) + ensure + io.close + end + } + end + + def test_atime + assert_kind_of(Time, Pathname(__FILE__).atime) + end + + def test_ctime + assert_kind_of(Time, Pathname(__FILE__).ctime) + end + + def test_mtime + assert_kind_of(Time, Pathname(__FILE__).mtime) + end + + def test_chmod + with_tmpchdir('rubytest-pathname') {|dir| + open("a", "w") {|f| f.write "abc" } + path = Pathname("a") + old = path.stat.mode + path.chmod(0444) + assert_equal(0444, path.stat.mode & 0777) + path.chmod(old) + } + end + + def test_lchmod + return if !has_symlink? + with_tmpchdir('rubytest-pathname') {|dir| + open("a", "w") {|f| f.write "abc" } + File.symlink("a", "l") + path = Pathname("l") + old = path.lstat.mode + begin + path.lchmod(0444) + rescue NotImplementedError + next + end + assert_equal(0444, path.lstat.mode & 0777) + path.chmod(old) + } + end + + def test_chown + with_tmpchdir('rubytest-pathname') {|dir| + open("a", "w") {|f| f.write "abc" } + path = Pathname("a") + old_uid = path.stat.uid + old_gid = path.stat.gid + begin + path.chown(0, 0) + rescue Errno::EPERM + next + end + assert_equal(0, path.stat.uid) + assert_equal(0, path.stat.gid) + path.chown(old_uid, old_gid) + } + end + + def test_lchown + return if !has_symlink? + with_tmpchdir('rubytest-pathname') {|dir| + open("a", "w") {|f| f.write "abc" } + File.symlink("a", "l") + path = Pathname("l") + old_uid = path.stat.uid + old_gid = path.stat.gid + begin + path.lchown(0, 0) + rescue Errno::EPERM + next + end + assert_equal(0, path.stat.uid) + assert_equal(0, path.stat.gid) + path.lchown(old_uid, old_gid) + } + end + + def test_fnmatch + path = Pathname("a") + assert_equal(true, path.fnmatch("*")) + assert_equal(false, path.fnmatch("*.*")) + assert_equal(false, Pathname(".foo").fnmatch("*")) + assert_equal(true, Pathname(".foo").fnmatch("*", File::FNM_DOTMATCH)) + end + + def test_fnmatch? + path = Pathname("a") + assert_equal(true, path.fnmatch?("*")) + assert_equal(false, path.fnmatch?("*.*")) + end + + def test_ftype + with_tmpchdir('rubytest-pathname') {|dir| + open("f", "w") {|f| f.write "abc" } + assert_equal("file", Pathname("f").ftype) + Dir.mkdir("d") + assert_equal("directory", Pathname("d").ftype) + } + end + + def test_make_link + with_tmpchdir('rubytest-pathname') {|dir| + open("a", "w") {|f| f.write "abc" } + Pathname("l").make_link(Pathname("a")) + assert_equal("abc", Pathname("l").read) + } + end + + def test_open + with_tmpchdir('rubytest-pathname') {|dir| + open("a", "w") {|f| f.write "abc" } + path = Pathname("a") + + path.open {|f| + assert_equal("abc", f.read) + } + + path.open("r") {|f| + assert_equal("abc", f.read) + } + + Pathname("b").open("w", 0444) {|f| f.write "def" } + assert_equal(0444, File.stat("b").mode & 0777) + assert_equal("def", File.read("b")) + + Pathname("c").open("w", 0444, {}) {|f| f.write "ghi" } + assert_equal(0444, File.stat("c").mode & 0777) + assert_equal("ghi", File.read("c")) + + g = path.open + assert_equal("abc", g.read) + g.close + } + end + + def test_readlink + return if !has_symlink? + with_tmpchdir('rubytest-pathname') {|dir| + open("a", "w") {|f| f.write "abc" } + File.symlink("a", "l") + assert_equal(Pathname("a"), Pathname("l").readlink) + } + end + + def test_rename + with_tmpchdir('rubytest-pathname') {|dir| + open("a", "w") {|f| f.write "abc" } + Pathname("a").rename(Pathname("b")) + assert_equal("abc", File.read("b")) + } + end + + def test_stat + with_tmpchdir('rubytest-pathname') {|dir| + open("a", "w") {|f| f.write "abc" } + s = Pathname("a").stat + assert_equal(3, s.size) + } + end + + def test_lstat + return if !has_symlink? + with_tmpchdir('rubytest-pathname') {|dir| + open("a", "w") {|f| f.write "abc" } + File.symlink("a", "l") + s = Pathname("l").lstat + assert_equal(true, s.symlink?) + s = Pathname("l").stat + assert_equal(false, s.symlink?) + assert_equal(3, s.size) + s = Pathname("a").lstat + assert_equal(false, s.symlink?) + assert_equal(3, s.size) + } + end + + def test_make_symlink + return if !has_symlink? + with_tmpchdir('rubytest-pathname') {|dir| + open("a", "w") {|f| f.write "abc" } + Pathname("l").make_symlink(Pathname("a")) + s = Pathname("l").lstat + assert_equal(true, s.symlink?) + } + end + + def test_truncate + with_tmpchdir('rubytest-pathname') {|dir| + open("a", "w") {|f| f.write "abc" } + Pathname("a").truncate(2) + assert_equal("ab", File.read("a")) + } + end + + def test_utime + with_tmpchdir('rubytest-pathname') {|dir| + open("a", "w") {|f| f.write "abc" } + atime = Time.utc(2000) + mtime = Time.utc(1999) + Pathname("a").utime(atime, mtime) + s = File.stat("a") + assert_equal(atime, s.atime) + assert_equal(mtime, s.mtime) + } + end + + def test_basename + assert_equal(Pathname("basename"), Pathname("dirname/basename").basename) + assert_equal(Pathname("bar"), Pathname("foo/bar.x").basename(".x")) + end + + def test_dirname + assert_equal(Pathname("dirname"), Pathname("dirname/basename").dirname) + end + + def test_extname + assert_equal(".ext", Pathname("basename.ext").extname) + end + + def test_expand_path + drv = DOSISH_DRIVE_LETTER ? Dir.pwd.sub(%r(/.*), '') : "" + assert_equal(Pathname(drv + "/a"), Pathname("/a").expand_path) + assert_equal(Pathname(drv + "/a"), Pathname("a").expand_path("/")) + assert_equal(Pathname(drv + "/a"), Pathname("a").expand_path(Pathname("/"))) + assert_equal(Pathname(drv + "/b"), Pathname("/b").expand_path(Pathname("/a"))) + assert_equal(Pathname(drv + "/a/b"), Pathname("b").expand_path(Pathname("/a"))) + end + + def test_split + assert_equal([Pathname("dirname"), Pathname("basename")], Pathname("dirname/basename").split) + end + + def test_blockdev? + with_tmpchdir('rubytest-pathname') {|dir| + open("f", "w") {|f| f.write "abc" } + assert_equal(false, Pathname("f").blockdev?) + } + end + + def test_chardev? + with_tmpchdir('rubytest-pathname') {|dir| + open("f", "w") {|f| f.write "abc" } + assert_equal(false, Pathname("f").chardev?) + } + end + + def test_executable? + with_tmpchdir('rubytest-pathname') {|dir| + open("f", "w") {|f| f.write "abc" } + assert_equal(false, Pathname("f").executable?) + } + end + + def test_executable_real? + with_tmpchdir('rubytest-pathname') {|dir| + open("f", "w") {|f| f.write "abc" } + assert_equal(false, Pathname("f").executable_real?) + } + end + + def test_exist? + with_tmpchdir('rubytest-pathname') {|dir| + open("f", "w") {|f| f.write "abc" } + assert_equal(true, Pathname("f").exist?) + } + end + + def test_grpowned? + skip "Unix file owner test" if DOSISH + with_tmpchdir('rubytest-pathname') {|dir| + open("f", "w") {|f| f.write "abc" } + assert_equal(true, Pathname("f").grpowned?) + } + end + + def test_directory? + with_tmpchdir('rubytest-pathname') {|dir| + open("f", "w") {|f| f.write "abc" } + assert_equal(false, Pathname("f").directory?) + Dir.mkdir("d") + assert_equal(true, Pathname("d").directory?) + } + end + + def test_file? + with_tmpchdir('rubytest-pathname') {|dir| + open("f", "w") {|f| f.write "abc" } + assert_equal(true, Pathname("f").file?) + Dir.mkdir("d") + assert_equal(false, Pathname("d").file?) + } + end + + def test_pipe? + with_tmpchdir('rubytest-pathname') {|dir| + open("f", "w") {|f| f.write "abc" } + assert_equal(false, Pathname("f").pipe?) + } + end + + def test_socket? + with_tmpchdir('rubytest-pathname') {|dir| + open("f", "w") {|f| f.write "abc" } + assert_equal(false, Pathname("f").socket?) + } + end + + def test_owned? + with_tmpchdir('rubytest-pathname') {|dir| + open("f", "w") {|f| f.write "abc" } + assert_equal(true, Pathname("f").owned?) + } + end + + def test_readable? + with_tmpchdir('rubytest-pathname') {|dir| + open("f", "w") {|f| f.write "abc" } + assert_equal(true, Pathname("f").readable?) + } + end + + def test_world_readable? + skip "Unix file mode bit test" if DOSISH + with_tmpchdir('rubytest-pathname') {|dir| + open("f", "w") {|f| f.write "abc" } + File.chmod(0400, "f") + assert_equal(nil, Pathname("f").world_readable?) + File.chmod(0444, "f") + assert_equal(0444, Pathname("f").world_readable?) + } + end + + def test_readable_real? + with_tmpchdir('rubytest-pathname') {|dir| + open("f", "w") {|f| f.write "abc" } + assert_equal(true, Pathname("f").readable_real?) + } + end + + def test_setuid? + with_tmpchdir('rubytest-pathname') {|dir| + open("f", "w") {|f| f.write "abc" } + assert_equal(false, Pathname("f").setuid?) + } + end + + def test_setgid? + with_tmpchdir('rubytest-pathname') {|dir| + open("f", "w") {|f| f.write "abc" } + assert_equal(false, Pathname("f").setgid?) + } + end + + def test_size + with_tmpchdir('rubytest-pathname') {|dir| + open("f", "w") {|f| f.write "abc" } + assert_equal(3, Pathname("f").size) + open("z", "w") {|f| } + assert_equal(0, Pathname("z").size) + assert_raise(Errno::ENOENT) { Pathname("not-exist").size } + } + end + + def test_size? + with_tmpchdir('rubytest-pathname') {|dir| + open("f", "w") {|f| f.write "abc" } + assert_equal(3, Pathname("f").size?) + open("z", "w") {|f| } + assert_equal(nil, Pathname("z").size?) + assert_equal(nil, Pathname("not-exist").size?) + } + end + + def test_sticky? + skip "Unix file mode bit test" if DOSISH + with_tmpchdir('rubytest-pathname') {|dir| + open("f", "w") {|f| f.write "abc" } + assert_equal(false, Pathname("f").sticky?) + } + end + + def test_symlink? + with_tmpchdir('rubytest-pathname') {|dir| + open("f", "w") {|f| f.write "abc" } + assert_equal(false, Pathname("f").symlink?) + } + end + + def test_writable? + with_tmpchdir('rubytest-pathname') {|dir| + open("f", "w") {|f| f.write "abc" } + assert_equal(true, Pathname("f").writable?) + } + end + + def test_world_writable? + skip "Unix file mode bit test" if DOSISH + with_tmpchdir('rubytest-pathname') {|dir| + open("f", "w") {|f| f.write "abc" } + File.chmod(0600, "f") + assert_equal(nil, Pathname("f").world_writable?) + File.chmod(0666, "f") + assert_equal(0666, Pathname("f").world_writable?) + } + end + + def test_writable_real? + with_tmpchdir('rubytest-pathname') {|dir| + open("f", "w") {|f| f.write "abc" } + assert_equal(true, Pathname("f").writable?) + } + end + + def test_zero? + with_tmpchdir('rubytest-pathname') {|dir| + open("f", "w") {|f| f.write "abc" } + assert_equal(false, Pathname("f").zero?) + open("z", "w") {|f| } + assert_equal(true, Pathname("z").zero?) + assert_equal(false, Pathname("not-exist").zero?) + } + end + + def test_s_glob + with_tmpchdir('rubytest-pathname') {|dir| + open("f", "w") {|f| f.write "abc" } + Dir.mkdir("d") + assert_equal([Pathname("d"), Pathname("f")], Pathname.glob("*").sort) + } + end + + def test_s_getwd + wd = Pathname.getwd + assert_kind_of(Pathname, wd) + end + + def test_entries + with_tmpchdir('rubytest-pathname') {|dir| + open("a", "w") {} + open("b", "w") {} + assert_equal([Pathname("."), Pathname(".."), Pathname("a"), Pathname("b")], Pathname(".").entries.sort) + } + end + + def test_each_entry + with_tmpchdir('rubytest-pathname') {|dir| + open("a", "w") {} + open("b", "w") {} + a = [] + Pathname(".").each_entry {|v| a << v } + assert_equal([Pathname("."), Pathname(".."), Pathname("a"), Pathname("b")], a.sort) + } + end + + def test_mkdir + with_tmpchdir('rubytest-pathname') {|dir| + Pathname("d").mkdir + assert(File.directory?("d")) + } + end + + def test_rmdir + with_tmpchdir('rubytest-pathname') {|dir| + Pathname("d").mkdir + assert(File.directory?("d")) + Pathname("d").rmdir + assert(!File.exists?("d")) + } + end + + def test_opendir + with_tmpchdir('rubytest-pathname') {|dir| + open("a", "w") {} + open("b", "w") {} + a = [] + Pathname(".").opendir {|d| + d.each {|e| a << e } + } + assert_equal([".", "..", "a", "b"], a.sort) + } + end + + def test_find + with_tmpchdir('rubytest-pathname') {|dir| + open("a", "w") {} + open("b", "w") {} + Dir.mkdir("d") + open("d/x", "w") {} + open("d/y", "w") {} + a = []; Pathname(".").find {|v| a << v }; a.sort! + assert_equal([Pathname("."), Pathname("a"), Pathname("b"), Pathname("d"), Pathname("d/x"), Pathname("d/y")], a) + a = []; Pathname("d").find {|v| a << v }; a.sort! + assert_equal([Pathname("d"), Pathname("d/x"), Pathname("d/y")], a) + } + end + + def test_mkpath + with_tmpchdir('rubytest-pathname') {|dir| + Pathname("a/b/c/d").mkpath + assert(File.directory?("a/b/c/d")) + } + end + + def test_rmtree + with_tmpchdir('rubytest-pathname') {|dir| + Pathname("a/b/c/d").mkpath + assert(File.exist?("a/b/c/d")) + Pathname("a").rmtree + assert(!File.exist?("a")) + } + end + + def test_unlink + with_tmpchdir('rubytest-pathname') {|dir| + open("f", "w") {|f| f.write "abc" } + Pathname("f").unlink + assert(!File.exist?("f")) + Dir.mkdir("d") + Pathname("d").unlink + assert(!File.exist?("d")) + } + end + + def test_matchop + assert_raise(NoMethodError) { Pathname("a") =~ /a/ } + end + def test_file_basename assert_equal("bar", File.basename(Pathname.new("foo/bar"))) end -- ML: ruby-changes@q... Info: http://www.atdot.net/~ko1/quickml/