array on 1.9 mode breaks Nokogiri test.
---------------------------------------

                 Key: JRUBY-5657
                 URL: http://jira.codehaus.org/browse/JRUBY-5657
             Project: JRuby
          Issue Type: Bug
          Components: Core Classes/Modules
    Affects Versions: JRuby 1.6
         Environment: OSX 10.6.7, JDK 1.6.0_24
            Reporter: Yoko Harada


MRI 1.9.2 and JRuby 1.8.6 passes test_each of test/xml/test_node.rb, but JRuby 
1.9.2 fails.
The failing test is below. To see what's going on, I added some print lines:
{noformat} 
def test_each
  attributes = []
  @xml.xpath('//address')[1].each do |key, value|
puts "key: #{key.inspect}, value: #{value.inspect}"
    attributes << [key, value]
  end
  assert_equal [['domestic', 'Yes'], ['street', 'Yes']], attributes
end
{noformat} 
Nokogiri defines the "each" method above in xml/node.rb as in below. Also, I 
added print lines to see what is happening:
{noformat} 
def each &block
  attribute_nodes.each { |node|
p node
p node.node_name, node.value
  ret = block.call([node.node_name, node.value])
p 'ret', ret
ret
  }
end
{noformat} 

when the test ran, MRI 1.9.2 produced:
{noformat}
/Users/yoko/Documents/workspace/Peony/test/helper.rb:10: version info: 
{"warnings"=>[], "nokogiri"=>"1.5.0.beta.4", "ruby"=>{"version"=>"1.9.2", 
"platform"=>"x86_64-darwin10.5.0", "engine"=>"ruby"}, 
"libxml"=>{"binding"=>"extension", "compiled"=>"2.7.8", "loaded"=>"2.7.8"}}
Run options: --seed 13537

# Running tests:

.................................................................................................#<Nokogiri::XML::Attr:0x80cee4d0
 name="domestic" value="Yes">
"domestic"
"Yes"
key: "domestic", value: "Yes"
"ret"
[["domestic", "Yes"]]
#<Nokogiri::XML::Attr:0x80cee4bc name="street" value="Yes">
"street"
"Yes"
key: "street", value: "Yes"
"ret"
[["domestic", "Yes"], ["street", "Yes"]]
.......

Finished tests in 0.091298s, 1139.1268 tests/s, 2650.6605 assertions/s.

104 tests, 242 assertions, 0 failures, 0 errors, 0 skips
{noformat}

JRuby 1.8.7 produced:
{noformat}
/Users/yoko/Documents/workspace/Peony/test/helper.rb:10: version info: 
{"warnings"=>[], "nokogiri"=>"1.5.0.beta.4", "ruby"=>{"version"=>"1.8.7", 
"platform"=>"java", "engine"=>"jruby", "jruby"=>"1.6.0"}}
Run options: --seed 56660

# Running tests:

............................................#<Nokogiri::XML::Attr:0x7d0 
name="domestic" value="Yes">
"domestic"
"Yes"
key: "domestic", value: "Yes"
"ret"
[["domestic", "Yes"]]
#<Nokogiri::XML::Attr:0x7d2 name="street" value="Yes">
"street"
"Yes"
key: "street", value: "Yes"
"ret"
[["domestic", "Yes"], ["street", "Yes"]]
...........................................................

Finished tests in 2.423000s, 42.5093 tests/s, 98.2253 assertions/s.

103 tests, 238 assertions, 0 failures, 0 errors, 0 skips
{noformat}

Both passed the test, but JRuby 1.9.2 produced:
{noformat}
/Users/yoko/Documents/workspace/Peony/test/helper.rb:10: version info: 
{"warnings"=>[], "nokogiri"=>"1.5.0.beta.4", "ruby"=>{"version"=>"1.9.2", 
"platform"=>"java", "engine"=>"jruby", "jruby"=>"1.6.0"}}
Run options: --seed 22326

# Running tests:

.............................................................#<Nokogiri::XML::Attr:0x7fc
 name="domestic" value="Yes">
"domestic"
"Yes"
key: ["domestic", "Yes"], value: nil
"ret"
[[["domestic", "Yes"], nil]]
#<Nokogiri::XML::Attr:0x7fe name="street" value="Yes">
"street"
"Yes"
key: ["street", "Yes"], value: nil
"ret"
[[["domestic", "Yes"], nil], [["street", "Yes"], nil]]
F.........................................

Finished tests in 2.474000s, 41.6330 tests/s, 96.2005 assertions/s.

  1) Failure:
test_each(Nokogiri::XML::TestNode) [test/xml/test_node.rb:555]:
Expected [["domestic", "Yes"], ["street", "Yes"]], not [[["domestic", "Yes"], 
nil], [["street", "Yes"], nil]].

103 tests, 238 assertions, 1 failures, 0 errors, 0 skips
{noformat}

So, the argument of the block.call([node.node_name, node.value]) becames key: 
"domestic", value: "Yes" on MRI and JRuby 1.8.7, but key: ["domestic", "Yes"], 
value: nil on JRuby 1.9.2.

-- 
This message is automatically generated by JIRA.
-
If you think it was sent incorrectly contact one of the administrators: 
http://jira.codehaus.org/secure/Administrators.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