MagLev / maglev

GemStone Maglev Ruby Repository
http://maglev.github.io
517 stars 41 forks source link

Mac OS X Specs hang in Pipe Specs #169

Open timfel opened 12 years ago

timfel commented 12 years ago

Specs have been hanging at HPI-GSS-BuildEnv/git/spec/rubyspec/core/io/pipe_spec.rb since the IO.popen patches went in.

Monty commented 12 years ago

Back when MagLev 1.0 was released, Allen had a modified version of spec/rubyspec that worked around some hang problems. Although they're a bit out of date you might look at those "allen" branches to see what he modified, i.e. https://github.com/MagLev/rubyspec/tree/allen and https://github.com/MagLev/mspec/tree/allen

Allen may have used other tricks to speed things up, like committing mspec before running tests. Ask if you need help.

Monty commented 12 years ago

In the master branch, on line 521 of RubyContext.gs you'll see _runPassingSpecs, which is what Allen used to run specs from smalltalk, stopping at a topaz prompt when an error was encountered.

https://github.com/MagLev/maglev/blob/master/src/smalltalk/ruby/mcz/RubyContext.gs

Monty commented 12 years ago

How to load mspec and commit it from topaz

set user DataCurator pass swordfish
login
time
run
| ctx |
"uncomment next line for certain kinds of debugging of exception problems"
"Exception installDebugBlock: [:ex| ex class ~~ RubyThrowException ifTrue:[ nil pause]].  "
SessionTemps current
    at: #MagRpDEBUG put: 1 .
ctx := RubyContext load: #( ) . "traceLoad logSexp allIvsDynamic"
ctx env: 1 persistentDo:[
     ctx _loadMspec: 1 .
     (Object transientNameSpace: 1) at: #DEBUG_SPEC runtimePut:  true .
     System commitTransaction ifFalse:[ nil error:'commit fail' ].
].
true
%
Monty commented 12 years ago

How to run specs from topaz. I'll have to dig up a passingspecs.conf.allen for you.

logout
login
run
SessionTemps current
    at: #MagRpDEBUG put: 0 ;
    at:#Maglev_ruby_debugFlag put: true .
RubyContext _runPassingSpecs: 'passingspecs.conf.allen'
               verbose: false options: #() env: 1 .
System _sharedCounter: 1 incrementBy: 0 "returns number of specs executed"
%
Monty commented 12 years ago

The conf files are in

HPI-GSS/tests/rubytst/passingspecs.conf HPI-GSS/tests/rubytst/passingspecs.conf.allen

This data could prove useful, but YMMV as this mechanism has not been kept in sync with rake spec:ci. rake spec:ci should be more up to date and have higher precedence.