Fix for JRUBY-2882. Handle error messages related to constructors better
[jruby.git] / test / test_etc.rb
blob7bc694f3d6854c0f15f04e300ee47969dbb0db6b
1 require 'test/unit'
2 require 'rbconfig'
3 require 'etc'
5 class TestEtc < Test::Unit::TestCase
6   WINDOWS = Config::CONFIG['host_os'] =~ /Windows|mswin/
7   
8   def assert_nil_or_not_implemented
9     assert_nil(yield)
10   rescue NotImplementedError
11   end
13   # JRUBY-2355
14   def test_etc_getlogin
15     # TODO: excliding this test case since it fails
16     # for me on Linux when executed from within Ant build 
17     # for some reason
18     # 
19     # assert_not_nil(Etc.getlogin)
20   end
22   if (WINDOWS)
23     # JRUBY-2356
24     # TODO: see JRUBY-2820: Most Etc methods behave diferently
25     # on Windows under x32 and x64 JVMs
26     def test_not_implemented_methods_on_windows
27       assert_nil_or_not_implemented { Etc.endgrent }
28       assert_nil_or_not_implemented { Etc.endpwent }
29       assert_nil_or_not_implemented { Etc.getgrent }
30       assert_nil_or_not_implemented { Etc.getgrgid(100) }
31       assert_nil_or_not_implemented { Etc.getgrnam("name") }
32       assert_nil_or_not_implemented { Etc.getpwent }
33       assert_nil_or_not_implemented { Etc.getpwnam("name") }
34       assert_nil_or_not_implemented { Etc.getpwuid }
35       assert_nil_or_not_implemented { Etc.getpwuid(100) }
36       assert_nil_or_not_implemented { Etc.group }
37       assert_nil_or_not_implemented { Etc.passwd }
38       assert_nil_or_not_implemented { Etc.setgrent }
39       assert_nil_or_not_implemented { Etc.setpwent }
40     end
41   end
42 end