<html><head><style type="text/css"><!-- DIV {margin:0px;} --></style></head><body><div style="font-family:times new roman, new york, times, serif;font-size:12pt"><div style="font-family: times new roman,new york,times,serif; font-size: 12pt;">Hi Pete,<br><br>I was kind of doing what you are saying but manually though. But after seeing the specs, I stopped doing it altogether. <br><br>I wrote down the test and display the result on the console with puts. Now run the script with 'ruby' on console and redirect the output to a file (not MRI, I need to change based on what I hear) and then run the same code against ir and do the same. After that I run my file compare program and see the differences. <br><br>So it is possible to automate what you are suggesting, but don't you think&nbsp; the spec was already written to cover all the cases? Wouldn't it be a duplicate work? Just curious...<br><br>Thanks.<br><br><div style="font-family: times new roman,new
 york,times,serif; font-size: 12pt;">----- Original Message ----<br>From: Peter Bacon Darwin &lt;bacondarwin@googlemail.com&gt;<br>To: ironruby-core@rubyforge.org<br>Sent: Wednesday, May 14, 2008 6:41:43 AM<br>Subject: Re: [Ironruby-core] changes to extname_spec.rb<br><br>
I have been working on the basis that MRI is the reference implementation<br>and so the specs should reflect that.&nbsp; If, on writing a spec, an obvious bug<br>is exposed then we should be sending this on to the RubyLang lot and getting<br>them to fix it.<br><br>Otherwise if it's good enough for MRI its good enough for me.<br><br>---<br><br>By the way, I had this idea of creating a small program that would help with<br>regression testing against MRI.&nbsp; Instead of writing full RSpecs, we should<br>write snippets of Ruby that work the classes.&nbsp; The program would then run<br>the snippets against MRI and IronRuby (and any other implementation if you<br>wanted) and compare the results.&nbsp; That way you could directly check how<br>similar IR was to MRI without having to fix up the specs all the time.&nbsp; Also<br>it would be much quicker and easier to write the specs since you wouldn't<br>have to check what the correct result should be in each
 case.<br><br>For instance, you could have the following snippets of code for the<br>Fixnum#div method:<br><br>&nbsp; &nbsp; 2.div(2)<br>&nbsp; &nbsp; 1.div(2)<br>&nbsp; &nbsp; 5.div(2)<br><br>&nbsp; &nbsp; 8192.div(10)<br>&nbsp; &nbsp; 8192.div(-10)<br>&nbsp; &nbsp; (-8192).div(10)<br>&nbsp; &nbsp; (-8192).div(-10)<br><br>&nbsp; &nbsp; 1.div(0.2)<br>&nbsp; &nbsp; 1.div(0.16)<br>&nbsp; &nbsp; 1.div(0.169)<br>&nbsp; &nbsp; -1.div(50.4)<br>&nbsp; &nbsp; 1.div(0xffffffff)<br>&nbsp; <br>&nbsp; &nbsp; 0.div(0.0)<br>&nbsp; &nbsp; 10.div(0.0)<br>&nbsp; &nbsp; -10.div(0.0)<br>&nbsp; &nbsp; 13.div(0)<br>&nbsp; &nbsp; (obj = Object.new).should_receive(:to_int, :count =&gt; 0, :returning =&gt;<br>10)<br>&nbsp; &nbsp; 13.div(obj)<br>&nbsp; &nbsp; 5.div("2")<br><br>Obviously with some description mechanism and possibly some way of<br>specifying what should be considered in the output from Ruby: whether to<br>check the class and value of results returned; type and
 fields of objects<br>passed in; if errors are raised the type and message of the error.<br><br>Anyone fancy knocking this up?<br>Pete<br><br><br>-----Original Message-----<br>From: <a ymailto="mailto:ironruby-core-bounces@rubyforge.org" href="mailto:ironruby-core-bounces@rubyforge.org">ironruby-core-bounces@rubyforge.org</a><br>[mailto:<a ymailto="mailto:ironruby-core-bounces@rubyforge.org" href="mailto:ironruby-core-bounces@rubyforge.org">ironruby-core-bounces@rubyforge.org</a>] On Behalf Of Alex Young<br>Sent: Wednesday,14 May 14, 2008 11:44<br>To: <a ymailto="mailto:ironruby-core@rubyforge.org" href="mailto:ironruby-core@rubyforge.org">ironruby-core@rubyforge.org</a><br>Subject: Re: [Ironruby-core] changes to extname_spec.rb<br><br>Unnikrishnan Nair wrote:<br>&gt; One more spec change. Could you please review line 8 of this spec, it <br>&gt; should read<br>&gt; <br>&gt;&nbsp; &nbsp;  File.extname(".bashrc").should == ".bashrc"<br>&gt; <br>&gt;
 instead of<br>&gt; <br>&gt;&nbsp; &nbsp;  File.extname(".bashrc").should == ""<br>Quick question:&nbsp; are the specs supposed to ensure that IronRuby matches <br>MRI's behaviour, or just that it's internally consistent?&nbsp; I get this in <br>MRI's IRB:<br><br>irb(main):001:0&gt; File.extname(".bashrc")<br>=&gt; ""<br><br>Also in YARV:<br><br>irb(main):002:0&gt; File.extname(".bashrc")<br>=&gt; ""<br><br>-- <br>Alex<br>_______________________________________________<br>Ironruby-core mailing list<br><a ymailto="mailto:Ironruby-core@rubyforge.org" href="mailto:Ironruby-core@rubyforge.org">Ironruby-core@rubyforge.org</a><br><a href="http://rubyforge.org/mailman/listinfo/ironruby-core" target="_blank">http://rubyforge.org/mailman/listinfo/ironruby-core</a><br><br>_______________________________________________<br>Ironruby-core mailing list<br><a ymailto="mailto:Ironruby-core@rubyforge.org"
 href="mailto:Ironruby-core@rubyforge.org">Ironruby-core@rubyforge.org</a><br><a href="http://rubyforge.org/mailman/listinfo/ironruby-core" target="_blank">http://rubyforge.org/mailman/listinfo/ironruby-core</a><br></div></div></div></body></html>