reports/Builder__ReportRunner.st
author Jan Vrany <jan.vrany@labware.com>
Fri, 03 Dec 2021 13:24:20 +0000
branchjv
changeset 570 9c47ccc9e9b5
parent 243 625f6907682a
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: 243
diff changeset
     1
"
9c47ccc9e9b5 Add `--fail-on-error` and `--fail-on-failure` options
Jan Vrany <jan.vrany@labware.com>
parents: 243
diff changeset
     2
COPYRIGHT (c) 2021 LabWare
9c47ccc9e9b5 Add `--fail-on-error` and `--fail-on-failure` options
Jan Vrany <jan.vrany@labware.com>
parents: 243
diff changeset
     3
"
72
c23d29fe0ec6 initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
     4
"{ Package: 'stx:goodies/builder/reports' }"
c23d29fe0ec6 initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
     5
c23d29fe0ec6 initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
     6
"{ NameSpace: Builder }"
c23d29fe0ec6 initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
     7
c23d29fe0ec6 initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
     8
StandaloneStartup subclass:#ReportRunner
c23d29fe0ec6 initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
     9
	instanceVariableNames:''
c23d29fe0ec6 initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    10
	classVariableNames:''
c23d29fe0ec6 initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    11
	poolDictionaries:''
c23d29fe0ec6 initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    12
	category:'Builder-Reports'
c23d29fe0ec6 initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    13
!
c23d29fe0ec6 initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    14
217
054062587f02 Added -i | --ident option to report-runner.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 189
diff changeset
    15
ReportRunner class instanceVariableNames:'parser report debugging setup teardown ident'
72
c23d29fe0ec6 initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    16
c23d29fe0ec6 initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    17
"
c23d29fe0ec6 initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    18
 The following class instance variables are inherited by this class:
c23d29fe0ec6 initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    19
c23d29fe0ec6 initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    20
	StandaloneStartup - MutexHandle
217
054062587f02 Added -i | --ident option to report-runner.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 189
diff changeset
    21
	Object - 
72
c23d29fe0ec6 initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    22
"
c23d29fe0ec6 initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    23
!
c23d29fe0ec6 initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    24
570
9c47ccc9e9b5 Add `--fail-on-error` and `--fail-on-failure` options
Jan Vrany <jan.vrany@labware.com>
parents: 243
diff changeset
    25
!ReportRunner class methodsFor:'documentation'!
9c47ccc9e9b5 Add `--fail-on-error` and `--fail-on-failure` options
Jan Vrany <jan.vrany@labware.com>
parents: 243
diff changeset
    26
9c47ccc9e9b5 Add `--fail-on-error` and `--fail-on-failure` options
Jan Vrany <jan.vrany@labware.com>
parents: 243
diff changeset
    27
copyright
9c47ccc9e9b5 Add `--fail-on-error` and `--fail-on-failure` options
Jan Vrany <jan.vrany@labware.com>
parents: 243
diff changeset
    28
"
9c47ccc9e9b5 Add `--fail-on-error` and `--fail-on-failure` options
Jan Vrany <jan.vrany@labware.com>
parents: 243
diff changeset
    29
COPYRIGHT (c) 2021 LabWare
9c47ccc9e9b5 Add `--fail-on-error` and `--fail-on-failure` options
Jan Vrany <jan.vrany@labware.com>
parents: 243
diff changeset
    30
9c47ccc9e9b5 Add `--fail-on-error` and `--fail-on-failure` options
Jan Vrany <jan.vrany@labware.com>
parents: 243
diff changeset
    31
"
9c47ccc9e9b5 Add `--fail-on-error` and `--fail-on-failure` options
Jan Vrany <jan.vrany@labware.com>
parents: 243
diff changeset
    32
! !
72
c23d29fe0ec6 initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    33
c23d29fe0ec6 initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    34
!ReportRunner class methodsFor:'initialization'!
c23d29fe0ec6 initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    35
c23d29fe0ec6 initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    36
initialize
c23d29fe0ec6 initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    37
c23d29fe0ec6 initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    38
    super initialize.
c23d29fe0ec6 initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    39
    debugging := Transcript notNil and:[Transcript isView].
184
5f75ffc9642b Install signal handlers for SIGUSR2 and SIGTERM that dumps
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 147
diff changeset
    40
    self setupSignalHandlers.
72
c23d29fe0ec6 initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    41
c23d29fe0ec6 initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    42
    "Created: / 06-11-2011 / 22:07:14 / Jan Vrany <jan.vrany@fit.cvut.cz>"
184
5f75ffc9642b Install signal handlers for SIGUSR2 and SIGTERM that dumps
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 147
diff changeset
    43
    "Modified: / 28-06-2013 / 01:13:13 / Jan Vrany <jan.vrany@fit.cvut.cz>"
72
c23d29fe0ec6 initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    44
! !
c23d29fe0ec6 initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    45
c23d29fe0ec6 initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    46
!ReportRunner class methodsFor:'command line options'!
c23d29fe0ec6 initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    47
217
054062587f02 Added -i | --ident option to report-runner.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 189
diff changeset
    48
cmdlineOptionIdent
054062587f02 Added -i | --ident option to report-runner.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 189
diff changeset
    49
054062587f02 Added -i | --ident option to report-runner.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 189
diff changeset
    50
    ^CmdLineOption new
054062587f02 Added -i | --ident option to report-runner.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 189
diff changeset
    51
        short: $i;
054062587f02 Added -i | --ident option to report-runner.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 189
diff changeset
    52
        long: 'ident';
054062587f02 Added -i | --ident option to report-runner.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 189
diff changeset
    53
        description: 'run/configuration identification';
054062587f02 Added -i | --ident option to report-runner.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 189
diff changeset
    54
        action:[:option |
054062587f02 Added -i | --ident option to report-runner.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 189
diff changeset
    55
            ident := option.
054062587f02 Added -i | --ident option to report-runner.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 189
diff changeset
    56
        ];
054062587f02 Added -i | --ident option to report-runner.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 189
diff changeset
    57
        yourself
054062587f02 Added -i | --ident option to report-runner.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 189
diff changeset
    58
054062587f02 Added -i | --ident option to report-runner.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 189
diff changeset
    59
    "Created: / 22-01-2014 / 10:00:04 / Jan Vrany <jan.vrany@fit.cvut.cz>"
054062587f02 Added -i | --ident option to report-runner.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 189
diff changeset
    60
!
054062587f02 Added -i | --ident option to report-runner.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 189
diff changeset
    61
72
c23d29fe0ec6 initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    62
cmdlineOptionOutputDirectory
c23d29fe0ec6 initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    63
c23d29fe0ec6 initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    64
    ^CmdLineOption new
c23d29fe0ec6 initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    65
        short: $D;
c23d29fe0ec6 initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    66
        long: 'output-directory';
c23d29fe0ec6 initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    67
        description: 'Default report output directory';
188
6eeac31d0432 Workaround for stc bug
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 184
diff changeset
    68
        action:[:outputdir |
72
c23d29fe0ec6 initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    69
            Report outputDir: outputdir.
c23d29fe0ec6 initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    70
            self  verboseInfo:'Report dir: ' , Report outputDir asString.
217
054062587f02 Added -i | --ident option to report-runner.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 189
diff changeset
    71
        ];
054062587f02 Added -i | --ident option to report-runner.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 189
diff changeset
    72
        yourself
72
c23d29fe0ec6 initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    73
c23d29fe0ec6 initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    74
    "Created: / 06-11-2011 / 09:33:03 / Jan Vrany <jan.vrany@fit.cvut.cz>"
217
054062587f02 Added -i | --ident option to report-runner.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 189
diff changeset
    75
    "Modified: / 22-01-2014 / 10:00:52 / Jan Vrany <jan.vrany@fit.cvut.cz>"
72
c23d29fe0ec6 initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    76
!
c23d29fe0ec6 initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    77
c23d29fe0ec6 initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    78
cmdlineOptionReport
c23d29fe0ec6 initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    79
c23d29fe0ec6 initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    80
    ^CmdLineOption new
c23d29fe0ec6 initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    81
        short: $r;
97
c6a5d1c4df41 changed: #cmdlineOptionReport
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 92
diff changeset
    82
        long: 'report';
72
c23d29fe0ec6 initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    83
        description: 'Report to run';
c23d29fe0ec6 initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    84
        action:[:option |
c23d29fe0ec6 initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    85
            report := Smalltalk at: option asSymbol.
c23d29fe0ec6 initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    86
            report isNil ifTrue:[
188
6eeac31d0432 Workaround for stc bug
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 184
diff changeset
    87
                Stderr nextPutLine:('ERROR: Report class %1 does not exist (forgot to load package?)' bindWith: option).
6eeac31d0432 Workaround for stc bug
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 184
diff changeset
    88
                "/Smalltalk exit: 1.
72
c23d29fe0ec6 initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    89
            ].
c23d29fe0ec6 initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    90
            report := report new.
c23d29fe0ec6 initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    91
            parser options addAll: (CmdLineOption optionsFor: report)
217
054062587f02 Added -i | --ident option to report-runner.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 189
diff changeset
    92
        ];
054062587f02 Added -i | --ident option to report-runner.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 189
diff changeset
    93
        yourself
72
c23d29fe0ec6 initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    94
c23d29fe0ec6 initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    95
    "Created: / 06-11-2011 / 09:45:14 / Jan Vrany <jan.vrany@fit.cvut.cz>"
217
054062587f02 Added -i | --ident option to report-runner.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 189
diff changeset
    96
    "Modified: / 22-01-2014 / 10:00:56 / Jan Vrany <jan.vrany@fit.cvut.cz>"
147
9f2935d68582 class: Builder::ReportRunner
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 144
diff changeset
    97
!
9f2935d68582 class: Builder::ReportRunner
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 144
diff changeset
    98
9f2935d68582 class: Builder::ReportRunner
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 144
diff changeset
    99
cmdlineOptionSetup
9f2935d68582 class: Builder::ReportRunner
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 144
diff changeset
   100
9f2935d68582 class: Builder::ReportRunner
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 144
diff changeset
   101
    ^CmdLineOption new
225
07dd0c1e4e6d Fixed setup option, meant to be -S
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 217
diff changeset
   102
        short: $S;
147
9f2935d68582 class: Builder::ReportRunner
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 144
diff changeset
   103
        long: 'setup';
9f2935d68582 class: Builder::ReportRunner
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 144
diff changeset
   104
        description: 'Code executed before tests are loaded and executed';
188
6eeac31d0432 Workaround for stc bug
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 184
diff changeset
   105
        action:[:option |
147
9f2935d68582 class: Builder::ReportRunner
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 144
diff changeset
   106
            setup := option
217
054062587f02 Added -i | --ident option to report-runner.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 189
diff changeset
   107
        ];
054062587f02 Added -i | --ident option to report-runner.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 189
diff changeset
   108
        yourself
147
9f2935d68582 class: Builder::ReportRunner
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 144
diff changeset
   109
9f2935d68582 class: Builder::ReportRunner
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 144
diff changeset
   110
    "Created: / 15-05-2013 / 16:50:21 / Jan Vrany <jan.vrany@fit.cvut.cz>"
225
07dd0c1e4e6d Fixed setup option, meant to be -S
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 217
diff changeset
   111
    "Modified: / 24-01-2014 / 15:26:34 / Jan Vrany <jan.vrany@fit.cvut.cz>"
147
9f2935d68582 class: Builder::ReportRunner
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 144
diff changeset
   112
!
9f2935d68582 class: Builder::ReportRunner
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 144
diff changeset
   113
9f2935d68582 class: Builder::ReportRunner
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 144
diff changeset
   114
cmdlineOptionTeardown
9f2935d68582 class: Builder::ReportRunner
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 144
diff changeset
   115
9f2935d68582 class: Builder::ReportRunner
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 144
diff changeset
   116
    ^CmdLineOption new
217
054062587f02 Added -i | --ident option to report-runner.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 189
diff changeset
   117
        short: $T;
054062587f02 Added -i | --ident option to report-runner.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 189
diff changeset
   118
        long: 'teardown';
147
9f2935d68582 class: Builder::ReportRunner
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 144
diff changeset
   119
        description: 'Code executed after all tests are executed';
188
6eeac31d0432 Workaround for stc bug
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 184
diff changeset
   120
        action:[:option |
147
9f2935d68582 class: Builder::ReportRunner
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 144
diff changeset
   121
            teardown := option
217
054062587f02 Added -i | --ident option to report-runner.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 189
diff changeset
   122
        ];
054062587f02 Added -i | --ident option to report-runner.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 189
diff changeset
   123
        yourself
147
9f2935d68582 class: Builder::ReportRunner
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 144
diff changeset
   124
9f2935d68582 class: Builder::ReportRunner
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 144
diff changeset
   125
    "Created: / 15-05-2013 / 16:50:53 / Jan Vrany <jan.vrany@fit.cvut.cz>"
217
054062587f02 Added -i | --ident option to report-runner.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 189
diff changeset
   126
    "Modified: / 22-01-2014 / 10:01:02 / Jan Vrany <jan.vrany@fit.cvut.cz>"
72
c23d29fe0ec6 initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   127
! !
c23d29fe0ec6 initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   128
184
5f75ffc9642b Install signal handlers for SIGUSR2 and SIGTERM that dumps
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 147
diff changeset
   129
!ReportRunner class methodsFor:'debugging'!
5f75ffc9642b Install signal handlers for SIGUSR2 and SIGTERM that dumps
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 147
diff changeset
   130
5f75ffc9642b Install signal handlers for SIGUSR2 and SIGTERM that dumps
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 147
diff changeset
   131
dumpProcess: aProcess
5f75ffc9642b Install signal handlers for SIGUSR2 and SIGTERM that dumps
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 147
diff changeset
   132
    Stderr cr; cr
5f75ffc9642b Install signal handlers for SIGUSR2 and SIGTERM that dumps
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 147
diff changeset
   133
5f75ffc9642b Install signal handlers for SIGUSR2 and SIGTERM that dumps
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 147
diff changeset
   134
    "Created: / 27-06-2013 / 23:41:15 / Jan Vrany <jan.vrany@fit.cvut.cz>"
5f75ffc9642b Install signal handlers for SIGUSR2 and SIGTERM that dumps
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 147
diff changeset
   135
!
5f75ffc9642b Install signal handlers for SIGUSR2 and SIGTERM that dumps
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 147
diff changeset
   136
5f75ffc9642b Install signal handlers for SIGUSR2 and SIGTERM that dumps
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 147
diff changeset
   137
dumpProcess: aProcess on: aStream
5f75ffc9642b Install signal handlers for SIGUSR2 and SIGTERM that dumps
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 147
diff changeset
   138
    | ctx |
5f75ffc9642b Install signal handlers for SIGUSR2 and SIGTERM that dumps
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 147
diff changeset
   139
    aStream cr; cr.
5f75ffc9642b Install signal handlers for SIGUSR2 and SIGTERM that dumps
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 147
diff changeset
   140
    aStream nextPutAll: '== ['; nextPutAll: aProcess id printString; nextPutAll:'] '; nextPutAll: aProcess name; nextPutAll: ' =='; cr.
5f75ffc9642b Install signal handlers for SIGUSR2 and SIGTERM that dumps
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 147
diff changeset
   141
    aStream cr.
238
c5047b0ed211 Dump all threads when testcase times out.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 232
diff changeset
   142
    aStream nextPutAll: '  State:   '; nextPutAll: aProcess state printString; cr.
c5047b0ed211 Dump all threads when testcase times out.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 232
diff changeset
   143
    aStream nextPutAll: '  Group:   '; nextPutAll: aProcess processGroupId printString; cr.
c5047b0ed211 Dump all threads when testcase times out.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 232
diff changeset
   144
    aStream nextPutAll: '  Creator: '; nextPutAll: aProcess processGroupId printString; cr.
c5047b0ed211 Dump all threads when testcase times out.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 232
diff changeset
   145
    aStream nextPutAll: '  Stack:   '; cr; cr.
184
5f75ffc9642b Install signal handlers for SIGUSR2 and SIGTERM that dumps
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 147
diff changeset
   146
188
6eeac31d0432 Workaround for stc bug
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 184
diff changeset
   147
    aProcess == Processor activeProcess ifTrue:[ctx := thisContext] ifFalse:[ctx := aProcess suspendedContext].
184
5f75ffc9642b Install signal handlers for SIGUSR2 and SIGTERM that dumps
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 147
diff changeset
   148
    [ ctx notNil ] whileTrue:[
5f75ffc9642b Install signal handlers for SIGUSR2 and SIGTERM that dumps
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 147
diff changeset
   149
        aStream nextPutAll: '  '.
188
6eeac31d0432 Workaround for stc bug
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 184
diff changeset
   150
        ctx fullPrintOn: aStream.
184
5f75ffc9642b Install signal handlers for SIGUSR2 and SIGTERM that dumps
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 147
diff changeset
   151
        aStream cr.
5f75ffc9642b Install signal handlers for SIGUSR2 and SIGTERM that dumps
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 147
diff changeset
   152
        ctx := ctx sender.
5f75ffc9642b Install signal handlers for SIGUSR2 and SIGTERM that dumps
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 147
diff changeset
   153
    ].
5f75ffc9642b Install signal handlers for SIGUSR2 and SIGTERM that dumps
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 147
diff changeset
   154
    aStream cr.
5f75ffc9642b Install signal handlers for SIGUSR2 and SIGTERM that dumps
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 147
diff changeset
   155
5f75ffc9642b Install signal handlers for SIGUSR2 and SIGTERM that dumps
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 147
diff changeset
   156
    "
5f75ffc9642b Install signal handlers for SIGUSR2 and SIGTERM that dumps
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 147
diff changeset
   157
        self dumpProcess: Processor activeProcess on: Transcript.
5f75ffc9642b Install signal handlers for SIGUSR2 and SIGTERM that dumps
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 147
diff changeset
   158
    "
5f75ffc9642b Install signal handlers for SIGUSR2 and SIGTERM that dumps
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 147
diff changeset
   159
5f75ffc9642b Install signal handlers for SIGUSR2 and SIGTERM that dumps
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 147
diff changeset
   160
    "Created: / 28-06-2013 / 01:00:35 / Jan Vrany <jan.vrany@fit.cvut.cz>"
238
c5047b0ed211 Dump all threads when testcase times out.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 232
diff changeset
   161
    "Modified: / 06-06-2014 / 09:14:23 / Jan Vrany <jan.vrany@fit.cvut.cz>"
184
5f75ffc9642b Install signal handlers for SIGUSR2 and SIGTERM that dumps
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 147
diff changeset
   162
!
5f75ffc9642b Install signal handlers for SIGUSR2 and SIGTERM that dumps
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 147
diff changeset
   163
5f75ffc9642b Install signal handlers for SIGUSR2 and SIGTERM that dumps
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 147
diff changeset
   164
dumpProcesses
5f75ffc9642b Install signal handlers for SIGUSR2 and SIGTERM that dumps
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 147
diff changeset
   165
    self dumpProcessesOn: Stderr
5f75ffc9642b Install signal handlers for SIGUSR2 and SIGTERM that dumps
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 147
diff changeset
   166
5f75ffc9642b Install signal handlers for SIGUSR2 and SIGTERM that dumps
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 147
diff changeset
   167
    "
5f75ffc9642b Install signal handlers for SIGUSR2 and SIGTERM that dumps
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 147
diff changeset
   168
    self dumpProcessesOn: Transcript.
5f75ffc9642b Install signal handlers for SIGUSR2 and SIGTERM that dumps
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 147
diff changeset
   169
    "
5f75ffc9642b Install signal handlers for SIGUSR2 and SIGTERM that dumps
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 147
diff changeset
   170
5f75ffc9642b Install signal handlers for SIGUSR2 and SIGTERM that dumps
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 147
diff changeset
   171
    "Created: / 27-06-2013 / 23:41:15 / Jan Vrany <jan.vrany@fit.cvut.cz>"
5f75ffc9642b Install signal handlers for SIGUSR2 and SIGTERM that dumps
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 147
diff changeset
   172
    "Modified (comment): / 28-06-2013 / 01:06:40 / Jan Vrany <jan.vrany@fit.cvut.cz>"
5f75ffc9642b Install signal handlers for SIGUSR2 and SIGTERM that dumps
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 147
diff changeset
   173
!
5f75ffc9642b Install signal handlers for SIGUSR2 and SIGTERM that dumps
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 147
diff changeset
   174
5f75ffc9642b Install signal handlers for SIGUSR2 and SIGTERM that dumps
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 147
diff changeset
   175
dumpProcessesOn: aStream
5f75ffc9642b Install signal handlers for SIGUSR2 and SIGTERM that dumps
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 147
diff changeset
   176
    Process allInstancesDo:[:process|
5f75ffc9642b Install signal handlers for SIGUSR2 and SIGTERM that dumps
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 147
diff changeset
   177
        process isDead ifFalse:[
5f75ffc9642b Install signal handlers for SIGUSR2 and SIGTERM that dumps
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 147
diff changeset
   178
            self dumpProcess: process on: aStream
5f75ffc9642b Install signal handlers for SIGUSR2 and SIGTERM that dumps
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 147
diff changeset
   179
        ]
5f75ffc9642b Install signal handlers for SIGUSR2 and SIGTERM that dumps
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 147
diff changeset
   180
    ]
5f75ffc9642b Install signal handlers for SIGUSR2 and SIGTERM that dumps
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 147
diff changeset
   181
5f75ffc9642b Install signal handlers for SIGUSR2 and SIGTERM that dumps
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 147
diff changeset
   182
    "Created: / 27-06-2013 / 23:42:21 / Jan Vrany <jan.vrany@fit.cvut.cz>"
5f75ffc9642b Install signal handlers for SIGUSR2 and SIGTERM that dumps
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 147
diff changeset
   183
! !
5f75ffc9642b Install signal handlers for SIGUSR2 and SIGTERM that dumps
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 147
diff changeset
   184
72
c23d29fe0ec6 initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   185
!ReportRunner class methodsFor:'defaults'!
c23d29fe0ec6 initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   186
77
90d1dd533087 --help improved
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 72
diff changeset
   187
allowCoverageMeasurementOption
90d1dd533087 --help improved
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 72
diff changeset
   188
90d1dd533087 --help improved
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 72
diff changeset
   189
    ^false "CoverageReport will do that"
90d1dd533087 --help improved
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 72
diff changeset
   190
90d1dd533087 --help improved
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 72
diff changeset
   191
    "Created: / 13-01-2012 / 11:48:40 / Jan Vrany <jan.vrany@fit.cvut.cz>"
90d1dd533087 --help improved
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 72
diff changeset
   192
!
90d1dd533087 --help improved
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 72
diff changeset
   193
72
c23d29fe0ec6 initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   194
allowDebugOption
c23d29fe0ec6 initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   195
c23d29fe0ec6 initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   196
    ^true
c23d29fe0ec6 initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   197
c23d29fe0ec6 initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   198
    "Created: / 21-07-2011 / 09:48:21 / Jan Vrany <jan.vrany@fit.cvut.cz>"
c23d29fe0ec6 initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   199
! !
c23d29fe0ec6 initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   200
c23d29fe0ec6 initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   201
!ReportRunner class methodsFor:'multiple applications support'!
c23d29fe0ec6 initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   202
c23d29fe0ec6 initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   203
applicationRegistryPath
c23d29fe0ec6 initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   204
    "the key under which this application stores its process ID in the registry
c23d29fe0ec6 initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   205
     as a collection of path-components.
c23d29fe0ec6 initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   206
     i.e. if #('foo' 'bar' 'baz') is returned here, the current applications ID will be stored
c23d29fe0ec6 initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   207
     in HKEY_CURRENT_USER\Software\foo\bar\baz\CurrentID.
c23d29fe0ec6 initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   208
     (would also be used as a relative path for a temporary lock file under unix).
c23d29fe0ec6 initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   209
     Used to detect if another instance of this application is already running."
c23d29fe0ec6 initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   210
c23d29fe0ec6 initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   211
    ^ #('exept' 'smalltallx' 'hdreportrunner')
c23d29fe0ec6 initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   212
c23d29fe0ec6 initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   213
    "Modified: / 21-07-2011 / 09:43:58 / Jan Vrany <jan.vrany@fit.cvut.cz>"
c23d29fe0ec6 initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   214
!
c23d29fe0ec6 initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   215
c23d29fe0ec6 initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   216
applicationUUID
c23d29fe0ec6 initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   217
    "answer an application-specific unique uuid.
c23d29fe0ec6 initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   218
     This is used as the name of some exclusive OS-resource, which is used to find out,
c23d29fe0ec6 initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   219
     if another instance of this application is already running.
c23d29fe0ec6 initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   220
     Under win32, a mutex is used; under unix, an exclusive file in the tempDir could be used."
c23d29fe0ec6 initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   221
c23d29fe0ec6 initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   222
    ^ '99f65c80-b375-11e0-86ad-0013e89c0459' asUUID
c23d29fe0ec6 initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   223
c23d29fe0ec6 initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   224
    "Modified: / 21-07-2011 / 09:44:18 / Jan Vrany <jan.vrany@fit.cvut.cz>"
c23d29fe0ec6 initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   225
! !
c23d29fe0ec6 initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   226
c23d29fe0ec6 initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   227
!ReportRunner class methodsFor:'startup'!
c23d29fe0ec6 initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   228
184
5f75ffc9642b Install signal handlers for SIGUSR2 and SIGTERM that dumps
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 147
diff changeset
   229
handleSIGTERM
5f75ffc9642b Install signal handlers for SIGUSR2 and SIGTERM that dumps
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 147
diff changeset
   230
    self dumpProcesses.
5f75ffc9642b Install signal handlers for SIGUSR2 and SIGTERM that dumps
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 147
diff changeset
   231
    debugging ifFalse:[
5f75ffc9642b Install signal handlers for SIGUSR2 and SIGTERM that dumps
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 147
diff changeset
   232
        Smalltalk exit:127.
5f75ffc9642b Install signal handlers for SIGUSR2 and SIGTERM that dumps
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 147
diff changeset
   233
    ].
5f75ffc9642b Install signal handlers for SIGUSR2 and SIGTERM that dumps
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 147
diff changeset
   234
5f75ffc9642b Install signal handlers for SIGUSR2 and SIGTERM that dumps
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 147
diff changeset
   235
    "Created: / 27-06-2013 / 23:10:48 / Jan Vrany <jan.vrany@fit.cvut.cz>"
5f75ffc9642b Install signal handlers for SIGUSR2 and SIGTERM that dumps
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 147
diff changeset
   236
    "Modified: / 28-06-2013 / 01:08:03 / Jan Vrany <jan.vrany@fit.cvut.cz>"
5f75ffc9642b Install signal handlers for SIGUSR2 and SIGTERM that dumps
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 147
diff changeset
   237
!
5f75ffc9642b Install signal handlers for SIGUSR2 and SIGTERM that dumps
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 147
diff changeset
   238
5f75ffc9642b Install signal handlers for SIGUSR2 and SIGTERM that dumps
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 147
diff changeset
   239
handleSIGUSR2
5f75ffc9642b Install signal handlers for SIGUSR2 and SIGTERM that dumps
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 147
diff changeset
   240
    self dumpProcesses
5f75ffc9642b Install signal handlers for SIGUSR2 and SIGTERM that dumps
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 147
diff changeset
   241
5f75ffc9642b Install signal handlers for SIGUSR2 and SIGTERM that dumps
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 147
diff changeset
   242
    "Created: / 27-06-2013 / 23:10:48 / Jan Vrany <jan.vrany@fit.cvut.cz>"
5f75ffc9642b Install signal handlers for SIGUSR2 and SIGTERM that dumps
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 147
diff changeset
   243
!
5f75ffc9642b Install signal handlers for SIGUSR2 and SIGTERM that dumps
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 147
diff changeset
   244
5f75ffc9642b Install signal handlers for SIGUSR2 and SIGTERM that dumps
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 147
diff changeset
   245
setupSignalHandlers
5f75ffc9642b Install signal handlers for SIGUSR2 and SIGTERM that dumps
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 147
diff changeset
   246
    "On UNIX, this sets up a custom signal handler on SIGUSR2 and SIGTERM that
5f75ffc9642b Install signal handlers for SIGUSR2 and SIGTERM that dumps
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 147
diff changeset
   247
     dumps stacks on all threads"
5f75ffc9642b Install signal handlers for SIGUSR2 and SIGTERM that dumps
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 147
diff changeset
   248
188
6eeac31d0432 Workaround for stc bug
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 184
diff changeset
   249
    | sigusr2 sigterm |
6eeac31d0432 Workaround for stc bug
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 184
diff changeset
   250
184
5f75ffc9642b Install signal handlers for SIGUSR2 and SIGTERM that dumps
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 147
diff changeset
   251
    OperatingSystem isUNIXlike ifTrue:[
188
6eeac31d0432 Workaround for stc bug
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 184
diff changeset
   252
184
5f75ffc9642b Install signal handlers for SIGUSR2 and SIGTERM that dumps
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 147
diff changeset
   253
5f75ffc9642b Install signal handlers for SIGUSR2 and SIGTERM that dumps
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 147
diff changeset
   254
        sigterm := Signal new.
5f75ffc9642b Install signal handlers for SIGUSR2 and SIGTERM that dumps
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 147
diff changeset
   255
        sigterm handlerBlock: [:ex | self handleSIGTERM].
5f75ffc9642b Install signal handlers for SIGUSR2 and SIGTERM that dumps
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 147
diff changeset
   256
        OperatingSystem operatingSystemSignal:OperatingSystem sigTERM install: sigterm.
5f75ffc9642b Install signal handlers for SIGUSR2 and SIGTERM that dumps
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 147
diff changeset
   257
        OperatingSystem enableSignal: OperatingSystem sigTERM.
5f75ffc9642b Install signal handlers for SIGUSR2 and SIGTERM that dumps
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 147
diff changeset
   258
5f75ffc9642b Install signal handlers for SIGUSR2 and SIGTERM that dumps
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 147
diff changeset
   259
        sigusr2 := Signal new.
5f75ffc9642b Install signal handlers for SIGUSR2 and SIGTERM that dumps
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 147
diff changeset
   260
        sigusr2 handlerBlock: [:ex | self handleSIGUSR2].
5f75ffc9642b Install signal handlers for SIGUSR2 and SIGTERM that dumps
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 147
diff changeset
   261
        OperatingSystem operatingSystemSignal:OperatingSystem sigUSR2 install: sigusr2.
5f75ffc9642b Install signal handlers for SIGUSR2 and SIGTERM that dumps
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 147
diff changeset
   262
        OperatingSystem enableSignal: OperatingSystem sigUSR2.
5f75ffc9642b Install signal handlers for SIGUSR2 and SIGTERM that dumps
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 147
diff changeset
   263
    ].
5f75ffc9642b Install signal handlers for SIGUSR2 and SIGTERM that dumps
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 147
diff changeset
   264
5f75ffc9642b Install signal handlers for SIGUSR2 and SIGTERM that dumps
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 147
diff changeset
   265
    "
188
6eeac31d0432 Workaround for stc bug
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 184
diff changeset
   266
    OperatingSystem sendSignal: OperatingSystem sigUSR2 to: OperatingSystem getProcessId
184
5f75ffc9642b Install signal handlers for SIGUSR2 and SIGTERM that dumps
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 147
diff changeset
   267
    "
5f75ffc9642b Install signal handlers for SIGUSR2 and SIGTERM that dumps
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 147
diff changeset
   268
5f75ffc9642b Install signal handlers for SIGUSR2 and SIGTERM that dumps
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 147
diff changeset
   269
    "Created: / 27-06-2013 / 20:57:09 / Jan Vrany <jan.vrany@fit.cvut.cz>"
5f75ffc9642b Install signal handlers for SIGUSR2 and SIGTERM that dumps
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 147
diff changeset
   270
    "Modified: / 28-06-2013 / 01:11:04 / Jan Vrany <jan.vrany@fit.cvut.cz>"
5f75ffc9642b Install signal handlers for SIGUSR2 and SIGTERM that dumps
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 147
diff changeset
   271
!
5f75ffc9642b Install signal handlers for SIGUSR2 and SIGTERM that dumps
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 147
diff changeset
   272
72
c23d29fe0ec6 initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   273
setupToolsForDebug
c23d29fe0ec6 initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   274
c23d29fe0ec6 initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   275
    super setupToolsForDebug.
c23d29fe0ec6 initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   276
    debugging := true.
c23d29fe0ec6 initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   277
c23d29fe0ec6 initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   278
    "Created: / 06-11-2011 / 22:06:19 / Jan Vrany <jan.vrany@fit.cvut.cz>"
77
90d1dd533087 --help improved
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 72
diff changeset
   279
!
90d1dd533087 --help improved
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 72
diff changeset
   280
217
054062587f02 Added -i | --ident option to report-runner.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 189
diff changeset
   281
start
054062587f02 Added -i | --ident option to report-runner.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 189
diff changeset
   282
    Smalltalk silentLoading: true.
054062587f02 Added -i | --ident option to report-runner.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 189
diff changeset
   283
    ^ super start.
054062587f02 Added -i | --ident option to report-runner.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 189
diff changeset
   284
054062587f02 Added -i | --ident option to report-runner.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 189
diff changeset
   285
    "Created: / 22-01-2014 / 09:17:12 / Jan Vrany <jan.vrany@fit.cvut.cz>"
054062587f02 Added -i | --ident option to report-runner.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 189
diff changeset
   286
!
054062587f02 Added -i | --ident option to report-runner.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 189
diff changeset
   287
77
90d1dd533087 --help improved
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 72
diff changeset
   288
usage
90d1dd533087 --help improved
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 72
diff changeset
   289
90d1dd533087 --help improved
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 72
diff changeset
   290
    Stderr nextPutAll:'usage: report-runner.';
90d1dd533087 --help improved
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 72
diff changeset
   291
           nextPutAll: (OperatingSystem isMSWINDOWSlike ifTrue:['bat'] ifFalse:['sh']);
90d1dd533087 --help improved
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 72
diff changeset
   292
           nextPutAll: ' [-D <dir>] -r <report> [-p <package1> [-p <package2> [...]]]'; cr.
90d1dd533087 --help improved
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 72
diff changeset
   293
232
3c3f5f58ddeb Better command line help for standalone report runner.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 230
diff changeset
   294
    Stderr nextPutLine:'Common options:'; cr.
3c3f5f58ddeb Better command line help for standalone report runner.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 230
diff changeset
   295
77
90d1dd533087 --help improved
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 72
diff changeset
   296
    Stderr nextPutLine:'  --help .................. output this message'.
232
3c3f5f58ddeb Better command line help for standalone report runner.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 230
diff changeset
   297
"/    Stderr nextPutLine:'  --verbose ............... verbose startup'.
3c3f5f58ddeb Better command line help for standalone report runner.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 230
diff changeset
   298
"/    Stderr nextPutLine:'  --noBanner .............. no splash screen'.
3c3f5f58ddeb Better command line help for standalone report runner.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 230
diff changeset
   299
"/    Stderr nextPutLine:'  --newAppInstance ........ start as its own application process (do not reuse'.
3c3f5f58ddeb Better command line help for standalone report runner.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 230
diff changeset
   300
"/    Stderr nextPutLine:'                            a running instance)'.
3c3f5f58ddeb Better command line help for standalone report runner.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 230
diff changeset
   301
"/    self allowScriptingOption ifTrue:[
3c3f5f58ddeb Better command line help for standalone report runner.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 230
diff changeset
   302
"/        Stderr nextPutLine:'  --scripting portNr ...enable scripting via port (or stdin/stdOut if 0)'.
3c3f5f58ddeb Better command line help for standalone report runner.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 230
diff changeset
   303
"/    ].
77
90d1dd533087 --help improved
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 72
diff changeset
   304
    self allowDebugOption ifTrue:[
90d1dd533087 --help improved
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 72
diff changeset
   305
        Stderr nextPutLine:'  --debug ................. enable Debugger'.
90d1dd533087 --help improved
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 72
diff changeset
   306
    ].
90d1dd533087 --help improved
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 72
diff changeset
   307
    "/                 '  ......................... '
90d1dd533087 --help improved
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 72
diff changeset
   308
    Stderr nextPutLine:'  -D <dir>'.
90d1dd533087 --help improved
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 72
diff changeset
   309
    Stderr nextPutLine:'  --output-directory=<dir>  directory where report files will go'.
217
054062587f02 Added -i | --ident option to report-runner.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 189
diff changeset
   310
    Stderr nextPutLine:'  -S <expr>'.
054062587f02 Added -i | --ident option to report-runner.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 189
diff changeset
   311
    Stderr nextPutLine:'  --setup=<expr> .......... smalltalk expression that is evaluated before'. 
054062587f02 Added -i | --ident option to report-runner.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 189
diff changeset
   312
    Stderr nextPutLine:'                            any report is run'.
054062587f02 Added -i | --ident option to report-runner.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 189
diff changeset
   313
    Stderr nextPutLine:'  -T <expr>'.
054062587f02 Added -i | --ident option to report-runner.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 189
diff changeset
   314
    Stderr nextPutLine:'  --teardown=<expr> ....... smalltalk expression that is evaluated before'. 
054062587f02 Added -i | --ident option to report-runner.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 189
diff changeset
   315
    Stderr nextPutLine:'                            after all reports finished'.
054062587f02 Added -i | --ident option to report-runner.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 189
diff changeset
   316
    Stderr nextPutLine:'  -i <ident>'.
054062587f02 Added -i | --ident option to report-runner.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 189
diff changeset
   317
    Stderr nextPutLine:'  --ident=<ident> ......... run/configuration identification string to'.
054062587f02 Added -i | --ident option to report-runner.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 189
diff changeset
   318
    Stderr nextPutLine:'                            use when creating output files'.
77
90d1dd533087 --help improved
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 72
diff changeset
   319
    Stderr nextPutLine:'  -r <report class>'.
90d1dd533087 --help improved
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 72
diff changeset
   320
    Stderr nextPutLine:'  --report=<report class> . report to run. available reports:'.
90d1dd533087 --help improved
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 72
diff changeset
   321
    Report available do:[:report|
90d1dd533087 --help improved
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 72
diff changeset
   322
        Stderr nextPutAll:'      '; nextPutLine: report name
90d1dd533087 --help improved
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 72
diff changeset
   323
    ].
90d1dd533087 --help improved
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 72
diff changeset
   324
    Stderr nextPutLine:'  -p <package>'.
90d1dd533087 --help improved
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 72
diff changeset
   325
    Stderr nextPutLine:'  --package=<package> ..... package to run report on'.
90d1dd533087 --help improved
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 72
diff changeset
   326
    Stderr nextPutLine:'                            May be specified multiple times.'.
232
3c3f5f58ddeb Better command line help for standalone report runner.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 230
diff changeset
   327
3c3f5f58ddeb Better command line help for standalone report runner.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 230
diff changeset
   328
    Report available do:[:cls|
3c3f5f58ddeb Better command line help for standalone report runner.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 230
diff changeset
   329
        self usageForReportClass: cls.
3c3f5f58ddeb Better command line help for standalone report runner.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 230
diff changeset
   330
    ].
3c3f5f58ddeb Better command line help for standalone report runner.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 230
diff changeset
   331
3c3f5f58ddeb Better command line help for standalone report runner.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 230
diff changeset
   332
3c3f5f58ddeb Better command line help for standalone report runner.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 230
diff changeset
   333
    debugging ifFalse:[
217
054062587f02 Added -i | --ident option to report-runner.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 189
diff changeset
   334
        Smalltalk exit:1.
232
3c3f5f58ddeb Better command line help for standalone report runner.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 230
diff changeset
   335
    ].
77
90d1dd533087 --help improved
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 72
diff changeset
   336
    "
90d1dd533087 --help improved
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 72
diff changeset
   337
    self usage
90d1dd533087 --help improved
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 72
diff changeset
   338
    "
90d1dd533087 --help improved
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 72
diff changeset
   339
90d1dd533087 --help improved
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 72
diff changeset
   340
    "Created: / 13-01-2012 / 11:48:07 / Jan Vrany <jan.vrany@fit.cvut.cz>"
232
3c3f5f58ddeb Better command line help for standalone report runner.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 230
diff changeset
   341
    "Modified: / 27-05-2014 / 17:02:36 / Jan Vrany <jan.vrany@fit.cvut.cz>"
3c3f5f58ddeb Better command line help for standalone report runner.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 230
diff changeset
   342
!
3c3f5f58ddeb Better command line help for standalone report runner.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 230
diff changeset
   343
3c3f5f58ddeb Better command line help for standalone report runner.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 230
diff changeset
   344
usageForReportClass: class
3c3f5f58ddeb Better command line help for standalone report runner.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 230
diff changeset
   345
    | options |
3c3f5f58ddeb Better command line help for standalone report runner.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 230
diff changeset
   346
3c3f5f58ddeb Better command line help for standalone report runner.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 230
diff changeset
   347
    "/ '.........................' size  25
3c3f5f58ddeb Better command line help for standalone report runner.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 230
diff changeset
   348
    options := CmdLineOption optionsFor: class new.
3c3f5f58ddeb Better command line help for standalone report runner.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 230
diff changeset
   349
    options := options reject:[:option | 'pF' includes: option short  ].
3c3f5f58ddeb Better command line help for standalone report runner.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 230
diff changeset
   350
    options notEmptyOrNil ifTrue:[
3c3f5f58ddeb Better command line help for standalone report runner.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 230
diff changeset
   351
        Stderr cr.
3c3f5f58ddeb Better command line help for standalone report runner.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 230
diff changeset
   352
        Stderr nextPutAll: class name; nextPutLine:' options:'; cr.
3c3f5f58ddeb Better command line help for standalone report runner.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 230
diff changeset
   353
        options do:[:option |                
3c3f5f58ddeb Better command line help for standalone report runner.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 230
diff changeset
   354
            | optlen |  
3c3f5f58ddeb Better command line help for standalone report runner.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 230
diff changeset
   355
3c3f5f58ddeb Better command line help for standalone report runner.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 230
diff changeset
   356
            option short notNil ifTrue:[ 
243
625f6907682a Tiny fix in help formatting
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 238
diff changeset
   357
                Stderr nextPutAll: '  '.
232
3c3f5f58ddeb Better command line help for standalone report runner.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 230
diff changeset
   358
                Stderr nextPut: $-; nextPut: option short; space.
3c3f5f58ddeb Better command line help for standalone report runner.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 230
diff changeset
   359
                optlen := 2.
3c3f5f58ddeb Better command line help for standalone report runner.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 230
diff changeset
   360
                option hasParam ifTrue:[ 
3c3f5f58ddeb Better command line help for standalone report runner.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 230
diff changeset
   361
                    | paramName |
3c3f5f58ddeb Better command line help for standalone report runner.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 230
diff changeset
   362
3c3f5f58ddeb Better command line help for standalone report runner.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 230
diff changeset
   363
                    paramName := 'val'.
3c3f5f58ddeb Better command line help for standalone report runner.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 230
diff changeset
   364
                    Stderr nextPut:$<; nextPutAll: paramName; nextPut:$>; space.
3c3f5f58ddeb Better command line help for standalone report runner.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 230
diff changeset
   365
                    optlen := optlen + 3 + paramName size.
3c3f5f58ddeb Better command line help for standalone report runner.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 230
diff changeset
   366
                ].
3c3f5f58ddeb Better command line help for standalone report runner.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 230
diff changeset
   367
            ].
3c3f5f58ddeb Better command line help for standalone report runner.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 230
diff changeset
   368
            option long notNil ifTrue:[ 
3c3f5f58ddeb Better command line help for standalone report runner.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 230
diff changeset
   369
                 option short notNil ifTrue:[ 
3c3f5f58ddeb Better command line help for standalone report runner.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 230
diff changeset
   370
                    Stderr cr.
3c3f5f58ddeb Better command line help for standalone report runner.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 230
diff changeset
   371
                ].
3c3f5f58ddeb Better command line help for standalone report runner.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 230
diff changeset
   372
                Stderr nextPutAll: '  --'.
3c3f5f58ddeb Better command line help for standalone report runner.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 230
diff changeset
   373
                Stderr nextPutAll: option long.
3c3f5f58ddeb Better command line help for standalone report runner.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 230
diff changeset
   374
                optlen := option long size + 2.
3c3f5f58ddeb Better command line help for standalone report runner.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 230
diff changeset
   375
                option hasParam ifTrue:[ 
3c3f5f58ddeb Better command line help for standalone report runner.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 230
diff changeset
   376
                    | paramName |
3c3f5f58ddeb Better command line help for standalone report runner.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 230
diff changeset
   377
3c3f5f58ddeb Better command line help for standalone report runner.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 230
diff changeset
   378
                    paramName := 'val'.
3c3f5f58ddeb Better command line help for standalone report runner.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 230
diff changeset
   379
                    Stderr nextPut:$=; nextPut:$<; nextPutAll: paramName; nextPut:$>.
3c3f5f58ddeb Better command line help for standalone report runner.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 230
diff changeset
   380
                    optlen := optlen + 3 + paramName size.
3c3f5f58ddeb Better command line help for standalone report runner.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 230
diff changeset
   381
                ].
3c3f5f58ddeb Better command line help for standalone report runner.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 230
diff changeset
   382
                Stderr space.
3c3f5f58ddeb Better command line help for standalone report runner.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 230
diff changeset
   383
            ].
3c3f5f58ddeb Better command line help for standalone report runner.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 230
diff changeset
   384
            Stderr next: (26 - 1"space" -2"--" - optlen) put: $..    
3c3f5f58ddeb Better command line help for standalone report runner.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 230
diff changeset
   385
            Stderr space.
3c3f5f58ddeb Better command line help for standalone report runner.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 230
diff changeset
   386
            option description notNil ifTrue:[
3c3f5f58ddeb Better command line help for standalone report runner.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 230
diff changeset
   387
                Stderr nextPutAll: option description
3c3f5f58ddeb Better command line help for standalone report runner.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 230
diff changeset
   388
            ].
3c3f5f58ddeb Better command line help for standalone report runner.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 230
diff changeset
   389
            Stderr cr.
3c3f5f58ddeb Better command line help for standalone report runner.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 230
diff changeset
   390
        ]
3c3f5f58ddeb Better command line help for standalone report runner.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 230
diff changeset
   391
    ]
3c3f5f58ddeb Better command line help for standalone report runner.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 230
diff changeset
   392
243
625f6907682a Tiny fix in help formatting
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 238
diff changeset
   393
    "
625f6907682a Tiny fix in help formatting
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 238
diff changeset
   394
    ReportRunner usageForReportClass: TestReport.
625f6907682a Tiny fix in help formatting
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 238
diff changeset
   395
    "
625f6907682a Tiny fix in help formatting
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 238
diff changeset
   396
232
3c3f5f58ddeb Better command line help for standalone report runner.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 230
diff changeset
   397
    "Created: / 27-05-2014 / 16:42:27 / Jan Vrany <jan.vrany@fit.cvut.cz>"
243
625f6907682a Tiny fix in help formatting
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 238
diff changeset
   398
    "Modified: / 16-06-2014 / 11:25:36 / Jan Vrany <jan.vrany@fit.cvut.cz>"
72
c23d29fe0ec6 initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   399
! !
c23d29fe0ec6 initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   400
c23d29fe0ec6 initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   401
!ReportRunner class methodsFor:'startup-to be redefined'!
c23d29fe0ec6 initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   402
189
bd2bed33aba7 Fixes to make it running on Smalltalk/X 6.2.2 released in July 2012
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 188
diff changeset
   403
main:argv0
143
252c91b7f96d class: Builder::ReportRunner
Stefan Vogel <sv@exept.de>
parents: 102
diff changeset
   404
    "Process command line arguments"
102
a63aa44303e3 changed: #main: - support for not-officially-supported VM options
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 97
diff changeset
   405
570
9c47ccc9e9b5 Add `--fail-on-error` and `--fail-on-failure` options
Jan Vrany <jan.vrany@labware.com>
parents: 243
diff changeset
   406
    | argv status |
189
bd2bed33aba7 Fixes to make it running on Smalltalk/X 6.2.2 released in July 2012
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 188
diff changeset
   407
bd2bed33aba7 Fixes to make it running on Smalltalk/X 6.2.2 released in July 2012
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 188
diff changeset
   408
    argv := argv0 asOrderedCollection.
232
3c3f5f58ddeb Better command line help for standalone report runner.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 230
diff changeset
   409
    argv isEmpty ifTrue:[ 
3c3f5f58ddeb Better command line help for standalone report runner.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 230
diff changeset
   410
        self usage.
3c3f5f58ddeb Better command line help for standalone report runner.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 230
diff changeset
   411
    ].
189
bd2bed33aba7 Fixes to make it running on Smalltalk/X 6.2.2 released in July 2012
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 188
diff changeset
   412
    argv remove: '--abortOnSEGV' ifAbsent:[nil].
72
c23d29fe0ec6 initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   413
    parser := CmdLineParser new.
144
b38e5af6b408 class: Builder::ReportRunner
Stefan Vogel <sv@exept.de>
parents: 143
diff changeset
   414
    CmdLineOptionError autoload.
b38e5af6b408 class: Builder::ReportRunner
Stefan Vogel <sv@exept.de>
parents: 143
diff changeset
   415
188
6eeac31d0432 Workaround for stc bug
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 184
diff changeset
   416
    [
6eeac31d0432 Workaround for stc bug
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 184
diff changeset
   417
        parser parse: argv for: self.
143
252c91b7f96d class: Builder::ReportRunner
Stefan Vogel <sv@exept.de>
parents: 102
diff changeset
   418
    ] on:CmdLineOptionError do:[:ex|
72
c23d29fe0ec6 initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   419
        Stderr nextPutLine:'Error when processing options: ', ex description.
188
6eeac31d0432 Workaround for stc bug
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 184
diff changeset
   420
        debugging ifFalse:[
92
545ea8f561b0 changed: #main:
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 78
diff changeset
   421
            ex suspendedContext fullPrintAllOn: Stderr.
72
c23d29fe0ec6 initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   422
            Stderr nextPutLine:'Exiting'.
570
9c47ccc9e9b5 Add `--fail-on-error` and `--fail-on-failure` options
Jan Vrany <jan.vrany@labware.com>
parents: 243
diff changeset
   423
            Smalltalk exit:2.
72
c23d29fe0ec6 initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   424
        ] ifTrue:[
c23d29fe0ec6 initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   425
            ex pass
188
6eeac31d0432 Workaround for stc bug
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 184
diff changeset
   426
        ]
72
c23d29fe0ec6 initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   427
    ].
c23d29fe0ec6 initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   428
230
9e0098682d8c Fix in Builder::ReportRunner>>#main:
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 225
diff changeset
   429
    debugging ifFalse:[ 
9e0098682d8c Fix in Builder::ReportRunner>>#main:
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 225
diff changeset
   430
        NoHandlerError emergencyHandler:(NoHandlerError abortingEmergencyHandler)
9e0098682d8c Fix in Builder::ReportRunner>>#main:
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 225
diff changeset
   431
    ].
9e0098682d8c Fix in Builder::ReportRunner>>#main:
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 225
diff changeset
   432
72
c23d29fe0ec6 initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   433
    [
147
9f2935d68582 class: Builder::ReportRunner
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 144
diff changeset
   434
        setup notNil ifTrue:[Compiler evaluate: setup].
9f2935d68582 class: Builder::ReportRunner
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 144
diff changeset
   435
        [
217
054062587f02 Added -i | --ident option to report-runner.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 189
diff changeset
   436
            report ident: ident.
570
9c47ccc9e9b5 Add `--fail-on-error` and `--fail-on-failure` options
Jan Vrany <jan.vrany@labware.com>
parents: 243
diff changeset
   437
            status := report run.
147
9f2935d68582 class: Builder::ReportRunner
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 144
diff changeset
   438
        ] ensure:[
9f2935d68582 class: Builder::ReportRunner
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 144
diff changeset
   439
            teardown notNil ifTrue:[Compiler evaluate: teardown].
9f2935d68582 class: Builder::ReportRunner
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 144
diff changeset
   440
        ].
72
c23d29fe0ec6 initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   441
        debugging ifFalse:[
570
9c47ccc9e9b5 Add `--fail-on-error` and `--fail-on-failure` options
Jan Vrany <jan.vrany@labware.com>
parents: 243
diff changeset
   442
            Smalltalk exit: status.
72
c23d29fe0ec6 initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   443
        ].
c23d29fe0ec6 initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   444
    ] on: Error do:[:ex|
c23d29fe0ec6 initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   445
        Stderr nextPutAll:'Error when running tests: '.
c23d29fe0ec6 initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   446
        Stderr nextPutAll:ex description; cr.
c23d29fe0ec6 initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   447
        ex suspendedContext printAllOn:Stderr.
147
9f2935d68582 class: Builder::ReportRunner
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 144
diff changeset
   448
9f2935d68582 class: Builder::ReportRunner
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 144
diff changeset
   449
72
c23d29fe0ec6 initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   450
        debugging ifFalse:[
570
9c47ccc9e9b5 Add `--fail-on-error` and `--fail-on-failure` options
Jan Vrany <jan.vrany@labware.com>
parents: 243
diff changeset
   451
            Smalltalk exit:3.
72
c23d29fe0ec6 initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   452
        ] ifTrue:[
c23d29fe0ec6 initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   453
            ex pass
c23d29fe0ec6 initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   454
        ]
c23d29fe0ec6 initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   455
    ]
c23d29fe0ec6 initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   456
232
3c3f5f58ddeb Better command line help for standalone report runner.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 230
diff changeset
   457
    "Modified: / 27-05-2014 / 17:05:06 / 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: 243
diff changeset
   458
    "Modified: / 03-12-2021 / 13:14:00 / Jan Vrany <jan.vrany@labware.com>"
72
c23d29fe0ec6 initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   459
! !
c23d29fe0ec6 initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   460
c23d29fe0ec6 initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   461
!ReportRunner class methodsFor:'documentation'!
c23d29fe0ec6 initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   462
c23d29fe0ec6 initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   463
version
c23d29fe0ec6 initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   464
    ^ '$Header$'
c23d29fe0ec6 initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   465
!
c23d29fe0ec6 initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   466
c23d29fe0ec6 initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   467
version_CVS
c23d29fe0ec6 initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   468
    ^ '$Header$'
c23d29fe0ec6 initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   469
!
c23d29fe0ec6 initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   470
c23d29fe0ec6 initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   471
version_SVN
147
9f2935d68582 class: Builder::ReportRunner
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 144
diff changeset
   472
    ^ '$Id$'
72
c23d29fe0ec6 initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   473
! !
c23d29fe0ec6 initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   474
143
252c91b7f96d class: Builder::ReportRunner
Stefan Vogel <sv@exept.de>
parents: 102
diff changeset
   475
72
c23d29fe0ec6 initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   476
ReportRunner initialize!