Running RubyGems tests with JRuby

(originally posted to dev, but might be more useful on user)

Using JRuby 1.3.1 to run the RubyGems 1.3.1 test suite, I get an
exception
midway but no visible exception message. I used this to run the tests,
just
to simplify things (given the RubyGems-1_3_1-test directory contains the
RubyGems test directory). MRI and IronRuby run this to completion:

test_dir = File.expand_path “RubyGems-1_3_1-test”
$: << test_dir
Dir[“#{test_dir}/test_*.rb”].each { |f| require f }

Here’s the JRuby output:

JRuby limited openssl loaded. gem install jruby-openssl for full
support.
http://wiki.jruby.org/wiki/JRuby_Builtin_OpenSSL
Loaded suite RubyGemsTests
Started
.F.FFF…F…F.FF…F.F…FFF…F…F…EEEEEEE…F…F…F…EE…FF…F…E…EE.E.F…EF…EE…E…E…EE.FE.EEF…RubyString.java:3893:in
oct': java.lang.ArrayIndexOutOfBoundsException: 8 from org/jruby/RubyString$i_method_0_0$RUBYINVOKER$oct.gen:-1:in call’
from CachingCallSite.java:75:in call' from tar_header.rb:108:in file
from JittedMethod.java:145:in call' from DefaultMethod.java:154:in call’
from CachingCallSite.java:115:in call' from tar_reader.rb:59:in block_0$RUBY$block
from null:-1:in call' from CompiledBlock.java:102:in yield’
from Block.java:194:in yield' from RubyKernel.java:1147:in loop’
from
org/jruby/RubyKernel$s_method_0_0$RUBYFRAMEDINVOKER$loop.gen:-1:in
call' from CachingCallSite.java:84:in callBlock’
from CachingCallSite.java:101:in callIter' from tar_reader.rb:56:in file
from JittedMethod.java:128:in call' from DefaultMethod.java:146:in call’
from CachingCallSite.java:84:in callBlock' from CachingCallSite.java:101:in callIter’
from tar_input.rb:33:in __file__' from AbstractScript.java:53:in file
from JittedMethod.java:196:in call' from DefaultMethod.java:178:in call’
from CachingCallSite.java:164:in callBlock' from CachingCallSite.java:171:in call’
from RubyClass.java:622:in call' from DynamicMethod.java:172:in call’
from WrapperMethod.java:62:in call' from CachingCallSite.java:155:in call’
from tar_input.rb:18:in ensure_1$RUBY$__ensure___0' from tar_input.rb:-1:in file
from AbstractScript.java:53:in __file__' from JittedMethod.java:196:in call’
from DefaultMethod.java:178:in call' from CachingCallSite.java:164:in callBlock’
from CachingCallSite.java:171:in call' from package.rb:56:in file
from AbstractScript.java:57:in __file__' from JittedMethod.java:230:in call’
from DefaultMethod.java:194:in call' from CachingCallSite.java:204:in callBlock’
from CachingCallSite.java:221:in callIter' from format.rb:67:in file
from AbstractScript.java:49:in __file__' from JittedMethod.java:145:in call’
from DefaultMethod.java:154:in call' from CachingCallSite.java:278:in cacheAndCall’
from CachingCallSite.java:117:in call' from CallOneArgNode.java:57:in interpret’
from NewlineNode.java:104:in interpret' from InterpretedBlock.java:218:in evalBlockBody’
from InterpretedBlock.java:169:in yield' from Block.java:194:in yield’
from YieldNode.java:143:in interpret' from NewlineNode.java:104:in interpret’
from BlockNode.java:71:in interpret' from RescueNode.java:225:in executeBody’
from RescueNode.java:147:in interpretWithJavaExceptions' from RescueNode.java:110:in interpret’
from BeginNode.java:83:in interpret' from NewlineNode.java:104:in interpret’
from BlockNode.java:71:in interpret' from InterpretedMethod.java:192:in call’
from DefaultMethod.java:159:in call' from CachingCallSite.java:288:in cacheAndCall’
from CachingCallSite.java:126:in callBlock' from CachingCallSite.java:141:in callIter’
from FCallOneArgBlockNode.java:34:in interpret' from LocalAsgnNode.java:123:in interpret’
from NewlineNode.java:104:in interpret' from BlockNode.java:71:in interpret’
from InterpretedMethod.java:155:in call' from DefaultMethod.java:143:in call’
from RubyClass.java:394:in finvoke' from RubyObject.java:1413:in send’
from
org/jruby/RubyObject$i_method_multi$RUBYINVOKER$send.gen:-1:in
call' from JavaMethod.java:259:in call’
from CachingCallSite.java:278:in cacheAndCall' from CachingCallSite.java:117:in call’
from unit.rb:443:in rescue_1$RUBY$__rescue___1' from unit.rb:-1:in ensure_1$RUBY$__ensure___0’
from unit.rb:440:in __file__' from JittedMethod.java:145:in call’
from DefaultMethod.java:154:in call' from CachingCallSite.java:278:in cacheAndCall’
from CachingCallSite.java:117:in call' from CallOneArgNode.java:57:in interpret’
from DAsgnNode.java:110:in interpret' from NewlineNode.java:104:in interpret’
from BlockNode.java:71:in interpret' from InterpretedBlock.java:218:in evalBlockBody’
from InterpretedBlock.java:169:in yield' from Block.java:194:in yield’
from RubyArray.java:1562:in each' from org/jruby/RubyArray$i_method_0_0$RUBYFRAMEDINVOKER$each.gen:-1:in call’
from CachingCallSite.java:84:in callBlock' from CachingCallSite.java:91:in call’
from CallNoArgBlockNode.java:64:in interpret' from NewlineNode.java:104:in interpret’
from InterpretedBlock.java:218:in evalBlockBody' from InterpretedBlock.java:169:in yield’
from Block.java:194:in yield' from RubyArray.java:1562:in each’
from
org/jruby/RubyArray$i_method_0_0$RUBYFRAMEDINVOKER$each.gen:-1:in call' from CachingCallSite.java:268:in cacheAndCall’
from CachingCallSite.java:86:in callBlock' from CachingCallSite.java:91:in call’
from CallNoArgBlockNode.java:64:in interpret' from NewlineNode.java:104:in interpret’
from BlockNode.java:71:in interpret' from InterpretedMethod.java:173:in call’
from DefaultMethod.java:151:in call' from CachingCallSite.java:278:in cacheAndCall’
from CachingCallSite.java:117:in call' from FCallOneArgNode.java:36:in interpret’
from NewlineNode.java:104:in interpret' from BlockNode.java:71:in interpret’
from InterpretedMethod.java:173:in call' from DefaultMethod.java:151:in call’
from CachingCallSite.java:278:in cacheAndCall' from CachingCallSite.java:117:in call’
from CallOneArgNode.java:57:in interpret' from DAsgnNode.java:110:in interpret’
from NewlineNode.java:104:in interpret' from BlockNode.java:71:in interpret’
from InterpretedBlock.java:218:in evalBlockBody' from InterpretedBlock.java:206:in yield’
from BlockBody.java:72:in call' from BlockBody.java:78:in call’
from Block.java:89:in call' from RubyProc.java:221:in call’
from RubyProc.java:204:in call' from Ruby.java:2580:in tearDown’
from Main.java:270:in run' from Main.java:113:in run’
from Main.java:97:in `main’

Is it know to work currently and I’m just overlooking something?

~Jimmy