Vinutha Nayak created JRUBY-6301:
------------------------------------

             Summary: scripting_lang.jruby:undefined method in test_loop_1_9.rb
                 Key: JRUBY-6301
                 URL: https://jira.codehaus.org/browse/JRUBY-6301
             Project: JRuby
          Issue Type: Bug
          Components: Launcher
    Affects Versions: JRuby 1.7
            Reporter: Vinutha Nayak
            Assignee: Thomas E Enebo
             Fix For: JRuby 1.7


Again this testcase seems to be part of the one that is shipped with ruby 1.7.0 
source . 

require 'test/unit'

class TestLoop19 < Test::Unit::TestCase
  def test_loop_catches_rescues_iteration_and_does_not_export_scope
    loop do
      n = 1
      raise StopIteration
    end
    assert_raises NameError do n end  <--------------------------------
  end
end

While running this against Java 7 SR1 , I get the following error 

test_loop_catches_rescues_iteration_and_does_not_export_scope(TestLoop19):
NoMethodError: undefined method `foo' for #<TestLoop19:0xcf5a8ceb> 
<--------------------------------------------------
    /home/vinunaya/ruby/test/test_loop_1_9.rb:6:in 
`test_loop_catches_rescues_iteration_and_does_not_export_scope'
    org/jruby/RubyKernel.java:1342:in `loop'
    /home/vinunaya/ruby/test/test_loop_1_9.rb:5:in 
`test_loop_catches_rescues_iteration_and_does_not_export_scope'
    org/jruby/RubyKernel.java:1944:in `send'
    org/jruby/RubyArray.java:1603:in `each'
    org/jruby/RubyArray.java:1603:in `each'


So if we observed the lines pointed out in the above failure message , it is 
basically getting a "NoMethodError" from the "do...end" block rather than the 
"NameError" expected.


So further looking into the issue , the above can be recreated even with a 
simple change to testcase . 


class TestLoop19 < Test::Unit::TestCase
  def test_loop_catches_rescues_iteration_and_does_not_export_scope
     loop do
      puts foo   <--------------------------
      raise StopIteration
    end
  end

So here I have removed the assertion and added a "puts " statement instead. If 
I run this with Java 7 SR1 , I get the error as mentioned above  where as with 
Java 6 I get "NameError" as expected . 

As per http://www.ruby-doc.org/core-1.9.3/NameError.html documentation  we 
should be getting the "NameError" error itself . 

Again here also ,when I tried running jruby with "--debug" option ( on Java7 
SR1 line) I see the testcase passes . 

I have raised JRUBY-6300 which was for slightly different issue but there too 
with "--debug" option it was passing . So I am not sure if these are related . 
If yes can you please let me know the build number where this is fixed . If not 
, can you please help with this issue . ?



--
This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators: 
https://jira.codehaus.org/secure/ContactAdministrators!default.jspa
For more information on JIRA, see: http://www.atlassian.com/software/jira

        

---------------------------------------------------------------------
To unsubscribe from this list, please visit:

    http://xircles.codehaus.org/manage_email


Reply via email to