In my past dealings with insanity like this is that Sunits for a test  
case run technically in no particular order.
However if you have cases where a test case A alters things for B,  
then  you get failure if B runs before A.
The order is dependent on how the set is created.

Also there can be issues if things like File Handles are over- 
allocated and you then rely on finalization to
fix things, which could interfere with things er it's  hard to  
explain, but once you see it, you know.
Technically this should not be a problem but as you see well something  
is funky.

What I'd suggest is print the context at the point of error in the  
SUnit error handler so  you can get some understanding of the failure  
case.

Smalltalk logError:'Fatal error: Sunit Fialed' inContext: thisContext  
to: 'SqueakDebugXXXX.log'.

I also altered errorReportOn:  to slop more data out, in Tweak based  
system it's not uncommon to have stack nesting of > 100 methods.   
Never can have enough debug data at hand.

Contextpart>>errorReportOn: strm
        "Write a detailed error report on the stack (above me) on a stream.   
For both the error file, and emailing a bug report.  Suppress any  
errors while getting printStrings.  Limit the length."

        | cnt aContext startPos |
        strm print: Date today; space; print: Time now; cr.
        strm cr.
        strm nextPutAll: 'VM: ';
                nextPutAll:  SmalltalkImage current platformName asString;
                nextPutAll: ' - ';
                nextPutAll: SmalltalkImage current platformSubtype asString;
                nextPutAll: ' - ';
                nextPutAll: SmalltalkImage current osVersion asString;
                nextPutAll: ' - ';
                nextPutAll: SmalltalkImage current vmVersion asString;
                cr.
        strm nextPutAll: 'Image: ';
                nextPutAll:  SystemVersion current version asString;
                nextPutAll: ' [';
                nextPutAll: SmalltalkImage current lastUpdateString asString;
                nextPutAll: ']';
                cr.
        strm cr.
        SecurityManager default printStateOn: strm.
        
        "Note: The following is an open-coded version of  
ContextPart>>stackOfSize: since this method may be called during a low  
space condition and we might run out of space for allocating the full  
stack."
        cnt := 0.  startPos := strm position.
        aContext := self.
        [aContext notNil and: [(cnt := cnt + 1) < 40]] whileTrue:
                [aContext printDetails: strm.   "variable values"
                strm cr.
                aContext := aContext sender].

        strm cr; nextPutAll: '--- The full stack ---'; cr.
        aContext := self.
        cnt := 0.
        [aContext == nil] whileFalse:
                [cnt := cnt + 1.
                cnt = 40 ifTrue: [strm nextPutAll: ' - - - - - - - - - - - - - 
- - -  
- - - - - - - - - - - - - - - - -'; cr].
                strm print: aContext; cr.  "just class>>selector"       

                strm position > (startPos+150000) ifTrue: [strm nextPutAll:  
'...etc...'.
                        ^ self].        "exit early"
                cnt > 200 ifTrue: [strm nextPutAll: '-- and more not shown --'. 
 ^  
self].
                aContext := aContext sender].



On 10-Apr-09, at 5:19 PM, Mariano Martinez Peck wrote:

> In Pharo core, it is sometimes green and sometime yellow
>
> I put some flags and see this:
>
\\
--
= 
= 
= 
========================================================================
John M. McIntosh <[email protected]>
Corporate Smalltalk Consulting Ltd.  http://www.smalltalkconsulting.com
= 
= 
= 
========================================================================



--
= 
= 
= 
========================================================================
John M. McIntosh <[email protected]>
Corporate Smalltalk Consulting Ltd.  http://www.smalltalkconsulting.com
= 
= 
= 
========================================================================




_______________________________________________
Pharo-project mailing list
[email protected]
http://lists.gforge.inria.fr/cgi-bin/mailman/listinfo/pharo-project

Reply via email to