[MacRuby-devel] Exception backtraces in instance_eval

Martijn Walraven martijn at martijnwalraven.com
Sun Nov 14 01:05:06 PST 2010


Hi,

I've looked into the issue some more, and it turns out the backtraces created by MacRuby nightly are much more similar to the 1.9.2 ones. The backtrace still misses the line referring to the actual execution of the spec though, so the problem hasn't been completely solved yet.

It seems this might be related to a lack of file and line information in the example Proc. While Procs in Ruby 1.9.2 know their source location, it seems MacRuby Procs don't.

Ruby 1.9.2:
#<Proc:0x00000101487860@/Users/martijnwalraven/Development/Projects/Experimental/iOSTestingSetup/Test/Spec/helloworld_spec.rb:4>
MacRuby nightly:
#<Proc:0x2003c3420>

Is this a known limitation?

Thanks,

Martijn

RSpec output from MacRuby nightly:

1) A new HelloWorld object should return the appropriate greeting
   Failure/Error: Unable to find matching line from backtrace
   expected: "Hello World!",
        got: "Hello Earth!" (using ==)
   # /usr/local/rvm/gems/macruby-nightly at test/gems/rspec-expectations-2.1.0/lib/rspec/expectations/fail_with.rb:29:in `fail_with:'
   # /usr/local/rvm/gems/macruby-nightly at test/gems/rspec-expectations-2.1.0/lib/rspec/matchers/operator_matcher.rb:48:in `fail_with_message:'
   # /usr/local/rvm/gems/macruby-nightly at test/gems/rspec-expectations-2.1.0/lib/rspec/matchers/operator_matcher.rb:70:in `__delegate_operator:'
   # /usr/local/rvm/gems/macruby-nightly at test/gems/rspec-expectations-2.1.0/lib/rspec/matchers/operator_matcher.rb:60:in `eval_match:'
   # /usr/local/rvm/gems/macruby-nightly at test/gems/rspec-expectations-2.1.0/lib/rspec/matchers/operator_matcher.rb:29:in `block'
   # /usr/local/rvm/gems/macruby-nightly at test/gems/rspec-core-2.1.0/lib/rspec/core/example.rb:42:in `block'
   # /usr/local/rvm/gems/macruby-nightly at test/gems/rspec-core-2.1.0/lib/rspec/core/example.rb:81:in `with_around_hooks'
   # /usr/local/rvm/gems/macruby-nightly at test/gems/rspec-core-2.1.0/lib/rspec/core/example.rb:39:in `block'
   # /usr/local/rvm/gems/macruby-nightly at test/gems/rspec-core-2.1.0/lib/rspec/core/example.rb:75:in `block'
   # /usr/local/rvm/gems/macruby-nightly at test/gems/rspec-core-2.1.0/lib/rspec/core/example.rb:74:in `with_pending_capture'
   # /usr/local/rvm/gems/macruby-nightly at test/gems/rspec-core-2.1.0/lib/rspec/core/example.rb:38:in `run:'
   # /usr/local/rvm/gems/macruby-nightly at test/gems/rspec-core-2.1.0/lib/rspec/core/example_group.rb:261:in `block'
   # /usr/local/rvm/gems/macruby-nightly at test/gems/rspec-core-2.1.0/lib/rspec/core/example_group.rb:257:in `run_examples:'
   # /usr/local/rvm/gems/macruby-nightly at test/gems/rspec-core-2.1.0/lib/rspec/core/example_group.rb:231:in `run:'
   # /usr/local/rvm/gems/macruby-nightly at test/gems/rspec-core-2.1.0/lib/rspec/core/command_line.rb:27:in `block'
   # /usr/local/rvm/gems/macruby-nightly at test/gems/rspec-core-2.1.0/lib/rspec/core/command_line.rb:27:in `block'
   # /usr/local/rvm/gems/macruby-nightly at test/gems/rspec-core-2.1.0/lib/rspec/core/reporter.rb:12:in `report:'
   # /usr/local/rvm/gems/macruby-nightly at test/gems/rspec-core-2.1.0/lib/rspec/core/command_line.rb:24:in `run:'
   # /usr/local/rvm/gems/macruby-nightly at test/gems/rspec-core-2.1.0/lib/rspec/core/runner.rb:55:in `run_in_process:'
   # /usr/local/rvm/gems/macruby-nightly at test/gems/rspec-core-2.1.0/lib/rspec/core/runner.rb:46:in `run:'
   # /usr/local/rvm/gems/macruby-nightly at test/gems/rspec-core-2.1.0/lib/rspec/core/runner.rb:10:in `block'


More information about the MacRuby-devel mailing list