reports/report-runner.st
author Jan Vrany <jan.vrany@fit.cvut.cz>
Mon, 13 Feb 2017 12:00:51 +0100
branchjv
changeset 324 3bd7d9ad8b3f
parent 189 bd2bed33aba7
child 326 113031dfa759
permissions -rw-r--r--
Workaround for (presumably) race in TestReport On SWING CI, sometimes when test times out, the whole test run crashes on DNU as `outcome` instvar is nil. This is maybe because of some race. As a quick and dirty workaround, create a new one if outcome is nil. Proper solution is to revise the code and figure out what's wrong, indeed. This is left as future work.

| pp wd i p |

"Search for package path, bit hacky but..."
wd := Filename currentDirectory.
pp := nil.
p := wd.
i := 10."How many super-directories try"
[i > 0 and:[pp == nil]] whileTrue:[
        p := p / '..'. i := i - 1.
        ((p / 'stx' / 'libbasic') exists and:[(p / 'stx' / 'libcomp') exists])
                ifTrue:[pp := p]].
pp
        ifNil:
                [Stderr nextPutAll: 'ERROR: Cannot find package path'.
                Smalltalk exit: 16]
        ifNotNil:
                [Smalltalk packagePath add: pp pathName].

(Smalltalk commandLineArguments includes:'--debug') ifTrue:[
    Stderr nextPutAll:'Package path:'; cr.
    Smalltalk packagePath do:[:each|
       Stderr nextPutAll:'  '; nextPutAll: each; cr.
    ].

    Smalltalk beHeadless: (OperatingSystem getEnvironment: 'DISPLAY') isNil.
] ifFalse: [
	Smalltalk beHeadless: true.
].

(Smalltalk at:#'Builder::ReportRunner') isNil ifTrue:[
    (Smalltalk loadPackage: 'stx:goodies/sunit') ifFalse:[
        Stderr nextPutAll:'ERROR: cannot load stx:goodies/sunit.'.
        Smalltalk exit: 17
    ].
    (Smalltalk loadPackage: 'stx:goodies/builder/reports') ifFalse:[
        Stderr nextPutAll:'ERROR: cannot load stx:goodies/builder/reports.'.
        Smalltalk exit: 17
    ].
].

(Smalltalk at:#'Builder::ReportRunner') start.