ruby-changes:5297
From: mame <ko1@a...>
Date: Tue, 3 Jun 2008 22:26:54 +0900 (JST)
Subject: [ruby-changes:5297] Ruby:r16796 (trunk): * test/etc/test_etc.rb: new tests for etc.
mame 2008-06-03 22:26:38 +0900 (Tue, 03 Jun 2008) New Revision: 16796 Added directories: trunk/test/etc/ Added files: trunk/test/etc/test_etc.rb Modified files: trunk/ChangeLog Log: * test/etc/test_etc.rb: new tests for etc. Added: trunk/test/etc/ http://svn.ruby-lang.org/cgi-bin/viewvc.cgi/trunk/ChangeLog?r1=16796&r2=16795&diff_format=u http://svn.ruby-lang.org/cgi-bin/viewvc.cgi/trunk/test/etc/test_etc.rb?revision=16796&view=markup http://svn.ruby-lang.org/cgi-bin/viewvc.cgi/trunk/test/etc/test_etc.rb?r1=16796&r2=16795&diff_format=u Index: ChangeLog =================================================================== --- ChangeLog (revision 16795) +++ ChangeLog (revision 16796) @@ -1,3 +1,7 @@ +Tue Jun 3 22:25:51 2008 Yusuke Endoh <mame@t...> + + * test/etc/test_etc.rb: new tests for etc. + Tue Jun 3 19:35:02 2008 Akinori MUSHA <knu@i...> * enumerator.c (enumerator_with_memo): New method: with_memo(). Index: test/etc/test_etc.rb =================================================================== --- test/etc/test_etc.rb (revision 0) +++ test/etc/test_etc.rb (revision 16796) @@ -0,0 +1,127 @@ +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_kind_of(Integer, s.age) 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 + Etc.passwd do |s| + assert_equal(s, Etc.getpwuid(s.uid)) + assert_equal(s, Etc.getpwuid) if Etc.getlogin == s.name + end + end + + def test_getpwnam + Etc.passwd 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 + Etc.group do |s| + assert_equal(s, Etc.getgrgid(s.gid)) + assert_equal(s, Etc.getgrgid) if Etc.getlogin == s.name + end + end + + def test_getgrnam + Etc.group 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 Property changes on: test/etc/test_etc.rb ___________________________________________________________________ Name: svn:eol-style + LF -- ML: ruby-changes@q... Info: http://www.atdot.net/~ko1/quickml/