diff options
author | yugui <yugui@b2dd03c8-39d4-4d8f-98ff-823fe69b080e> | 2008-08-25 15:02:05 +0000 |
---|---|---|
committer | yugui <yugui@b2dd03c8-39d4-4d8f-98ff-823fe69b080e> | 2008-08-25 15:02:05 +0000 |
commit | 0dc342de848a642ecce8db697b8fecd83a63e117 (patch) | |
tree | 2b7ed4724aff1f86073e4740134bda9c4aac1a39 /trunk/test/etc/test_etc.rb | |
parent | ef70cf7138ab8034b5b806f466e4b484b24f0f88 (diff) |
added tag v1_9_0_4
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/tags/v1_9_0_4@18845 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
Diffstat (limited to 'trunk/test/etc/test_etc.rb')
-rw-r--r-- | trunk/test/etc/test_etc.rb | 139 |
1 files changed, 139 insertions, 0 deletions
diff --git a/trunk/test/etc/test_etc.rb b/trunk/test/etc/test_etc.rb new file mode 100644 index 0000000000..6fc7c6092b --- /dev/null +++ b/trunk/test/etc/test_etc.rb @@ -0,0 +1,139 @@ +require "test/unit" +require "etc" + +class TestEtc < Test::Unit::TestCase + def test_getlogin + s = Etc.getlogin + assert(s.is_a?(String) || s == nil, "getlogin must return a String or nil") + end + + def test_passwd + Etc.passwd do |s| + assert_instance_of(String, s.name) + assert_instance_of(String, s.passwd) if s.respond_to?(:passwd) + assert_kind_of(Integer, s.uid) + assert_kind_of(Integer, s.gid) + assert_instance_of(String, s.gecos) if s.respond_to?(:gecos) + assert_instance_of(String, s.dir) + assert_instance_of(String, s.shell) + assert_kind_of(Integer, s.change) if s.respond_to?(:change) + assert_kind_of(Integer, s.quota) if s.respond_to?(:quota) + assert(s.age.is_a?(Integer) || s.age.is_a?(String)) if s.respond_to?(:age) + assert_instance_of(String, s.uclass) if s.respond_to?(:uclass) + assert_instance_of(String, s.comment) if s.respond_to?(:comment) + assert_kind_of(Integer, s.expire) if s.respond_to?(:expire) + end + + assert_raise(RuntimeError) { Etc.passwd { Etc.passwd { } } } + end + + def test_getpwuid + passwd = {} + Etc.passwd {|s| passwd[s.uid] = s unless passwd[s.uid] } + passwd.values.each do |s| + assert_equal(s, Etc.getpwuid(s.uid)) + assert_equal(s, Etc.getpwuid) if Etc.getlogin == s.name + end + end + + def test_getpwnam + passwd = [] + Etc.passwd {|s| passwd << s } + passwd.each do |s| + assert_equal(s, Etc.getpwnam(s.name)) + end + end + + def test_setpwent + a = [] + Etc.passwd do |s| + a << s + Etc.setpwent if a.size == 3 + end + assert_equal(a[0, 3], a[3, 3]) if a.size >= 6 + end + + def test_getpwent + a = [] + Etc.passwd {|s| a << s } + b = [] + Etc.passwd do |s| + b << s + s = Etc.getpwent + break unless s + b << s + end + assert_equal(a, b) + end + + def test_endpwent + a = [] + Etc.passwd do |s| + a << s + Etc.endpwent if a.size == 3 + end + assert_equal(a[0, 3], a[3, 3]) if a.size >= 6 + end + + def test_group + Etc.group do |s| + assert_instance_of(String, s.name) + assert_instance_of(String, s.passwd) if s.respond_to?(:passwd) + assert_kind_of(Integer, s.gid) + end + + assert_raise(RuntimeError) { Etc.group { Etc.group { } } } + end + + def test_getgrgid + groups = [] + Etc.group do |s| + groups << s + end + groups.each do |s| + assert_equal(s, Etc.getgrgid(s.gid)) + assert_equal(s, Etc.getgrgid) if Etc.getlogin == s.name + end + end + + def test_getgrnam + groups = [] + Etc.group do |s| + groups << s + end + groups.each do |s| + assert_equal(s, Etc.getgrnam(s.name)) + end + end + + def test_setgrent + a = [] + Etc.group do |s| + a << s + Etc.setgrent if a.size == 3 + end + assert_equal(a[0, 3], a[3, 3]) if a.size >= 6 + end + + def test_getgrent + a = [] + Etc.group {|s| a << s } + b = [] + Etc.group do |s| + b << s + s = Etc.getgrent + break unless s + b << s + end + assert_equal(a, b) + end + + def test_endgrent + a = [] + Etc.group do |s| + a << s + Etc.endgrent if a.size == 3 + end + assert_equal(a[0, 3], a[3, 3]) if a.size >= 6 + end +end |