Code Review: netinterop1

tfpt review “/shelveset:netinterop1;REDMOND\jdeville”
Comment :
More tests for .net interop. This is taking advantage of the IronRuby
selfhosting that Tomas blogged about in order to maintain isolation as I
run different styles of requiring files. If you add
Merlin/External/Languages/IronRuby/mspec/mspec/bin to your path, you
should be able to run these with “mspec -fs /path/to/Interop/Load”

On Mon, Jan 26, 2009 at 1:03 PM, Jim D. [email protected]
wrote:

tfpt review “/shelveset:netinterop1;REDMOND\jdeville”
Comment :
More tests for .net interop. This is taking advantage of the IronRuby selfhosting that Tomas blogged about in order to maintain

Where can I find Tomas’ blog? I’d like to subscribe but I didn’t see
it on the IronRuby “people” page:

http://ironruby.net/About/People

Justin

The best way to answer your own question - post to a mailing list! I
found a nice blogroll post by Oleg:

The Microsoft Dynamic Languages Team Blogroll - Signs on the Sand

Maybe someone can update the people page? I would but I haven’t
created an account and am pressed for time as it is …

Justin

Srivatsn,

Can you take a look?

JD

Fixed :slight_smile:

Tomas

Sorry about the delay on this. Here are my comments:

  1. Does MSpec have shared behaviors, like Rake or Bacon? If so, you
    should try to remove the duplication of managing engines and whatnot
    that you have in before/after blocks. For example:

shared “.NET Test” do
before { @engine = IronRuby.create_engine }
after { @engine = nil }
end

describe “Midifying and reloading a .NET BCL Assembly” do
behaves_like “.NET Test”
end

  1. There’s a lot of duplication in the “Repeated loading of a .NET BCL
    assembly with Strong name”, and examples like that, so can you do
    something like this:

it “only loads once with require followed by require” do
[true, false].each do |t|
@engine.execute(“require ‘System.Core, Version=3.5.0.0,
Culture=neutral, PublicKeyToken=b77a5c561934e089’”).should == t
end
end

or where the loading mechanism changes

it “loads twice with load followed by load_assembly” do
[‘load’, ‘load_assembly’].each do |t|
@engine.execute("#{t} ‘System.Core, Version=3.5.0.0,
Culture=neutral, PublicKeyToken=b77a5c561934e089’").should == true
end
end

Otherwise, it’s a great start!

Updated shelveset, and diff.

JD