reports/Builder__Report.st
author Jan Vrany <jan.vrany@labware.com>
Fri, 03 Dec 2021 13:24:20 +0000
branchjv
changeset 570 9c47ccc9e9b5
parent 231 9551cb7cfe38
permissions -rw-r--r--
Add `--fail-on-error` and `--fail-on-failure` options
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
570
9c47ccc9e9b5 Add `--fail-on-error` and `--fail-on-failure` options
Jan Vrany <jan.vrany@labware.com>
parents: 231
diff changeset
     1
"
9c47ccc9e9b5 Add `--fail-on-error` and `--fail-on-failure` options
Jan Vrany <jan.vrany@labware.com>
parents: 231
diff changeset
     2
COPYRIGHT (c) 2021 LabWare
9c47ccc9e9b5 Add `--fail-on-error` and `--fail-on-failure` options
Jan Vrany <jan.vrany@labware.com>
parents: 231
diff changeset
     3
"
69
4c4c6f784b18 initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
     4
"{ Package: 'stx:goodies/builder/reports' }"
4c4c6f784b18 initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
     5
4c4c6f784b18 initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
     6
"{ NameSpace: Builder }"
4c4c6f784b18 initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
     7
4c4c6f784b18 initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
     8
Object subclass:#Report
218
82447e847e2d Added -i | --ident option to report-runner.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 163
diff changeset
     9
	instanceVariableNames:'name ident packages format'
69
4c4c6f784b18 initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    10
	classVariableNames:'Verbose OutputDir'
4c4c6f784b18 initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    11
	poolDictionaries:''
4c4c6f784b18 initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    12
	category:'Builder-Reports'
4c4c6f784b18 initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    13
!
4c4c6f784b18 initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    14
570
9c47ccc9e9b5 Add `--fail-on-error` and `--fail-on-failure` options
Jan Vrany <jan.vrany@labware.com>
parents: 231
diff changeset
    15
!Report class methodsFor:'documentation'!
9c47ccc9e9b5 Add `--fail-on-error` and `--fail-on-failure` options
Jan Vrany <jan.vrany@labware.com>
parents: 231
diff changeset
    16
9c47ccc9e9b5 Add `--fail-on-error` and `--fail-on-failure` options
Jan Vrany <jan.vrany@labware.com>
parents: 231
diff changeset
    17
copyright
9c47ccc9e9b5 Add `--fail-on-error` and `--fail-on-failure` options
Jan Vrany <jan.vrany@labware.com>
parents: 231
diff changeset
    18
"
9c47ccc9e9b5 Add `--fail-on-error` and `--fail-on-failure` options
Jan Vrany <jan.vrany@labware.com>
parents: 231
diff changeset
    19
COPYRIGHT (c) 2021 LabWare
9c47ccc9e9b5 Add `--fail-on-error` and `--fail-on-failure` options
Jan Vrany <jan.vrany@labware.com>
parents: 231
diff changeset
    20
9c47ccc9e9b5 Add `--fail-on-error` and `--fail-on-failure` options
Jan Vrany <jan.vrany@labware.com>
parents: 231
diff changeset
    21
"
9c47ccc9e9b5 Add `--fail-on-error` and `--fail-on-failure` options
Jan Vrany <jan.vrany@labware.com>
parents: 231
diff changeset
    22
! !
69
4c4c6f784b18 initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    23
4c4c6f784b18 initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    24
!Report class methodsFor:'initialization'!
4c4c6f784b18 initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    25
4c4c6f784b18 initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    26
initialize
4c4c6f784b18 initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    27
4c4c6f784b18 initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    28
    Verbose := false.
4c4c6f784b18 initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    29
    OutputDir := Filename currentDirectory.
4c4c6f784b18 initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    30
4c4c6f784b18 initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    31
    "Created: / 14-03-2011 / 19:42:03 / Jan Vrany <jan.vrany@fit.cvut.cz>"
4c4c6f784b18 initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    32
! !
4c4c6f784b18 initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    33
4c4c6f784b18 initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    34
!Report class methodsFor:'instance creation'!
4c4c6f784b18 initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    35
4c4c6f784b18 initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    36
new
4c4c6f784b18 initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    37
    "return an initialized instance"
4c4c6f784b18 initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    38
4c4c6f784b18 initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    39
    ^ self basicNew initialize.
4c4c6f784b18 initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    40
! !
4c4c6f784b18 initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    41
4c4c6f784b18 initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    42
!Report class methodsFor:'accessing'!
4c4c6f784b18 initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    43
76
4c992db5503a --help improved
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 69
diff changeset
    44
available
4c992db5503a --help improved
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 69
diff changeset
    45
    "Return all available reports ready to run. 
4c992db5503a --help improved
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 69
diff changeset
    46
     Unfinished/Experimental reports are not returned"
4c992db5503a --help improved
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 69
diff changeset
    47
4c992db5503a --help improved
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 69
diff changeset
    48
    ^{ 
4c992db5503a --help improved
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 69
diff changeset
    49
        Builder::TestReport .
4c992db5503a --help improved
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 69
diff changeset
    50
        Builder::LintReport .
4c992db5503a --help improved
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 69
diff changeset
    51
    }
4c992db5503a --help improved
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 69
diff changeset
    52
4c992db5503a --help improved
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 69
diff changeset
    53
    "Created: / 13-01-2012 / 12:01:26 / Jan Vrany <jan.vrany@fit.cvut.cz>"
4c992db5503a --help improved
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 69
diff changeset
    54
!
4c992db5503a --help improved
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 69
diff changeset
    55
69
4c4c6f784b18 initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    56
outputDir
4c4c6f784b18 initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    57
4c4c6f784b18 initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    58
    ^OutputDir ? '.'
4c4c6f784b18 initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    59
4c4c6f784b18 initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    60
    "
4c4c6f784b18 initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    61
        Report outputDir: '/tmp/reports' 
4c4c6f784b18 initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    62
    "
4c4c6f784b18 initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    63
4c4c6f784b18 initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    64
    "Created: / 07-10-2011 / 09:12:23 / Jan Vrany <jan.vrany@fit.cvut.cz>"
4c4c6f784b18 initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    65
!
4c4c6f784b18 initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    66
4c4c6f784b18 initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    67
outputDir: aStringOrFilename
4c4c6f784b18 initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    68
4c4c6f784b18 initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    69
    OutputDir := aStringOrFilename asFilename.
4c4c6f784b18 initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    70
4c4c6f784b18 initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    71
    "
4c4c6f784b18 initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    72
        Report outputDir: '/tmp/reports' 
4c4c6f784b18 initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    73
    "
4c4c6f784b18 initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    74
4c4c6f784b18 initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    75
    "Created: / 14-03-2011 / 19:40:25 / Jan Vrany <jan.vrany@fit.cvut.cz>"
4c4c6f784b18 initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    76
! !
4c4c6f784b18 initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    77
4c4c6f784b18 initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    78
!Report class methodsFor:'private'!
4c4c6f784b18 initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    79
4c4c6f784b18 initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    80
convert: aString
4c4c6f784b18 initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    81
	^ (aString asString 
4c4c6f784b18 initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    82
		copyReplaceAll: (String with: Character cr with: Character lf) with: (String with: Character lf))
4c4c6f784b18 initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    83
		copyReplaceAll: (String with: Character cr) with: (String with: Character lf)
4c4c6f784b18 initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    84
!
4c4c6f784b18 initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    85
4c4c6f784b18 initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    86
encode: aString
4c4c6f784b18 initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    87
4c4c6f784b18 initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    88
    | in out c |
4c4c6f784b18 initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    89
4c4c6f784b18 initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    90
    (aString includesAny: #($< $> $& $")) ifFalse:[^aString].
4c4c6f784b18 initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    91
    in := aString readStream.
4c4c6f784b18 initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    92
    out := String new writeStream.  
4c4c6f784b18 initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    93
    [in atEnd ] whileFalse:[
4c4c6f784b18 initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    94
        c := in next.
4c4c6f784b18 initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    95
        c == $< ifTrue:[out nextPutAll:'&lt;'] ifFalse:[
4c4c6f784b18 initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    96
        c == $> ifTrue:[out nextPutAll:'&gt;'] ifFalse:[
4c4c6f784b18 initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    97
        c == $& ifTrue:[out nextPutAll:'&amp;'] ifFalse:[
4c4c6f784b18 initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    98
        c == $" ifTrue:[out nextPutAll:'&quot;'] ifFalse:[
4c4c6f784b18 initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    99
        out nextPut: c]]]]].
4c4c6f784b18 initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   100
    ^out contents.
4c4c6f784b18 initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   101
4c4c6f784b18 initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   102
    "
4c4c6f784b18 initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   103
        HDReport basicNew encode: 'abx' 
4c4c6f784b18 initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   104
        HDReport basicNew encode: ''  
4c4c6f784b18 initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   105
        HDReport basicNew encode: 'sss <clint>()'       
4c4c6f784b18 initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   106
    "
4c4c6f784b18 initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   107
4c4c6f784b18 initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   108
    "Modified: / 11-03-2011 / 17:12:17 / Jan Vrany <jan.vrany@fit.cvut.cz>"
4c4c6f784b18 initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   109
!
4c4c6f784b18 initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   110
4c4c6f784b18 initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   111
encodeFilename: aString
4c4c6f784b18 initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   112
4c4c6f784b18 initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   113
    ^(aString copyReplaceAll: $: with:$_) copyReplaceAll: $/ with:$_
4c4c6f784b18 initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   114
4c4c6f784b18 initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   115
    "Created: / 14-03-2011 / 14:14:43 / Jan Vrany <jan.vrany@fit.cvut.cz>"
4c4c6f784b18 initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   116
    "Modified: / 14-03-2011 / 23:45:40 / Jan Vrany <jan.vrany@fit.cvut.cz>"
4c4c6f784b18 initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   117
! !
4c4c6f784b18 initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   118
231
9551cb7cfe38 Better command line help for standalone report runner.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 218
diff changeset
   119
!Report class methodsFor:'queries'!
9551cb7cfe38 Better command line help for standalone report runner.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 218
diff changeset
   120
9551cb7cfe38 Better command line help for standalone report runner.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 218
diff changeset
   121
isAbstract
9551cb7cfe38 Better command line help for standalone report runner.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 218
diff changeset
   122
    "Return if this class is an abstract class.
9551cb7cfe38 Better command line help for standalone report runner.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 218
diff changeset
   123
     True is returned here for myself only; false for subclasses.
9551cb7cfe38 Better command line help for standalone report runner.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 218
diff changeset
   124
     Abstract subclasses must redefine again."
9551cb7cfe38 Better command line help for standalone report runner.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 218
diff changeset
   125
9551cb7cfe38 Better command line help for standalone report runner.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 218
diff changeset
   126
    ^ self == Builder::Report.
9551cb7cfe38 Better command line help for standalone report runner.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 218
diff changeset
   127
! !
9551cb7cfe38 Better command line help for standalone report runner.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 218
diff changeset
   128
69
4c4c6f784b18 initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   129
!Report class methodsFor:'running'!
4c4c6f784b18 initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   130
4c4c6f784b18 initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   131
runClasses: aCollectionOfClasses
4c4c6f784b18 initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   132
4c4c6f784b18 initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   133
    ^self runClasses: aCollectionOfClasses named: 'Some classes'
4c4c6f784b18 initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   134
4c4c6f784b18 initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   135
    "Created: / 04-08-2011 / 12:25:15 / Jan Vrany <jan.vrany@fit.cvut.cz>"
4c4c6f784b18 initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   136
!
4c4c6f784b18 initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   137
4c4c6f784b18 initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   138
runClasses: aCollectionOfClasses named: aString
4c4c6f784b18 initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   139
4c4c6f784b18 initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   140
    ^self new runClasses: aCollectionOfClasses named: aString
4c4c6f784b18 initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   141
4c4c6f784b18 initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   142
    "Modified: / 04-08-2011 / 12:23:26 / Jan Vrany <jan.vrany@fit.cvut.cz>"
4c4c6f784b18 initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   143
!
4c4c6f784b18 initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   144
4c4c6f784b18 initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   145
runPackage: aString
4c4c6f784b18 initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   146
4c4c6f784b18 initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   147
    "Run a report for given package (package id)"
4c4c6f784b18 initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   148
4c4c6f784b18 initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   149
    ^self runPackages: (Array with: aString)
4c4c6f784b18 initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   150
4c4c6f784b18 initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   151
    "Modified (comment): / 04-08-2011 / 12:24:59 / Jan Vrany <jan.vrany@fit.cvut.cz>"
4c4c6f784b18 initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   152
!
4c4c6f784b18 initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   153
4c4c6f784b18 initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   154
runPackages: packages
4c4c6f784b18 initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   155
4c4c6f784b18 initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   156
    "Run a report for given list of packages
4c4c6f784b18 initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   157
     (package IDs)"
4c4c6f784b18 initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   158
4c4c6f784b18 initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   159
    ^self new runPackages: packages
4c4c6f784b18 initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   160
4c4c6f784b18 initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   161
    "Modified (comment): / 04-08-2011 / 12:24:28 / Jan Vrany <jan.vrany@fit.cvut.cz>"
4c4c6f784b18 initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   162
!
4c4c6f784b18 initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   163
4c4c6f784b18 initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   164
verbose
4c4c6f784b18 initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   165
4c4c6f784b18 initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   166
    ^ Verbose
4c4c6f784b18 initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   167
4c4c6f784b18 initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   168
    "Created: / 21-07-2011 / 11:48:13 / Jan Vrany <jan.vrany@fit.cvut.cz>"
4c4c6f784b18 initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   169
!
4c4c6f784b18 initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   170
4c4c6f784b18 initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   171
verbose: aBoolean
4c4c6f784b18 initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   172
4c4c6f784b18 initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   173
    Verbose := aBoolean.
4c4c6f784b18 initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   174
4c4c6f784b18 initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   175
    "Created: / 21-07-2011 / 11:48:02 / Jan Vrany <jan.vrany@fit.cvut.cz>"
4c4c6f784b18 initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   176
! !
4c4c6f784b18 initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   177
4c4c6f784b18 initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   178
!Report methodsFor:'accessing'!
4c4c6f784b18 initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   179
4c4c6f784b18 initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   180
format
4c4c6f784b18 initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   181
    ^ format
4c4c6f784b18 initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   182
!
4c4c6f784b18 initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   183
4c4c6f784b18 initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   184
format: aFormatOrString
4c4c6f784b18 initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   185
4c4c6f784b18 initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   186
    aFormatOrString isString ifTrue:[
4c4c6f784b18 initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   187
        format := ReportFormat named: aFormatOrString 
4c4c6f784b18 initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   188
    ] ifFalse:[
4c4c6f784b18 initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   189
        format := aFormatOrString 
4c4c6f784b18 initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   190
    ]
4c4c6f784b18 initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   191
4c4c6f784b18 initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   192
    "Created: / 04-08-2011 / 11:55:46 / Jan Vrany <jan.vrany@fit.cvut.cz>"
4c4c6f784b18 initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   193
!
4c4c6f784b18 initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   194
218
82447e847e2d Added -i | --ident option to report-runner.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 163
diff changeset
   195
ident
82447e847e2d Added -i | --ident option to report-runner.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 163
diff changeset
   196
    ^ ident
82447e847e2d Added -i | --ident option to report-runner.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 163
diff changeset
   197
!
82447e847e2d Added -i | --ident option to report-runner.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 163
diff changeset
   198
82447e847e2d Added -i | --ident option to report-runner.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 163
diff changeset
   199
ident:aString
82447e847e2d Added -i | --ident option to report-runner.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 163
diff changeset
   200
    ident := aString.
82447e847e2d Added -i | --ident option to report-runner.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 163
diff changeset
   201
!
82447e847e2d Added -i | --ident option to report-runner.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 163
diff changeset
   202
69
4c4c6f784b18 initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   203
name
4c4c6f784b18 initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   204
4c4c6f784b18 initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   205
    ^name isNil ifTrue:[
4c4c6f784b18 initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   206
        self defaultName
4c4c6f784b18 initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   207
    ] ifFalse:[
4c4c6f784b18 initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   208
        name
4c4c6f784b18 initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   209
    ]
4c4c6f784b18 initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   210
4c4c6f784b18 initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   211
    "Modified: / 07-11-2011 / 09:47:56 / Jan Vrany <jan.vrany@fit.cvut.cz>"
4c4c6f784b18 initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   212
!
4c4c6f784b18 initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   213
4c4c6f784b18 initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   214
name:aString
4c4c6f784b18 initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   215
    name := aString.
4c4c6f784b18 initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   216
!
4c4c6f784b18 initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   217
4c4c6f784b18 initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   218
outputDirectory
4c4c6f784b18 initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   219
4c4c6f784b18 initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   220
    ^self class outputDir asFilename
4c4c6f784b18 initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   221
4c4c6f784b18 initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   222
    "Created: / 07-10-2011 / 09:12:49 / Jan Vrany <jan.vrany@fit.cvut.cz>"
4c4c6f784b18 initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   223
! !
4c4c6f784b18 initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   224
4c4c6f784b18 initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   225
!Report methodsFor:'accessing-command line options'!
4c4c6f784b18 initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   226
4c4c6f784b18 initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   227
cmdlineOptionFormat
4c4c6f784b18 initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   228
4c4c6f784b18 initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   229
    ^CmdLineOption new
4c4c6f784b18 initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   230
        short: $F;
163
b8a6ee98534a Initial version of code coverage report.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 149
diff changeset
   231
        long: 'format';
69
4c4c6f784b18 initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   232
        description: 'Report format to use';
4c4c6f784b18 initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   233
        action:[:option | self format: option ]
4c4c6f784b18 initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   234
4c4c6f784b18 initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   235
    "Created: / 06-11-2011 / 21:49:12 / Jan Vrany <jan.vrany@fit.cvut.cz>"
163
b8a6ee98534a Initial version of code coverage report.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 149
diff changeset
   236
    "Modified: / 25-06-2013 / 16:02:49 / Jan Vrany <jan.vrany@fit.cvut.cz>"
69
4c4c6f784b18 initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   237
!
4c4c6f784b18 initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   238
4c4c6f784b18 initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   239
cmdlineOptionPackage
4c4c6f784b18 initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   240
4c4c6f784b18 initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   241
    ^CmdLineOption new
4c4c6f784b18 initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   242
        short: $p;
163
b8a6ee98534a Initial version of code coverage report.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 149
diff changeset
   243
        long: 'package';
69
4c4c6f784b18 initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   244
        description: 'Package in which to run the report';
81
a433f1944dca Loads the package if not already loaded.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 76
diff changeset
   245
        action:[:option | 
149
3f9e255e7d47 class: Builder::ReportRunner
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 142
diff changeset
   246
            packages isNil ifTrue:[ packages := Set new ].
3f9e255e7d47 class: Builder::ReportRunner
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 142
diff changeset
   247
            packages add: option.
81
a433f1944dca Loads the package if not already loaded.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 76
diff changeset
   248
        ]
69
4c4c6f784b18 initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   249
4c4c6f784b18 initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   250
    "Created: / 06-11-2011 / 21:49:49 / Jan Vrany <jan.vrany@fit.cvut.cz>"
163
b8a6ee98534a Initial version of code coverage report.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 149
diff changeset
   251
    "Modified: / 25-06-2013 / 16:02:55 / Jan Vrany <jan.vrany@fit.cvut.cz>"
69
4c4c6f784b18 initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   252
! !
4c4c6f784b18 initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   253
4c4c6f784b18 initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   254
!Report methodsFor:'accessing-defaults'!
4c4c6f784b18 initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   255
4c4c6f784b18 initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   256
defaultFileSuffix
4c4c6f784b18 initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   257
4c4c6f784b18 initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   258
    "Return a default filename suffix. Note that format suffix will be 
4c4c6f784b18 initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   259
     appended too if not file is explicitely specified"
4c4c6f784b18 initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   260
4c4c6f784b18 initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   261
    ^self subclassResponsibility
4c4c6f784b18 initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   262
4c4c6f784b18 initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   263
    "Created: / 04-08-2011 / 12:47:05 / Jan Vrany <jan.vrany@fit.cvut.cz>"
4c4c6f784b18 initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   264
!
4c4c6f784b18 initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   265
4c4c6f784b18 initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   266
defaultFormat
4c4c6f784b18 initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   267
    "raise an error: must be redefined in concrete subclass(es)"
4c4c6f784b18 initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   268
4c4c6f784b18 initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   269
    ^ self subclassResponsibility
4c4c6f784b18 initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   270
!
4c4c6f784b18 initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   271
4c4c6f784b18 initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   272
defaultName
4c4c6f784b18 initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   273
4c4c6f784b18 initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   274
    ^self class name
4c4c6f784b18 initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   275
4c4c6f784b18 initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   276
    "Created: / 07-11-2011 / 09:47:21 / Jan Vrany <jan.vrany@fit.cvut.cz>"
4c4c6f784b18 initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   277
! !
4c4c6f784b18 initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   278
4c4c6f784b18 initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   279
!Report methodsFor:'initialization'!
4c4c6f784b18 initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   280
4c4c6f784b18 initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   281
setupForClasses: classes
4c4c6f784b18 initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   282
    "raise an error: must be redefined in concrete subclass(es)"
4c4c6f784b18 initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   283
4c4c6f784b18 initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   284
    ^ self subclassResponsibility
4c4c6f784b18 initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   285
4c4c6f784b18 initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   286
    "Created: / 04-08-2011 / 14:34:31 / Jan Vrany <jan.vrany@fit.cvut.cz>"
4c4c6f784b18 initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   287
!
4c4c6f784b18 initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   288
163
b8a6ee98534a Initial version of code coverage report.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 149
diff changeset
   289
setupForPackages:pkgs
69
4c4c6f784b18 initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   290
    "raise an error: must be redefined in concrete subclass(es)"
4c4c6f784b18 initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   291
4c4c6f784b18 initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   292
    ^ self subclassResponsibility
4c4c6f784b18 initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   293
! !
4c4c6f784b18 initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   294
4c4c6f784b18 initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   295
!Report methodsFor:'private'!
4c4c6f784b18 initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   296
4c4c6f784b18 initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   297
convert:arg
4c4c6f784b18 initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   298
    ^ self class convert:arg
4c4c6f784b18 initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   299
!
4c4c6f784b18 initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   300
4c4c6f784b18 initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   301
encode:arg
4c4c6f784b18 initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   302
    ^ self class encode:arg
4c4c6f784b18 initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   303
!
4c4c6f784b18 initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   304
4c4c6f784b18 initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   305
encodeFilename:arg
4c4c6f784b18 initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   306
    ^ self class encodeFilename:arg
81
a433f1944dca Loads the package if not already loaded.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 76
diff changeset
   307
!
a433f1944dca Loads the package if not already loaded.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 76
diff changeset
   308
a433f1944dca Loads the package if not already loaded.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 76
diff changeset
   309
loadPackageIfNotAlready: pkg
570
9c47ccc9e9b5 Add `--fail-on-error` and `--fail-on-failure` options
Jan Vrany <jan.vrany@labware.com>
parents: 231
diff changeset
   310
    "Loads a package, if it is not loaded already."
81
a433f1944dca Loads the package if not already loaded.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 76
diff changeset
   311
    | def |
a433f1944dca Loads the package if not already loaded.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 76
diff changeset
   312
    def := ProjectDefinition definitionClassForPackage:pkg.
a433f1944dca Loads the package if not already loaded.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 76
diff changeset
   313
    def isNil ifTrue:[ 
142
bbebfa86daea class: Builder::Report
Stefan Vogel <sv@exept.de>
parents: 81
diff changeset
   314
        (Smalltalk loadPackage:pkg) ifFalse:[
81
a433f1944dca Loads the package if not already loaded.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 76
diff changeset
   315
            self error:'Cannot load package: ', pkg.
a433f1944dca Loads the package if not already loaded.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 76
diff changeset
   316
        ].
a433f1944dca Loads the package if not already loaded.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 76
diff changeset
   317
        def := ProjectDefinition definitionClassForPackage:pkg. 
a433f1944dca Loads the package if not already loaded.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 76
diff changeset
   318
    ].
a433f1944dca Loads the package if not already loaded.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 76
diff changeset
   319
a433f1944dca Loads the package if not already loaded.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 76
diff changeset
   320
    "Created: / 13-01-2012 / 12:56:48 / Jan Vrany <jan.vrany@fit.cvut.cz>"
69
4c4c6f784b18 initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   321
! !
4c4c6f784b18 initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   322
4c4c6f784b18 initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   323
!Report methodsFor:'running'!
4c4c6f784b18 initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   324
4c4c6f784b18 initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   325
run
570
9c47ccc9e9b5 Add `--fail-on-error` and `--fail-on-failure` options
Jan Vrany <jan.vrany@labware.com>
parents: 231
diff changeset
   326
    | status |
69
4c4c6f784b18 initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   327
4c4c6f784b18 initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   328
    self setUp.
4c4c6f784b18 initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   329
    format writeHeader.
570
9c47ccc9e9b5 Add `--fail-on-error` and `--fail-on-failure` options
Jan Vrany <jan.vrany@labware.com>
parents: 231
diff changeset
   330
    [ 
9c47ccc9e9b5 Add `--fail-on-error` and `--fail-on-failure` options
Jan Vrany <jan.vrany@labware.com>
parents: 231
diff changeset
   331
        status := self runReport 
9c47ccc9e9b5 Add `--fail-on-error` and `--fail-on-failure` options
Jan Vrany <jan.vrany@labware.com>
parents: 231
diff changeset
   332
    ] ensure:[
69
4c4c6f784b18 initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   333
        format writeFooter.
4c4c6f784b18 initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   334
        self tearDown.
570
9c47ccc9e9b5 Add `--fail-on-error` and `--fail-on-failure` options
Jan Vrany <jan.vrany@labware.com>
parents: 231
diff changeset
   335
    ].
9c47ccc9e9b5 Add `--fail-on-error` and `--fail-on-failure` options
Jan Vrany <jan.vrany@labware.com>
parents: 231
diff changeset
   336
    ^ status "return exit code"
69
4c4c6f784b18 initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   337
4c4c6f784b18 initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   338
    "Modified: / 04-08-2011 / 12:42:32 / Jan Vrany <jan.vrany@fit.cvut.cz>"
570
9c47ccc9e9b5 Add `--fail-on-error` and `--fail-on-failure` options
Jan Vrany <jan.vrany@labware.com>
parents: 231
diff changeset
   339
    "Modified: / 03-12-2021 / 13:12:26 / Jan Vrany <jan.vrany@labware.com>"
69
4c4c6f784b18 initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   340
!
4c4c6f784b18 initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   341
4c4c6f784b18 initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   342
runClasses:classes named:aString 
4c4c6f784b18 initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   343
    name := aString.
4c4c6f784b18 initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   344
    self setupForClasses:classes.
4c4c6f784b18 initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   345
    self run
4c4c6f784b18 initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   346
4c4c6f784b18 initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   347
    "Modified: / 04-08-2011 / 14:34:41 / Jan Vrany <jan.vrany@fit.cvut.cz>"
4c4c6f784b18 initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   348
!
4c4c6f784b18 initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   349
4c4c6f784b18 initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   350
runPackage: package
4c4c6f784b18 initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   351
4c4c6f784b18 initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   352
    ^self runPackages: (Array with: package)
4c4c6f784b18 initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   353
4c4c6f784b18 initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   354
    "Created: / 04-08-2011 / 12:53:58 / Jan Vrany <jan.vrany@fit.cvut.cz>"
4c4c6f784b18 initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   355
!
4c4c6f784b18 initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   356
163
b8a6ee98534a Initial version of code coverage report.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 149
diff changeset
   357
runPackages:pkgs 
b8a6ee98534a Initial version of code coverage report.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 149
diff changeset
   358
    pkgs size == 1 
b8a6ee98534a Initial version of code coverage report.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 149
diff changeset
   359
        ifTrue:[ name := pkgs anyOne. ]
b8a6ee98534a Initial version of code coverage report.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 149
diff changeset
   360
        ifFalse:[ name := ('%1 packages' bindWith:pkgs size). ].
b8a6ee98534a Initial version of code coverage report.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 149
diff changeset
   361
    packages := pkgs.
69
4c4c6f784b18 initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   362
    ^ self run
4c4c6f784b18 initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   363
4c4c6f784b18 initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   364
    "
4c4c6f784b18 initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   365
        HDTestReport runPackage:'stx:goodies/monticello'
4c4c6f784b18 initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   366
        HDTestReport runPackage:'stx:libjava'"
163
b8a6ee98534a Initial version of code coverage report.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 149
diff changeset
   367
69
4c4c6f784b18 initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   368
    "Created: / 04-08-2011 / 12:35:32 / Jan Vrany <jan.vrany@fit.cvut.cz>"
163
b8a6ee98534a Initial version of code coverage report.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 149
diff changeset
   369
    "Modified: / 25-06-2013 / 01:03:51 / Jan Vrany <jan.vrany@fit.cvut.cz>"
69
4c4c6f784b18 initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   370
!
4c4c6f784b18 initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   371
4c4c6f784b18 initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   372
runReport
4c4c6f784b18 initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   373
    "Actually run the report. What to do (what classes/packages to check)
570
9c47ccc9e9b5 Add `--fail-on-error` and `--fail-on-failure` options
Jan Vrany <jan.vrany@labware.com>
parents: 231
diff changeset
   374
     must be stored instance variables before calling this method.
9c47ccc9e9b5 Add `--fail-on-error` and `--fail-on-failure` options
Jan Vrany <jan.vrany@labware.com>
parents: 231
diff changeset
   375
9c47ccc9e9b5 Add `--fail-on-error` and `--fail-on-failure` options
Jan Vrany <jan.vrany@labware.com>
parents: 231
diff changeset
   376
     Return an exit code (a zero when everything went fine, non-zero
9c47ccc9e9b5 Add `--fail-on-error` and `--fail-on-failure` options
Jan Vrany <jan.vrany@labware.com>
parents: 231
diff changeset
   377
     in case of some erorr, failure). This exit code is used as program
9c47ccc9e9b5 Add `--fail-on-error` and `--fail-on-failure` options
Jan Vrany <jan.vrany@labware.com>
parents: 231
diff changeset
   378
     exit code when running from command line.
9c47ccc9e9b5 Add `--fail-on-error` and `--fail-on-failure` options
Jan Vrany <jan.vrany@labware.com>
parents: 231
diff changeset
   379
    "
69
4c4c6f784b18 initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   380
4c4c6f784b18 initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   381
    ^ self subclassResponsibility
4c4c6f784b18 initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   382
4c4c6f784b18 initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   383
    "Created: / 04-08-2011 / 12:39:43 / Jan Vrany <jan.vrany@fit.cvut.cz>"
570
9c47ccc9e9b5 Add `--fail-on-error` and `--fail-on-failure` options
Jan Vrany <jan.vrany@labware.com>
parents: 231
diff changeset
   384
    "Modified (comment): / 03-12-2021 / 13:09:31 / Jan Vrany <jan.vrany@labware.com>"
69
4c4c6f784b18 initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   385
!
4c4c6f784b18 initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   386
4c4c6f784b18 initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   387
setUp
4c4c6f784b18 initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   388
218
82447e847e2d Added -i | --ident option to report-runner.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 163
diff changeset
   389
    | filename stream | 
149
3f9e255e7d47 class: Builder::ReportRunner
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 142
diff changeset
   390
3f9e255e7d47 class: Builder::ReportRunner
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 142
diff changeset
   391
    packages notNil ifTrue:[
3f9e255e7d47 class: Builder::ReportRunner
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 142
diff changeset
   392
        packages do:[:pkg| self loadPackageIfNotAlready: pkg].
3f9e255e7d47 class: Builder::ReportRunner
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 142
diff changeset
   393
        self setupForPackages: packages.
3f9e255e7d47 class: Builder::ReportRunner
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 142
diff changeset
   394
        packages := nil.
3f9e255e7d47 class: Builder::ReportRunner
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 142
diff changeset
   395
    ].
69
4c4c6f784b18 initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   396
    format isNil ifTrue:[format := self defaultFormat].
218
82447e847e2d Added -i | --ident option to report-runner.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 163
diff changeset
   397
    filename :=  '%1-%4%2.%3' bindWith: self name 
82447e847e2d Added -i | --ident option to report-runner.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 163
diff changeset
   398
                                  with: self defaultFileSuffix 
82447e847e2d Added -i | --ident option to report-runner.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 163
diff changeset
   399
                                  with: format defaultFileSuffix
82447e847e2d Added -i | --ident option to report-runner.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 163
diff changeset
   400
                                  with: (ident isNil ifTrue:[''] ifFalse:[ident , '-']).
82447e847e2d Added -i | --ident option to report-runner.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 163
diff changeset
   401
    stream := (OutputDir / (self encodeFilename:filename)) writeStream.
69
4c4c6f784b18 initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   402
    format report: self stream: stream
4c4c6f784b18 initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   403
4c4c6f784b18 initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   404
    "Created: / 04-08-2011 / 12:43:32 / Jan Vrany <jan.vrany@fit.cvut.cz>"
218
82447e847e2d Added -i | --ident option to report-runner.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 163
diff changeset
   405
    "Modified: / 22-01-2014 / 10:06:04 / Jan Vrany <jan.vrany@fit.cvut.cz>"
69
4c4c6f784b18 initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   406
!
4c4c6f784b18 initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   407
4c4c6f784b18 initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   408
tearDown
4c4c6f784b18 initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   409
4c4c6f784b18 initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   410
    format streamFlush; streamClose.
4c4c6f784b18 initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   411
4c4c6f784b18 initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   412
    "Created: / 04-08-2011 / 12:43:40 / Jan Vrany <jan.vrany@fit.cvut.cz>"
4c4c6f784b18 initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   413
! !
4c4c6f784b18 initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   414
4c4c6f784b18 initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   415
!Report class methodsFor:'documentation'!
4c4c6f784b18 initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   416
4c4c6f784b18 initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   417
version
4c4c6f784b18 initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   418
    ^ '$Header$'
4c4c6f784b18 initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   419
!
4c4c6f784b18 initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   420
4c4c6f784b18 initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   421
version_CVS
4c4c6f784b18 initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   422
    ^ '$Header$'
4c4c6f784b18 initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   423
!
4c4c6f784b18 initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   424
4c4c6f784b18 initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   425
version_SVN
149
3f9e255e7d47 class: Builder::ReportRunner
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 142
diff changeset
   426
    ^ '$Id$'
69
4c4c6f784b18 initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   427
! !
4c4c6f784b18 initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   428
142
bbebfa86daea class: Builder::Report
Stefan Vogel <sv@exept.de>
parents: 81
diff changeset
   429
69
4c4c6f784b18 initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   430
Report initialize!