Navigate/Search

IronRuby .NET Test Plan

Friday, August 15th, 2008

I’ve decided to try something a little different. Instead of getting a word document passed around to look at and review, I’ve decided to put my .NET interop test plan on our public Ironruby wiki to get comments from the team and the community. It’s not perfect, it’s what I’d normally call 1st draft, but this is how I’m going to do this one.

You can find it here: http://ironruby.net/.NET_Testing_plans

We’re going to have to have a discussion about what .NET interop means for IronRuby, and what cases are going to work, and what cases aren’t. I’d love to have this page be a starting point for that discussion. Turn the bullet points into links, and we can decide what the case means, how it should look, and how it should work.

The way it works now is scenarios and cases. Each scenario describes a .NET object or type. Each case is how to use that object or type. It’s essentially a matrix in bullet form, scenarios are rows, cases are columns, or vice versa. This leads to a lot of test cases, which is another area I could use help. I would love if people would write tests that correspond to these cases. I’ll be writing them too.

I’ll be writing them with the MSpec framework. I’ll be getting a folder structure set up in the repo at $SVN_ROOT/trunk/tests/ironruby/interop. The structure will be based on the sections of this page. I’ll try to write up some pages and links on MSpec for people who aren’t familiar with it.

As you read this, feel free to make changes, sign up for an account if needed. If you have questions about what I meant, feel free to ask. I’ll do my best to explain. This is as much an experiment for me as it may be for you.

IronRuby gives back to RubySpec

Thursday, July 24th, 2008

John Lam announced a couple big things today. One was the announcement about our IronRuby Alpha Release. Another is the announcement of the IronRuby Contribs project and Silverline. This is exciting because it is a chance for us to give some of our ideas back to the community.

The final one, and the one that is the most exciting to me, is the announcement of our ability to contribute back to the RubySpec and MSpec projects. These projects are a key to our ability to write a conforming Ruby implementation. They are writing a spec for the otherwise unspeced Ruby language. We’ve been using the since before I started, and we’ve added some specs, modified some to run on Windows, and added a few guards to properly define how IronRuby should behave compared to the spec. Up til now, those have lived in our repositories. This announcement means we can start giving the changes back to the community.

I’ve been looking forward to this, largely because it means less duplicate work. I’ve been spending time getting the specs to run on CRuby for Windows, in addition to getting IronRuby running those same specs. It’s nice to know that this work won’t be wasted, or have to be duplicated. I’m also excited to be working with people from CRuby, JRuby, Rubinius and YARV. These are some really smart people that are working to give our language a little bit of guidance, and hopefully consistency, and I’m excited to help.