[#39260] RubySpec vs CRuby's test/... — Marc-Andre Lafortune <ruby-core-mailing-list@...>

Before the release of Ruby 1.9.2 it was decided that Ruby releases

59 messages 2011/09/04
[#39276] Re: RubySpec vs CRuby's test/... — "NARUSE, Yui" <naruse@...> 2011/09/05

2011/9/5 Marc-Andre Lafortune <ruby-core-mailing-list@marc-andre.ca>:

[#39325] Re: RubySpec vs CRuby's test/... — Charles Oliver Nutter <headius@...> 2011/09/07

I'll jump in with some context from the JRuby perspective.

[#39335] Re: RubySpec vs CRuby's test/... — "NARUSE, Yui" <naruse@...> 2011/09/07

2011/9/7 Charles Oliver Nutter <headius@headius.com>:

[#39365] Re: RubySpec vs CRuby's test/... — Charles Oliver Nutter <headius@...> 2011/09/08

On Wed, Sep 7, 2011 at 4:17 AM, NARUSE, Yui <naruse@airemix.jp> wrote:

[#39366] Re: RubySpec vs CRuby's test/... — Yukihiro Matsumoto <matz@...> 2011/09/08

Hi,

[#39370] Re: RubySpec vs CRuby's test/... — Michael Klishin <michael.s.klishin@...> 2011/09/08

Yukihiro Matsumoto:

[#39374] Re: RubySpec vs CRuby's test/... — "NARUSE, Yui" <naruse@...> 2011/09/08

(2011/09/09 1:29), Michael Klishin wrote:

[#39376] Re: RubySpec vs CRuby's test/... — Luis Lavena <luislavena@...> 2011/09/08

On Thu, Sep 8, 2011 at 4:19 PM, NARUSE, Yui <naruse@airemix.jp> wrote:

[#39379] Re: RubySpec vs CRuby's test/... — Masaya TARUI <tarui@...> 2011/09/08

Hello Luis,

[#39382] Re: RubySpec vs CRuby's test/... — Luis Lavena <luislavena@...> 2011/09/08

On Thu, Sep 8, 2011 at 5:34 PM, Masaya TARUI <tarui@prx.jp> wrote:

[#39386] Re: RubySpec vs CRuby's test/... — Charles Oliver Nutter <headius@...> 2011/09/08

On Thu, Sep 8, 2011 at 3:57 PM, Luis Lavena <luislavena@gmail.com> wrote:

[#39267] [Ruby 1.9 - Bug #5273][Open] Float#round returns the wrong floats for higher precision — Marc-Andre Lafortune <ruby-core@...>

14 messages 2011/09/04

[#39435] [Ruby 1.9 - Bug #5306][Open] Application Hangs Due to Recent rb_thread_select Changes — Charlie Savage <cfis@...>

27 messages 2011/09/09

[#39498] [Ruby 1.9 - Feature #5310][Open] Integral objects — Kenta Murata <muraken@...>

13 messages 2011/09/13

[#39539] [Ruby 1.9 - Feature #5321][Open] Introducing Numeric#exact? and Numeric#inexact? — Kenta Murata <muraken@...>

26 messages 2011/09/14

[#39629] [Ruby 1.9 - Feature #5341][Open] Add SSL session reuse to Net::HTTP — Eric Hodel <drbrain@...7.net>

18 messages 2011/09/19

[#39634] [Ruby 1.9 - Bug #5343][Open] Unexpected blocking behavior when interrupt Socket#accept — Tomoyuki Chikanaga <nagachika00@...>

10 messages 2011/09/20

[#39673] [Ruby 1.9 - Bug #5353][Open] TLS v1.0 and less - Attack on CBC mode — Martin Bosslet <Martin.Bosslet@...>

13 messages 2011/09/22

[#39700] [Ruby 1.9 - Feature #5364][Open] How about new syntax: "object.\method" returns a Method instance? — Joey Zhou <yimutang@...>

20 messages 2011/09/25

[#39740] [Ruby 1.9 - Feature #5372][Open] Promote blank? to a core protocol — Alex Young <alex@...>

18 messages 2011/09/27
[#39743] Re: [Ruby 1.9 - Feature #5372][Open] Promote blank? to a core protocol — Aaron Patterson <aaron@...> 2011/09/27

On Tue, Sep 27, 2011 at 06:18:19PM +0900, Alex Young wrote:

[#39754] Re: [Ruby 1.9 - Feature #5372][Open] Promote blank? to a core protocol — Alex Young <alex@...> 2011/09/27

On 27/09/2011 19:46, Aaron Patterson wrote:

[#39807] Re: [Ruby 1.9 - Feature #5372][Open] Promote blank? to a core protocol — Eric Hodel <drbrain@...7.net> 2011/10/01

On Sep 27, 2011, at 6:52 PM, Alex Young wrote:

[#39751] [Ruby 1.9 - Bug #5375][Open] [mingw32] segfault on WinXP SP3 with 1.9.3dev@33347 — Jon Forums <redmine@...>

26 messages 2011/09/27

[#39772] ObjectSpace.reference_form(obj) #=> references_array — SASADA Koichi <ko1@...>

Hi,

13 messages 2011/09/29
[#39774] Re: ObjectSpace.reference_form(obj) #=> references_array — Nobuyoshi Nakada <nobu@...> 2011/09/29

Hi,

[#39796] [Ruby 1.9 - Bug #5384][Open] Ruby 1.9.3-RC1 Fails to Compile on Solaris — Cyrus Lopez <cyrus@...>

11 messages 2011/09/30

[ruby-core:39325] Re: RubySpec vs CRuby's test/...

From: Charles Oliver Nutter <headius@...>
Date: 2011-09-07 04:33:50 UTC
List: ruby-core #39325
I'll jump in with some context from the JRuby perspective.

JRuby runs more tests/suites than any other Ruby implementation. We
run the old Rubicon tests...MRI's tests...RubySpec...ruby_test...old
minirunit tests from JRuby's past...even BFTS until a year ago or so.
We are very sensitive to the issues of dealing with many test suites.

RubySpec is by far the easiest and cleanest to:

* use
* modify
* filter for things we don't pass yet (mspec's "tags" are
beautiful...Brian Ford did an amazing job putting mspec together)
* understand

No other test suite even comes close to the ease of use and utility of
RubySpec today. Because of that, we have actively (but slowly) been
trying to transition to using only RubySpec for all our testing, and
as Ruby behavioral bugs are reported we add them to RubySpec.

There are many reasons why tests that live solely in MRI's repository
are problematic for other implementations:

* Impl-specific tests, as Matz mentioned
* Test harnesses specific to MRI's build
* Inability to easily filter specific tests to get a green partial run
* Nobody but MRI committers can contribute easily (!!!!!!!!!)

A perfect example of this is the Psych library. JRuby implements Psych
atop SnakeYAML. We reuse all the Psych .rb files as-is and only
reimplement what would be in C. And we run the Psych tests, of which
we have a copy in the JRuby repository.

But all the issues above affect us. Some of Psych's tests have minor
impl-specific details. They're test/unit based, so we need a test/unit
harness to run them. There's no way to filter out any impl-specific,
unsupported, or undefined behavior tests. And there's no way for us to
add new tests other than submitting pull requests and praying.

The result of these issues is that JRuby and Rubinius simply do not
contribute tests to MRI, and run MRI's tests less and less (Rubinius
doesn't run *any* as far as I know). It means that JRuby and Rubinius
contributors must do the test-writing work of all the MRI contributors
*again* to keep RubySpec up to date. And it means that MRI is always
drifting away from RubySpec, making a moving target even more
difficult to chase for JRuby and Rubinius.

It is my sincere belief that if ruby-core cares about having a rich
Ruby implementation ecosystem, more effort should be put into making
RubySpec the standard suite of tests, with MRI's tests reserved for
impl-specific tests (similar to how I see JRuby going over time).
Conversely, I worry that the failure of ruby-core to adopt RubySpec
indicates a complete disregard for other Ruby implementations and the
contributions they make to the Ruby community. This makes me very sad,
and I hope it's not true.

I understand the desire for ruby-core to maintain the status quo, and
I sympathize wrt the language barrier involved in contributing to
RubySpec. But maintaining Ruby behavioral test suites in the current
ruby-core way makes life much more difficult for alternative
implementations...and we have enough challenges already.

- Charlie

In This Thread