I didn't erect any automated testing structure, because I wasn't sure what direction you wanted to go with that.  I did my testing by hand with whatever parseable code string came to mind, using a script that just caught the output of melbourne ran under MRI ruby to avoid toolset confusion.  This snippet when run under MRI will use whatever melbourne gem has been installed, and worked well for my purposes.  I would run with the current melbourne, note the output, then run with my fork and be sure the output was reproduced faithfully.

``` ruby

require 'rubinius/toolset'
require 'rubinius/melbourne'

# Stub out the methods provided by rubinius/processor
class Rubinius::ToolSet.current::TS::Melbourne
  def method_missing sym, line, *args
    if sym =~ /process_(.*)/
      [$1.to_sym, *args]
    end
  end
end

def parse str
  Rubinius::ToolSet.current::TS::Melbourne.parse_string str, "(eval)", 1
end

p parse <<'-END OF CODE'

def foo(a, a2, b=nil, *c, d, d2, kw:55, kw2:56, **kwrest, &block)
  999
end

-END OF CODE

```