TestCase.st
author convert-repo
Fri, 10 Nov 2017 04:34:57 +0000
changeset 693 7766f760b307
parent 690 cb50d1d3ffeb
child 700 2309c94fe81c
permissions -rw-r--r--
update tags
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
139
5a48f282d789 back to 1.42 - last checked in version was bogus
Claus Gittinger <cg@exept.de>
parents: 138
diff changeset
     1
"{ Package: 'stx:goodies/sunit' }"
0
9365d5753f11 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents:
diff changeset
     2
599
400bc2cb5690 class: TestCase
Claus Gittinger <cg@exept.de>
parents: 594
diff changeset
     3
"{ NameSpace: Smalltalk }"
400bc2cb5690 class: TestCase
Claus Gittinger <cg@exept.de>
parents: 594
diff changeset
     4
222
8e6f482297fa Jan's 4.1 version
Claus Gittinger <cg@exept.de>
parents: 221
diff changeset
     5
TestAsserter subclass:#TestCase
377
71ada743cae2 removed leftover rubbish
Claus Gittinger <cg@exept.de>
parents: 331
diff changeset
     6
	instanceVariableNames:'testSelector'
71ada743cae2 removed leftover rubbish
Claus Gittinger <cg@exept.de>
parents: 331
diff changeset
     7
	classVariableNames:''
71ada743cae2 removed leftover rubbish
Claus Gittinger <cg@exept.de>
parents: 331
diff changeset
     8
	poolDictionaries:''
71ada743cae2 removed leftover rubbish
Claus Gittinger <cg@exept.de>
parents: 331
diff changeset
     9
	category:'SUnit-Base'
0
9365d5753f11 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    10
!
9365d5753f11 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    11
382
05683696d647 Fixs in remembering test outcomes
vrany
parents: 377
diff changeset
    12
TestCase class instanceVariableNames:'lastOutcomes'
81
10852410025d *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 73
diff changeset
    13
10852410025d *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 73
diff changeset
    14
"
10852410025d *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 73
diff changeset
    15
 No other class instance variables are inherited by this class.
10852410025d *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 73
diff changeset
    16
"
10852410025d *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 73
diff changeset
    17
!
10852410025d *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 73
diff changeset
    18
139
5a48f282d789 back to 1.42 - last checked in version was bogus
Claus Gittinger <cg@exept.de>
parents: 138
diff changeset
    19
5a48f282d789 back to 1.42 - last checked in version was bogus
Claus Gittinger <cg@exept.de>
parents: 138
diff changeset
    20
!TestCase class methodsFor:'initialization'!
12
4a6597527f92 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6
diff changeset
    21
435
vrany
parents: 433
diff changeset
    22
flushAll
vrany
parents: 433
diff changeset
    23
vrany
parents: 433
diff changeset
    24
    "Flush all remembered outcomes in all testcases"
vrany
parents: 433
diff changeset
    25
vrany
parents: 433
diff changeset
    26
    self withAllSubclassesDo:[:cls|
594
617433e967e9 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 587
diff changeset
    27
	cls flushRememberedOutcomes
435
vrany
parents: 433
diff changeset
    28
    ]
vrany
parents: 433
diff changeset
    29
vrany
parents: 433
diff changeset
    30
    "Created: / 17-11-2011 / 19:18:30 / Jan Vrany <jan.vrany@fit.cvut.cz>"
vrany
parents: 433
diff changeset
    31
!
vrany
parents: 433
diff changeset
    32
vrany
parents: 433
diff changeset
    33
flushRememberedOutcomes
vrany
parents: 433
diff changeset
    34
vrany
parents: 433
diff changeset
    35
    "Flushes all remembered outcomes for the receiver"
vrany
parents: 433
diff changeset
    36
vrany
parents: 433
diff changeset
    37
    | outcomes |
vrany
parents: 433
diff changeset
    38
vrany
parents: 433
diff changeset
    39
    lastOutcomes isNil ifTrue:[^self].
594
617433e967e9 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 587
diff changeset
    40
    outcomes := lastOutcomes.
435
vrany
parents: 433
diff changeset
    41
    lastOutcomes := nil.
vrany
parents: 433
diff changeset
    42
    outcomes do:[:outcome|
594
617433e967e9 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 587
diff changeset
    43
	self lastTestRunResultChanged: outcome selector.
435
vrany
parents: 433
diff changeset
    44
    ]
vrany
parents: 433
diff changeset
    45
vrany
parents: 433
diff changeset
    46
    "Created: / 17-11-2011 / 19:17:48 / Jan Vrany <jan.vrany@fit.cvut.cz>"
vrany
parents: 433
diff changeset
    47
!
vrany
parents: 433
diff changeset
    48
139
5a48f282d789 back to 1.42 - last checked in version was bogus
Claus Gittinger <cg@exept.de>
parents: 138
diff changeset
    49
initialize
5a48f282d789 back to 1.42 - last checked in version was bogus
Claus Gittinger <cg@exept.de>
parents: 138
diff changeset
    50
    ResumableTestFailure autoload
138
90efce9992ea *** empty log message ***
boris
parents: 131
diff changeset
    51
139
5a48f282d789 back to 1.42 - last checked in version was bogus
Claus Gittinger <cg@exept.de>
parents: 138
diff changeset
    52
    "
5a48f282d789 back to 1.42 - last checked in version was bogus
Claus Gittinger <cg@exept.de>
parents: 138
diff changeset
    53
     self initialize
5a48f282d789 back to 1.42 - last checked in version was bogus
Claus Gittinger <cg@exept.de>
parents: 138
diff changeset
    54
    "
326
4732cd296e5f added: #postAutoload
Stefan Vogel <sv@exept.de>
parents: 305
diff changeset
    55
!
4732cd296e5f added: #postAutoload
Stefan Vogel <sv@exept.de>
parents: 305
diff changeset
    56
4732cd296e5f added: #postAutoload
Stefan Vogel <sv@exept.de>
parents: 305
diff changeset
    57
postAutoload
433
592799735a04 changed: #postAutoload
sr
parents: 430
diff changeset
    58
    |pd|
592799735a04 changed: #postAutoload
sr
parents: 430
diff changeset
    59
592799735a04 changed: #postAutoload
sr
parents: 430
diff changeset
    60
    (pd := self projectDefinitionClass) notNil ifTrue:[
594
617433e967e9 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 587
diff changeset
    61
	pd loadExtensions
433
592799735a04 changed: #postAutoload
sr
parents: 430
diff changeset
    62
    ]
592799735a04 changed: #postAutoload
sr
parents: 430
diff changeset
    63
592799735a04 changed: #postAutoload
sr
parents: 430
diff changeset
    64
    "Modified: / 02-11-2011 / 15:44:58 / sr"
139
5a48f282d789 back to 1.42 - last checked in version was bogus
Claus Gittinger <cg@exept.de>
parents: 138
diff changeset
    65
! !
138
90efce9992ea *** empty log message ***
boris
parents: 131
diff changeset
    66
139
5a48f282d789 back to 1.42 - last checked in version was bogus
Claus Gittinger <cg@exept.de>
parents: 138
diff changeset
    67
!TestCase class methodsFor:'instance creation'!
2
6f450bf08bc0 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1
diff changeset
    68
288
3a993cee08a0 added: #asTestCase
Claus Gittinger <cg@exept.de>
parents: 282
diff changeset
    69
asTestCase
3a993cee08a0 added: #asTestCase
Claus Gittinger <cg@exept.de>
parents: 282
diff changeset
    70
    ^ self
3a993cee08a0 added: #asTestCase
Claus Gittinger <cg@exept.de>
parents: 282
diff changeset
    71
3a993cee08a0 added: #asTestCase
Claus Gittinger <cg@exept.de>
parents: 282
diff changeset
    72
    "Created: / 02-08-2011 / 09:12:13 / cg"
3a993cee08a0 added: #asTestCase
Claus Gittinger <cg@exept.de>
parents: 282
diff changeset
    73
!
3a993cee08a0 added: #asTestCase
Claus Gittinger <cg@exept.de>
parents: 282
diff changeset
    74
139
5a48f282d789 back to 1.42 - last checked in version was bogus
Claus Gittinger <cg@exept.de>
parents: 138
diff changeset
    75
debug: aSymbol
5a48f282d789 back to 1.42 - last checked in version was bogus
Claus Gittinger <cg@exept.de>
parents: 138
diff changeset
    76
594
617433e967e9 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 587
diff changeset
    77
	^(self selector: aSymbol) debug
138
90efce9992ea *** empty log message ***
boris
parents: 131
diff changeset
    78
!
2
6f450bf08bc0 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1
diff changeset
    79
139
5a48f282d789 back to 1.42 - last checked in version was bogus
Claus Gittinger <cg@exept.de>
parents: 138
diff changeset
    80
run: aSymbol
5a48f282d789 back to 1.42 - last checked in version was bogus
Claus Gittinger <cg@exept.de>
parents: 138
diff changeset
    81
594
617433e967e9 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 587
diff changeset
    82
	^(self selector: aSymbol) run
138
90efce9992ea *** empty log message ***
boris
parents: 131
diff changeset
    83
!
90efce9992ea *** empty log message ***
boris
parents: 131
diff changeset
    84
0
9365d5753f11 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    85
selector: aSymbol
103
ad6897ce99e0 Merge SUnit 3.1 changes
Stefan Vogel <sv@exept.de>
parents: 101
diff changeset
    86
594
617433e967e9 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 587
diff changeset
    87
	^self new setTestSelector: aSymbol
139
5a48f282d789 back to 1.42 - last checked in version was bogus
Claus Gittinger <cg@exept.de>
parents: 138
diff changeset
    88
!
5a48f282d789 back to 1.42 - last checked in version was bogus
Claus Gittinger <cg@exept.de>
parents: 138
diff changeset
    89
5a48f282d789 back to 1.42 - last checked in version was bogus
Claus Gittinger <cg@exept.de>
parents: 138
diff changeset
    90
suite
5a48f282d789 back to 1.42 - last checked in version was bogus
Claus Gittinger <cg@exept.de>
parents: 138
diff changeset
    91
594
617433e967e9 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 587
diff changeset
    92
	^self buildSuite
0
9365d5753f11 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    93
! !
9365d5753f11 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    94
139
5a48f282d789 back to 1.42 - last checked in version was bogus
Claus Gittinger <cg@exept.de>
parents: 138
diff changeset
    95
!TestCase class methodsFor:'accessing'!
66
31ae5b8fc382 category rename
Claus Gittinger <cg@exept.de>
parents: 65
diff changeset
    96
139
5a48f282d789 back to 1.42 - last checked in version was bogus
Claus Gittinger <cg@exept.de>
parents: 138
diff changeset
    97
allTestSelectors
328
66cae160c956 added: #withStandardOutputAndTranscriptRedirectedDo:
Claus Gittinger <cg@exept.de>
parents: 326
diff changeset
    98
    | answer pivotClass lookupRoot |
66cae160c956 added: #withStandardOutputAndTranscriptRedirectedDo:
Claus Gittinger <cg@exept.de>
parents: 326
diff changeset
    99
66cae160c956 added: #withStandardOutputAndTranscriptRedirectedDo:
Claus Gittinger <cg@exept.de>
parents: 326
diff changeset
   100
    answer := Set withAll: self testSelectors.
66cae160c956 added: #withStandardOutputAndTranscriptRedirectedDo:
Claus Gittinger <cg@exept.de>
parents: 326
diff changeset
   101
    self shouldInheritSelectors ifTrue:[
669
5c60313710b3 #BUGFIX by cg
Claus Gittinger <cg@exept.de>
parents: 648
diff changeset
   102
        pivotClass := self superclass.
5c60313710b3 #BUGFIX by cg
Claus Gittinger <cg@exept.de>
parents: 648
diff changeset
   103
        lookupRoot := self lookupHierarchyRoot.
5c60313710b3 #BUGFIX by cg
Claus Gittinger <cg@exept.de>
parents: 648
diff changeset
   104
        [pivotClass == lookupRoot] whileFalse:[
5c60313710b3 #BUGFIX by cg
Claus Gittinger <cg@exept.de>
parents: 648
diff changeset
   105
            answer addAll: pivotClass testSelectors.
5c60313710b3 #BUGFIX by cg
Claus Gittinger <cg@exept.de>
parents: 648
diff changeset
   106
            pivotClass := pivotClass superclass.
5c60313710b3 #BUGFIX by cg
Claus Gittinger <cg@exept.de>
parents: 648
diff changeset
   107
        ]
328
66cae160c956 added: #withStandardOutputAndTranscriptRedirectedDo:
Claus Gittinger <cg@exept.de>
parents: 326
diff changeset
   108
    ].
669
5c60313710b3 #BUGFIX by cg
Claus Gittinger <cg@exept.de>
parents: 648
diff changeset
   109
    answer := answer asOrderedCollection.
5c60313710b3 #BUGFIX by cg
Claus Gittinger <cg@exept.de>
parents: 648
diff changeset
   110
    answer sort.
5c60313710b3 #BUGFIX by cg
Claus Gittinger <cg@exept.de>
parents: 648
diff changeset
   111
    ^ answer 
420
84e640399605 changed: #allTestSelectors
Claus Gittinger <cg@exept.de>
parents: 417
diff changeset
   112
421
9b8b2a70d775 changed: #allTestSelectors
Claus Gittinger <cg@exept.de>
parents: 420
diff changeset
   113
    "Modified: / 21-08-2011 / 15:06:11 / cg"
139
5a48f282d789 back to 1.42 - last checked in version was bogus
Claus Gittinger <cg@exept.de>
parents: 138
diff changeset
   114
!
66
31ae5b8fc382 category rename
Claus Gittinger <cg@exept.de>
parents: 65
diff changeset
   115
139
5a48f282d789 back to 1.42 - last checked in version was bogus
Claus Gittinger <cg@exept.de>
parents: 138
diff changeset
   116
forgetLastTestRunResult
390
c2c3895aabd6 changed: #forgetLastTestRunResult
vrany
parents: 382
diff changeset
   117
c2c3895aabd6 changed: #forgetLastTestRunResult
vrany
parents: 382
diff changeset
   118
    Smalltalk changed:#lastTestRunResult with:(Array with:self with:nil).
c2c3895aabd6 changed: #forgetLastTestRunResult
vrany
parents: 382
diff changeset
   119
    self changed:#lastTestRunResult.
139
5a48f282d789 back to 1.42 - last checked in version was bogus
Claus Gittinger <cg@exept.de>
parents: 138
diff changeset
   120
5a48f282d789 back to 1.42 - last checked in version was bogus
Claus Gittinger <cg@exept.de>
parents: 138
diff changeset
   121
    "Modified: / 06-08-2006 / 11:40:07 / cg"
390
c2c3895aabd6 changed: #forgetLastTestRunResult
vrany
parents: 382
diff changeset
   122
    "Modified: / 20-08-2011 / 15:10:05 / Jan Vrany <jan.vrany@fit.cvut.cz>"
139
5a48f282d789 back to 1.42 - last checked in version was bogus
Claus Gittinger <cg@exept.de>
parents: 138
diff changeset
   123
!
5a48f282d789 back to 1.42 - last checked in version was bogus
Claus Gittinger <cg@exept.de>
parents: 138
diff changeset
   124
5a48f282d789 back to 1.42 - last checked in version was bogus
Claus Gittinger <cg@exept.de>
parents: 138
diff changeset
   125
isTestSelector:aSelector
5a48f282d789 back to 1.42 - last checked in version was bogus
Claus Gittinger <cg@exept.de>
parents: 138
diff changeset
   126
290
7b52b68d57cb changed: #isTestSelector:
Claus Gittinger <cg@exept.de>
parents: 288
diff changeset
   127
    ^aSelector notNil and:[aSelector startsWith:'test']
139
5a48f282d789 back to 1.42 - last checked in version was bogus
Claus Gittinger <cg@exept.de>
parents: 138
diff changeset
   128
5a48f282d789 back to 1.42 - last checked in version was bogus
Claus Gittinger <cg@exept.de>
parents: 138
diff changeset
   129
    "Created: / 06-08-2006 / 11:46:17 / cg"
222
8e6f482297fa Jan's 4.1 version
Claus Gittinger <cg@exept.de>
parents: 221
diff changeset
   130
    "Modified: / 05-12-2009 / 18:50:57 / Jan Vrany <jan.vrany@fit.cvut.cz>"
290
7b52b68d57cb changed: #isTestSelector:
Claus Gittinger <cg@exept.de>
parents: 288
diff changeset
   131
    "Modified: / 02-08-2011 / 17:46:51 / cg"
222
8e6f482297fa Jan's 4.1 version
Claus Gittinger <cg@exept.de>
parents: 221
diff changeset
   132
!
8e6f482297fa Jan's 4.1 version
Claus Gittinger <cg@exept.de>
parents: 221
diff changeset
   133
382
05683696d647 Fixs in remembering test outcomes
vrany
parents: 377
diff changeset
   134
lastTestRunResultOrNil
578
be4d2b6894b9 class: TestCase
Claus Gittinger <cg@exept.de>
parents: 576
diff changeset
   135
    "Returns a state (TestResult stateXXX), depending
be4d2b6894b9 class: TestCase
Claus Gittinger <cg@exept.de>
parents: 576
diff changeset
   136
     on the state of the tests:
594
617433e967e9 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 587
diff changeset
   137
	statePass if all tests passed,
617433e967e9 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 587
diff changeset
   138
	stateError if any error,
617433e967e9 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 587
diff changeset
   139
	stateFail if any fail,
617433e967e9 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 587
diff changeset
   140
     or nil if never run
578
be4d2b6894b9 class: TestCase
Claus Gittinger <cg@exept.de>
parents: 576
diff changeset
   141
    "
222
8e6f482297fa Jan's 4.1 version
Claus Gittinger <cg@exept.de>
parents: 221
diff changeset
   142
578
be4d2b6894b9 class: TestCase
Claus Gittinger <cg@exept.de>
parents: 576
diff changeset
   143
    |anyFail|
be4d2b6894b9 class: TestCase
Claus Gittinger <cg@exept.de>
parents: 576
diff changeset
   144
382
05683696d647 Fixs in remembering test outcomes
vrany
parents: 377
diff changeset
   145
    lastOutcomes isNil ifTrue:[^nil].
05683696d647 Fixs in remembering test outcomes
vrany
parents: 377
diff changeset
   146
    lastOutcomes size ~= self testSelectors size ifTrue:[^nil].
578
be4d2b6894b9 class: TestCase
Claus Gittinger <cg@exept.de>
parents: 576
diff changeset
   147
    anyFail := false.
be4d2b6894b9 class: TestCase
Claus Gittinger <cg@exept.de>
parents: 576
diff changeset
   148
382
05683696d647 Fixs in remembering test outcomes
vrany
parents: 377
diff changeset
   149
    lastOutcomes do:[:outcome|
594
617433e967e9 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 587
diff changeset
   150
	outcome result == (TestResult stateError) ifTrue:[
617433e967e9 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 587
diff changeset
   151
	    ^ TestResult stateError
617433e967e9 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 587
diff changeset
   152
	].
617433e967e9 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 587
diff changeset
   153
	outcome result == (TestResult stateFail) ifTrue:[
617433e967e9 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 587
diff changeset
   154
	    anyFail := true
617433e967e9 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 587
diff changeset
   155
	].
382
05683696d647 Fixs in remembering test outcomes
vrany
parents: 377
diff changeset
   156
    ].
578
be4d2b6894b9 class: TestCase
Claus Gittinger <cg@exept.de>
parents: 576
diff changeset
   157
    anyFail ifTrue:[ ^ TestResult stateFail ].
be4d2b6894b9 class: TestCase
Claus Gittinger <cg@exept.de>
parents: 576
diff changeset
   158
    ^ TestResult statePass
222
8e6f482297fa Jan's 4.1 version
Claus Gittinger <cg@exept.de>
parents: 221
diff changeset
   159
382
05683696d647 Fixs in remembering test outcomes
vrany
parents: 377
diff changeset
   160
    "Modified: / 20-08-2011 / 14:59:26 / Jan Vrany <jan.vrany@fit.cvut.cz>"
139
5a48f282d789 back to 1.42 - last checked in version was bogus
Claus Gittinger <cg@exept.de>
parents: 138
diff changeset
   161
!
87
24e88e7f5d88 remember individual failed cases.
Claus Gittinger <cg@exept.de>
parents: 82
diff changeset
   162
222
8e6f482297fa Jan's 4.1 version
Claus Gittinger <cg@exept.de>
parents: 221
diff changeset
   163
lookupHierarchyRoot
594
617433e967e9 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 587
diff changeset
   164
	^TestCase
222
8e6f482297fa Jan's 4.1 version
Claus Gittinger <cg@exept.de>
parents: 221
diff changeset
   165
!
8e6f482297fa Jan's 4.1 version
Claus Gittinger <cg@exept.de>
parents: 221
diff changeset
   166
523
dbbf2521cc0c class: TestCase
Claus Gittinger <cg@exept.de>
parents: 489
diff changeset
   167
rememberOutcome: thisOutcome
626
4653000fda69 #REFACTORING
Claus Gittinger <cg@exept.de>
parents: 624
diff changeset
   168
    |thisTestCase someOtherOutcome someOtherTestCase    
4653000fda69 #REFACTORING
Claus Gittinger <cg@exept.de>
parents: 624
diff changeset
   169
     thisTestCaseSelector thisTestCaseClassName|
523
dbbf2521cc0c class: TestCase
Claus Gittinger <cg@exept.de>
parents: 489
diff changeset
   170
dbbf2521cc0c class: TestCase
Claus Gittinger <cg@exept.de>
parents: 489
diff changeset
   171
    thisTestCase := thisOutcome testCase.
626
4653000fda69 #REFACTORING
Claus Gittinger <cg@exept.de>
parents: 624
diff changeset
   172
    thisTestCaseSelector := thisTestCase selector.
4653000fda69 #REFACTORING
Claus Gittinger <cg@exept.de>
parents: 624
diff changeset
   173
    thisTestCaseClassName := thisTestCase class name.
4653000fda69 #REFACTORING
Claus Gittinger <cg@exept.de>
parents: 624
diff changeset
   174
    
382
05683696d647 Fixs in remembering test outcomes
vrany
parents: 377
diff changeset
   175
    lastOutcomes isNil ifTrue:[
626
4653000fda69 #REFACTORING
Claus Gittinger <cg@exept.de>
parents: 624
diff changeset
   176
        lastOutcomes := OrderedCollection new.
382
05683696d647 Fixs in remembering test outcomes
vrany
parents: 377
diff changeset
   177
    ].
445
874deaef2599 changed:
Claus Gittinger <cg@exept.de>
parents: 435
diff changeset
   178
523
dbbf2521cc0c class: TestCase
Claus Gittinger <cg@exept.de>
parents: 489
diff changeset
   179
    "Not a nice code, but portable (what: doWithIndex: is not portable?)"
382
05683696d647 Fixs in remembering test outcomes
vrany
parents: 377
diff changeset
   180
    1 to: lastOutcomes size do:[:i|
626
4653000fda69 #REFACTORING
Claus Gittinger <cg@exept.de>
parents: 624
diff changeset
   181
        someOtherOutcome := lastOutcomes at: i.
4653000fda69 #REFACTORING
Claus Gittinger <cg@exept.de>
parents: 624
diff changeset
   182
        someOtherTestCase := someOtherOutcome testCase.
4653000fda69 #REFACTORING
Claus Gittinger <cg@exept.de>
parents: 624
diff changeset
   183
        "/ compare by classes name - in case it got redefined
4653000fda69 #REFACTORING
Claus Gittinger <cg@exept.de>
parents: 624
diff changeset
   184
        (someOtherTestCase selector == thisTestCaseSelector
4653000fda69 #REFACTORING
Claus Gittinger <cg@exept.de>
parents: 624
diff changeset
   185
        and: [someOtherTestCase class name = thisTestCaseClassName]) ifTrue:[
4653000fda69 #REFACTORING
Claus Gittinger <cg@exept.de>
parents: 624
diff changeset
   186
            "remember; for the timestamp and other info"
4653000fda69 #REFACTORING
Claus Gittinger <cg@exept.de>
parents: 624
diff changeset
   187
            lastOutcomes at: i put: thisOutcome.
4653000fda69 #REFACTORING
Claus Gittinger <cg@exept.de>
parents: 624
diff changeset
   188
            someOtherOutcome result ~= thisOutcome result ifTrue:[
4653000fda69 #REFACTORING
Claus Gittinger <cg@exept.de>
parents: 624
diff changeset
   189
                "but only send out change notification to browser if state has changed"
4653000fda69 #REFACTORING
Claus Gittinger <cg@exept.de>
parents: 624
diff changeset
   190
                self lastTestRunResultChanged: thisOutcome selector.
4653000fda69 #REFACTORING
Claus Gittinger <cg@exept.de>
parents: 624
diff changeset
   191
            ].
4653000fda69 #REFACTORING
Claus Gittinger <cg@exept.de>
parents: 624
diff changeset
   192
            ^self.
4653000fda69 #REFACTORING
Claus Gittinger <cg@exept.de>
parents: 624
diff changeset
   193
        ].
222
8e6f482297fa Jan's 4.1 version
Claus Gittinger <cg@exept.de>
parents: 221
diff changeset
   194
    ].
523
dbbf2521cc0c class: TestCase
Claus Gittinger <cg@exept.de>
parents: 489
diff changeset
   195
    lastOutcomes add: thisOutcome.
dbbf2521cc0c class: TestCase
Claus Gittinger <cg@exept.de>
parents: 489
diff changeset
   196
    self lastTestRunResultChanged: thisOutcome selector.
382
05683696d647 Fixs in remembering test outcomes
vrany
parents: 377
diff changeset
   197
    ^self
222
8e6f482297fa Jan's 4.1 version
Claus Gittinger <cg@exept.de>
parents: 221
diff changeset
   198
382
05683696d647 Fixs in remembering test outcomes
vrany
parents: 377
diff changeset
   199
    "Created: / 20-08-2011 / 12:43:12 / Jan Vrany <jan.vrany@fit.cvut.cz>"
445
874deaef2599 changed:
Claus Gittinger <cg@exept.de>
parents: 435
diff changeset
   200
    "Modified: / 04-06-2012 / 16:19:07 / cg"
139
5a48f282d789 back to 1.42 - last checked in version was bogus
Claus Gittinger <cg@exept.de>
parents: 138
diff changeset
   201
!
81
10852410025d *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 73
diff changeset
   202
382
05683696d647 Fixs in remembering test outcomes
vrany
parents: 377
diff changeset
   203
rememberedOutcomeFor: selector
222
8e6f482297fa Jan's 4.1 version
Claus Gittinger <cg@exept.de>
parents: 221
diff changeset
   204
382
05683696d647 Fixs in remembering test outcomes
vrany
parents: 377
diff changeset
   205
    lastOutcomes isNil ifTrue:[^nil].
594
617433e967e9 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 587
diff changeset
   206
    ^lastOutcomes
617433e967e9 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 587
diff changeset
   207
	detect: [:outcome| outcome testCase selector == selector]
617433e967e9 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 587
diff changeset
   208
	ifNone:[nil].
87
24e88e7f5d88 remember individual failed cases.
Claus Gittinger <cg@exept.de>
parents: 82
diff changeset
   209
382
05683696d647 Fixs in remembering test outcomes
vrany
parents: 377
diff changeset
   210
    "Created: / 20-08-2011 / 14:27:09 / Jan Vrany <jan.vrany@fit.cvut.cz>"
139
5a48f282d789 back to 1.42 - last checked in version was bogus
Claus Gittinger <cg@exept.de>
parents: 138
diff changeset
   211
!
5a48f282d789 back to 1.42 - last checked in version was bogus
Claus Gittinger <cg@exept.de>
parents: 138
diff changeset
   212
5a48f282d789 back to 1.42 - last checked in version was bogus
Claus Gittinger <cg@exept.de>
parents: 138
diff changeset
   213
resources
5a48f282d789 back to 1.42 - last checked in version was bogus
Claus Gittinger <cg@exept.de>
parents: 138
diff changeset
   214
594
617433e967e9 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 587
diff changeset
   215
	^#()
222
8e6f482297fa Jan's 4.1 version
Claus Gittinger <cg@exept.de>
parents: 221
diff changeset
   216
!
8e6f482297fa Jan's 4.1 version
Claus Gittinger <cg@exept.de>
parents: 221
diff changeset
   217
8e6f482297fa Jan's 4.1 version
Claus Gittinger <cg@exept.de>
parents: 221
diff changeset
   218
shouldFork
8e6f482297fa Jan's 4.1 version
Claus Gittinger <cg@exept.de>
parents: 221
diff changeset
   219
8e6f482297fa Jan's 4.1 version
Claus Gittinger <cg@exept.de>
parents: 221
diff changeset
   220
    ^false
8e6f482297fa Jan's 4.1 version
Claus Gittinger <cg@exept.de>
parents: 221
diff changeset
   221
8e6f482297fa Jan's 4.1 version
Claus Gittinger <cg@exept.de>
parents: 221
diff changeset
   222
    "Created: / 13-06-2011 / 16:46:09 / Jan Vrany <jan.vrany@fit.cvut.cz>"
103
ad6897ce99e0 Merge SUnit 3.1 changes
Stefan Vogel <sv@exept.de>
parents: 101
diff changeset
   223
!
ad6897ce99e0 Merge SUnit 3.1 changes
Stefan Vogel <sv@exept.de>
parents: 101
diff changeset
   224
139
5a48f282d789 back to 1.42 - last checked in version was bogus
Claus Gittinger <cg@exept.de>
parents: 138
diff changeset
   225
sunitVersion
594
617433e967e9 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 587
diff changeset
   226
	^'4.0'
222
8e6f482297fa Jan's 4.1 version
Claus Gittinger <cg@exept.de>
parents: 221
diff changeset
   227
!
8e6f482297fa Jan's 4.1 version
Claus Gittinger <cg@exept.de>
parents: 221
diff changeset
   228
391
fb104ea5136f added: #testSelector:result:
vrany
parents: 390
diff changeset
   229
testSelector:selector result: result
523
dbbf2521cc0c class: TestCase
Claus Gittinger <cg@exept.de>
parents: 489
diff changeset
   230
    "return true, if the last run of this test had the outcome result"
382
05683696d647 Fixs in remembering test outcomes
vrany
parents: 377
diff changeset
   231
05683696d647 Fixs in remembering test outcomes
vrany
parents: 377
diff changeset
   232
    lastOutcomes isNil ifTrue:[^false].
594
617433e967e9 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 587
diff changeset
   233
    ^ lastOutcomes
607
8d830a63bfc0 class: TestCase
Claus Gittinger <cg@exept.de>
parents: 601
diff changeset
   234
        contains:[:any|
8d830a63bfc0 class: TestCase
Claus Gittinger <cg@exept.de>
parents: 601
diff changeset
   235
            |tc|
8d830a63bfc0 class: TestCase
Claus Gittinger <cg@exept.de>
parents: 601
diff changeset
   236
8d830a63bfc0 class: TestCase
Claus Gittinger <cg@exept.de>
parents: 601
diff changeset
   237
            (tc := any testCase) class name = self name
8d830a63bfc0 class: TestCase
Claus Gittinger <cg@exept.de>
parents: 601
diff changeset
   238
            and:[tc selector == selector
8d830a63bfc0 class: TestCase
Claus Gittinger <cg@exept.de>
parents: 601
diff changeset
   239
            and:[any result == result]]
8d830a63bfc0 class: TestCase
Claus Gittinger <cg@exept.de>
parents: 601
diff changeset
   240
        ]
391
fb104ea5136f added: #testSelector:result:
vrany
parents: 390
diff changeset
   241
fb104ea5136f added: #testSelector:result:
vrany
parents: 390
diff changeset
   242
    "Created: / 20-08-2011 / 16:15:30 / Jan Vrany <jan.vrany@fit.cvut.cz>"
445
874deaef2599 changed:
Claus Gittinger <cg@exept.de>
parents: 435
diff changeset
   243
    "Modified: / 04-06-2012 / 16:12:17 / cg"
391
fb104ea5136f added: #testSelector:result:
vrany
parents: 390
diff changeset
   244
!
fb104ea5136f added: #testSelector:result:
vrany
parents: 390
diff changeset
   245
fb104ea5136f added: #testSelector:result:
vrany
parents: 390
diff changeset
   246
testSelectorError:selector
523
dbbf2521cc0c class: TestCase
Claus Gittinger <cg@exept.de>
parents: 489
diff changeset
   247
    "return true, if the last run of this test failed"
391
fb104ea5136f added: #testSelector:result:
vrany
parents: 390
diff changeset
   248
523
dbbf2521cc0c class: TestCase
Claus Gittinger <cg@exept.de>
parents: 489
diff changeset
   249
    ^self testSelector: selector result: (TestResult stateError)
222
8e6f482297fa Jan's 4.1 version
Claus Gittinger <cg@exept.de>
parents: 221
diff changeset
   250
8e6f482297fa Jan's 4.1 version
Claus Gittinger <cg@exept.de>
parents: 221
diff changeset
   251
    "Created: / 15-03-2010 / 19:44:40 / Jan Vrany <jan.vrany@fit.cvut.cz>"
139
5a48f282d789 back to 1.42 - last checked in version was bogus
Claus Gittinger <cg@exept.de>
parents: 138
diff changeset
   252
!
5a48f282d789 back to 1.42 - last checked in version was bogus
Claus Gittinger <cg@exept.de>
parents: 138
diff changeset
   253
5a48f282d789 back to 1.42 - last checked in version was bogus
Claus Gittinger <cg@exept.de>
parents: 138
diff changeset
   254
testSelectorFailed:selector
523
dbbf2521cc0c class: TestCase
Claus Gittinger <cg@exept.de>
parents: 489
diff changeset
   255
    "return true, if the last run of this test failed"
222
8e6f482297fa Jan's 4.1 version
Claus Gittinger <cg@exept.de>
parents: 221
diff changeset
   256
523
dbbf2521cc0c class: TestCase
Claus Gittinger <cg@exept.de>
parents: 489
diff changeset
   257
    ^self testSelector: selector result: (TestResult stateFail)
382
05683696d647 Fixs in remembering test outcomes
vrany
parents: 377
diff changeset
   258
391
fb104ea5136f added: #testSelector:result:
vrany
parents: 390
diff changeset
   259
    "Modified: / 20-08-2011 / 16:16:09 / Jan Vrany <jan.vrany@fit.cvut.cz>"
139
5a48f282d789 back to 1.42 - last checked in version was bogus
Claus Gittinger <cg@exept.de>
parents: 138
diff changeset
   260
!
5a48f282d789 back to 1.42 - last checked in version was bogus
Claus Gittinger <cg@exept.de>
parents: 138
diff changeset
   261
222
8e6f482297fa Jan's 4.1 version
Claus Gittinger <cg@exept.de>
parents: 221
diff changeset
   262
testSelectorPassed:selector
523
dbbf2521cc0c class: TestCase
Claus Gittinger <cg@exept.de>
parents: 489
diff changeset
   263
    "return true, if the last run of this test passed"
382
05683696d647 Fixs in remembering test outcomes
vrany
parents: 377
diff changeset
   264
523
dbbf2521cc0c class: TestCase
Claus Gittinger <cg@exept.de>
parents: 489
diff changeset
   265
   ^self testSelector: selector result: (TestResult statePass)
dbbf2521cc0c class: TestCase
Claus Gittinger <cg@exept.de>
parents: 489
diff changeset
   266
dbbf2521cc0c class: TestCase
Claus Gittinger <cg@exept.de>
parents: 489
diff changeset
   267
    "Created: / 15-03-2010 / 17:58:40 / Jan Vrany <jan.vrany@fit.cvut.cz>"
dbbf2521cc0c class: TestCase
Claus Gittinger <cg@exept.de>
parents: 489
diff changeset
   268
!
dbbf2521cc0c class: TestCase
Claus Gittinger <cg@exept.de>
parents: 489
diff changeset
   269
dbbf2521cc0c class: TestCase
Claus Gittinger <cg@exept.de>
parents: 489
diff changeset
   270
testSelectorSkipped:selector
dbbf2521cc0c class: TestCase
Claus Gittinger <cg@exept.de>
parents: 489
diff changeset
   271
    "return true, if the last run of this test was skipped"
dbbf2521cc0c class: TestCase
Claus Gittinger <cg@exept.de>
parents: 489
diff changeset
   272
dbbf2521cc0c class: TestCase
Claus Gittinger <cg@exept.de>
parents: 489
diff changeset
   273
   ^self testSelector: selector result: (TestResult stateSkip)
211
3a40b828ce9a comment/format in: #testSelectors
Claus Gittinger <cg@exept.de>
parents: 209
diff changeset
   274
222
8e6f482297fa Jan's 4.1 version
Claus Gittinger <cg@exept.de>
parents: 221
diff changeset
   275
    "Created: / 15-03-2010 / 17:58:40 / Jan Vrany <jan.vrany@fit.cvut.cz>"
607
8d830a63bfc0 class: TestCase
Claus Gittinger <cg@exept.de>
parents: 601
diff changeset
   276
!
8d830a63bfc0 class: TestCase
Claus Gittinger <cg@exept.de>
parents: 601
diff changeset
   277
8d830a63bfc0 class: TestCase
Claus Gittinger <cg@exept.de>
parents: 601
diff changeset
   278
testSelectorsWithLastOutcomes
8d830a63bfc0 class: TestCase
Claus Gittinger <cg@exept.de>
parents: 601
diff changeset
   279
    lastOutcomes isNil ifTrue:[^#()].
8d830a63bfc0 class: TestCase
Claus Gittinger <cg@exept.de>
parents: 601
diff changeset
   280
    ^lastOutcomes collect:[:outcome| outcome testCase selector] as:Set
139
5a48f282d789 back to 1.42 - last checked in version was bogus
Claus Gittinger <cg@exept.de>
parents: 138
diff changeset
   281
! !
5a48f282d789 back to 1.42 - last checked in version was bogus
Claus Gittinger <cg@exept.de>
parents: 138
diff changeset
   282
5a48f282d789 back to 1.42 - last checked in version was bogus
Claus Gittinger <cg@exept.de>
parents: 138
diff changeset
   283
!TestCase class methodsFor:'building suites'!
5a48f282d789 back to 1.42 - last checked in version was bogus
Claus Gittinger <cg@exept.de>
parents: 138
diff changeset
   284
5a48f282d789 back to 1.42 - last checked in version was bogus
Claus Gittinger <cg@exept.de>
parents: 138
diff changeset
   285
buildSuite
594
617433e967e9 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 587
diff changeset
   286
	| suite |
617433e967e9 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 587
diff changeset
   287
	self isAbstract
617433e967e9 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 587
diff changeset
   288
		ifTrue:
617433e967e9 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 587
diff changeset
   289
			[suite := self suiteClass named: self name asString.
617433e967e9 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 587
diff changeset
   290
			self allSubclasses
617433e967e9 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 587
diff changeset
   291
				do: [:each | each isAbstract ifFalse: [suite addTest: each buildSuiteFromSelectors]].
617433e967e9 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 587
diff changeset
   292
			^ suite]
617433e967e9 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 587
diff changeset
   293
		ifFalse: [^ self buildSuiteFromSelectors]
139
5a48f282d789 back to 1.42 - last checked in version was bogus
Claus Gittinger <cg@exept.de>
parents: 138
diff changeset
   294
!
5a48f282d789 back to 1.42 - last checked in version was bogus
Claus Gittinger <cg@exept.de>
parents: 138
diff changeset
   295
5a48f282d789 back to 1.42 - last checked in version was bogus
Claus Gittinger <cg@exept.de>
parents: 138
diff changeset
   296
buildSuiteFromMethods: testMethods
68
9fd111438d60 category renames (lower case)
Claus Gittinger <cg@exept.de>
parents: 67
diff changeset
   297
594
617433e967e9 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 587
diff changeset
   298
	^testMethods
617433e967e9 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 587
diff changeset
   299
		inject: (self suiteClass named: self name asString)
617433e967e9 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 587
diff changeset
   300
		into: [:suite :selector |
617433e967e9 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 587
diff changeset
   301
			suite
617433e967e9 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 587
diff changeset
   302
				addTest: (self selector: selector);
617433e967e9 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 587
diff changeset
   303
				yourself]
139
5a48f282d789 back to 1.42 - last checked in version was bogus
Claus Gittinger <cg@exept.de>
parents: 138
diff changeset
   304
!
138
90efce9992ea *** empty log message ***
boris
parents: 131
diff changeset
   305
139
5a48f282d789 back to 1.42 - last checked in version was bogus
Claus Gittinger <cg@exept.de>
parents: 138
diff changeset
   306
buildSuiteFromSelectors
594
617433e967e9 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 587
diff changeset
   307
	^self buildSuiteFromMethods: self allTestSelectors
68
9fd111438d60 category renames (lower case)
Claus Gittinger <cg@exept.de>
parents: 67
diff changeset
   308
!
9fd111438d60 category renames (lower case)
Claus Gittinger <cg@exept.de>
parents: 67
diff changeset
   309
139
5a48f282d789 back to 1.42 - last checked in version was bogus
Claus Gittinger <cg@exept.de>
parents: 138
diff changeset
   310
suiteClass
594
617433e967e9 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 587
diff changeset
   311
	^TestSuite
68
9fd111438d60 category renames (lower case)
Claus Gittinger <cg@exept.de>
parents: 67
diff changeset
   312
! !
9fd111438d60 category renames (lower case)
Claus Gittinger <cg@exept.de>
parents: 67
diff changeset
   313
203
ca0c9f44ee72 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 200
diff changeset
   314
!TestCase class methodsFor:'misc ui support'!
ca0c9f44ee72 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 200
diff changeset
   315
ca0c9f44ee72 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 200
diff changeset
   316
iconInBrowserSymbol
630
5b0539adf1c1 comment/format in: #iconInBrowserSymbol
Claus Gittinger <cg@exept.de>
parents: 628
diff changeset
   317
    "the browser will use this as index into the toolbariconlibrary"
5b0539adf1c1 comment/format in: #iconInBrowserSymbol
Claus Gittinger <cg@exept.de>
parents: 628
diff changeset
   318
203
ca0c9f44ee72 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 200
diff changeset
   319
    <resource: #programImage>
ca0c9f44ee72 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 200
diff changeset
   320
205
2236d74e0703 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 203
diff changeset
   321
    |lastResult|
2236d74e0703 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 203
diff changeset
   322
203
ca0c9f44ee72 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 200
diff changeset
   323
    self theNonMetaclass isAbstract ifTrue:[^ super iconInBrowserSymbol].
205
2236d74e0703 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 203
diff changeset
   324
2236d74e0703 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 203
diff changeset
   325
    lastResult := self lastTestRunResultOrNil.
578
be4d2b6894b9 class: TestCase
Claus Gittinger <cg@exept.de>
parents: 576
diff changeset
   326
    lastResult notNil ifTrue:[
630
5b0539adf1c1 comment/format in: #iconInBrowserSymbol
Claus Gittinger <cg@exept.de>
parents: 628
diff changeset
   327
        lastResult == TestResult statePass ifTrue:[
5b0539adf1c1 comment/format in: #iconInBrowserSymbol
Claus Gittinger <cg@exept.de>
parents: 628
diff changeset
   328
            ^ #testCasePassedIcon
5b0539adf1c1 comment/format in: #iconInBrowserSymbol
Claus Gittinger <cg@exept.de>
parents: 628
diff changeset
   329
        ].
5b0539adf1c1 comment/format in: #iconInBrowserSymbol
Claus Gittinger <cg@exept.de>
parents: 628
diff changeset
   330
        lastResult == TestResult stateFail ifTrue:[
5b0539adf1c1 comment/format in: #iconInBrowserSymbol
Claus Gittinger <cg@exept.de>
parents: 628
diff changeset
   331
            ^ #testCaseFailedIcon
5b0539adf1c1 comment/format in: #iconInBrowserSymbol
Claus Gittinger <cg@exept.de>
parents: 628
diff changeset
   332
        ].
5b0539adf1c1 comment/format in: #iconInBrowserSymbol
Claus Gittinger <cg@exept.de>
parents: 628
diff changeset
   333
        lastResult == TestResult stateError ifTrue:[
5b0539adf1c1 comment/format in: #iconInBrowserSymbol
Claus Gittinger <cg@exept.de>
parents: 628
diff changeset
   334
            ^ #testCaseErrorIcon
5b0539adf1c1 comment/format in: #iconInBrowserSymbol
Claus Gittinger <cg@exept.de>
parents: 628
diff changeset
   335
        ].
205
2236d74e0703 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 203
diff changeset
   336
    ].
203
ca0c9f44ee72 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 200
diff changeset
   337
    ^ #testCaseClassIcon
ca0c9f44ee72 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 200
diff changeset
   338
! !
ca0c9f44ee72 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 200
diff changeset
   339
222
8e6f482297fa Jan's 4.1 version
Claus Gittinger <cg@exept.de>
parents: 221
diff changeset
   340
!TestCase class methodsFor:'private'!
8e6f482297fa Jan's 4.1 version
Claus Gittinger <cg@exept.de>
parents: 221
diff changeset
   341
8e6f482297fa Jan's 4.1 version
Claus Gittinger <cg@exept.de>
parents: 221
diff changeset
   342
addSelector: selector to: collection
8e6f482297fa Jan's 4.1 version
Claus Gittinger <cg@exept.de>
parents: 221
diff changeset
   343
8e6f482297fa Jan's 4.1 version
Claus Gittinger <cg@exept.de>
parents: 221
diff changeset
   344
    "Adds given selector from collection. Answers
8e6f482297fa Jan's 4.1 version
Claus Gittinger <cg@exept.de>
parents: 221
diff changeset
   345
     true iff selector was really added"
8e6f482297fa Jan's 4.1 version
Claus Gittinger <cg@exept.de>
parents: 221
diff changeset
   346
594
617433e967e9 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 587
diff changeset
   347
    (collection includes: selector)
617433e967e9 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 587
diff changeset
   348
	ifTrue:[^ false]
617433e967e9 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 587
diff changeset
   349
	ifFalse:[collection add: selector. ^ true]
222
8e6f482297fa Jan's 4.1 version
Claus Gittinger <cg@exept.de>
parents: 221
diff changeset
   350
8e6f482297fa Jan's 4.1 version
Claus Gittinger <cg@exept.de>
parents: 221
diff changeset
   351
    "Created: / 15-03-2010 / 18:06:27 / Jan Vrany <jan.vrany@fit.cvut.cz>"
8e6f482297fa Jan's 4.1 version
Claus Gittinger <cg@exept.de>
parents: 221
diff changeset
   352
    "Modified: / 21-04-2010 / 23:19:14 / Jan Vrany <jan.vrany@fit.cvut.cz>"
8e6f482297fa Jan's 4.1 version
Claus Gittinger <cg@exept.de>
parents: 221
diff changeset
   353
!
8e6f482297fa Jan's 4.1 version
Claus Gittinger <cg@exept.de>
parents: 221
diff changeset
   354
689
d8d6e704ac8f #DOCUMENTATION by cg
Claus Gittinger <cg@exept.de>
parents: 688
diff changeset
   355
coveredClasses
d8d6e704ac8f #DOCUMENTATION by cg
Claus Gittinger <cg@exept.de>
parents: 688
diff changeset
   356
    "return a collection of classes which are tested by this suite/case.
d8d6e704ac8f #DOCUMENTATION by cg
Claus Gittinger <cg@exept.de>
parents: 688
diff changeset
   357
     Do not redefine this; redefine either coveredClassNames or
d8d6e704ac8f #DOCUMENTATION by cg
Claus Gittinger <cg@exept.de>
parents: 688
diff changeset
   358
     coveredPackageNames 
d8d6e704ac8f #DOCUMENTATION by cg
Claus Gittinger <cg@exept.de>
parents: 688
diff changeset
   359
     (these return names, to avoid creating
d8d6e704ac8f #DOCUMENTATION by cg
Claus Gittinger <cg@exept.de>
parents: 688
diff changeset
   360
      a package dependecy due to the class references)
d8d6e704ac8f #DOCUMENTATION by cg
Claus Gittinger <cg@exept.de>
parents: 688
diff changeset
   361
d8d6e704ac8f #DOCUMENTATION by cg
Claus Gittinger <cg@exept.de>
parents: 688
diff changeset
   362
     These classes can be instrumented for coverage analysis,
d8d6e704ac8f #DOCUMENTATION by cg
Claus Gittinger <cg@exept.de>
parents: 688
diff changeset
   363
     before running the suite to provide coverage analysis/report"
d8d6e704ac8f #DOCUMENTATION by cg
Claus Gittinger <cg@exept.de>
parents: 688
diff changeset
   364
d8d6e704ac8f #DOCUMENTATION by cg
Claus Gittinger <cg@exept.de>
parents: 688
diff changeset
   365
    |names|
d8d6e704ac8f #DOCUMENTATION by cg
Claus Gittinger <cg@exept.de>
parents: 688
diff changeset
   366
    
d8d6e704ac8f #DOCUMENTATION by cg
Claus Gittinger <cg@exept.de>
parents: 688
diff changeset
   367
    (names := self coveredPackageNames) notEmptyOrNil ifTrue:[
d8d6e704ac8f #DOCUMENTATION by cg
Claus Gittinger <cg@exept.de>
parents: 688
diff changeset
   368
        ^ names 
d8d6e704ac8f #DOCUMENTATION by cg
Claus Gittinger <cg@exept.de>
parents: 688
diff changeset
   369
            collectAll:[:eachPackageOrPattern |
d8d6e704ac8f #DOCUMENTATION by cg
Claus Gittinger <cg@exept.de>
parents: 688
diff changeset
   370
                eachPackageOrPattern includesMatchCharacters ifTrue:[
d8d6e704ac8f #DOCUMENTATION by cg
Claus Gittinger <cg@exept.de>
parents: 688
diff changeset
   371
                    Smalltalk allClassesForWhich:[:cls | (cls package ?'') matches:eachPackageOrPattern].
d8d6e704ac8f #DOCUMENTATION by cg
Claus Gittinger <cg@exept.de>
parents: 688
diff changeset
   372
                ] ifFalse:[    
d8d6e704ac8f #DOCUMENTATION by cg
Claus Gittinger <cg@exept.de>
parents: 688
diff changeset
   373
                    Smalltalk allClassesInPackage:eachPackageOrPattern
d8d6e704ac8f #DOCUMENTATION by cg
Claus Gittinger <cg@exept.de>
parents: 688
diff changeset
   374
                ]
d8d6e704ac8f #DOCUMENTATION by cg
Claus Gittinger <cg@exept.de>
parents: 688
diff changeset
   375
        ].
d8d6e704ac8f #DOCUMENTATION by cg
Claus Gittinger <cg@exept.de>
parents: 688
diff changeset
   376
    ].
d8d6e704ac8f #DOCUMENTATION by cg
Claus Gittinger <cg@exept.de>
parents: 688
diff changeset
   377
    ^ self coveredClassNames collect:[:each | Smalltalk classNamed:each]
d8d6e704ac8f #DOCUMENTATION by cg
Claus Gittinger <cg@exept.de>
parents: 688
diff changeset
   378
d8d6e704ac8f #DOCUMENTATION by cg
Claus Gittinger <cg@exept.de>
parents: 688
diff changeset
   379
    "Modified (comment): / 30-08-2017 / 11:09:22 / cg"
d8d6e704ac8f #DOCUMENTATION by cg
Claus Gittinger <cg@exept.de>
parents: 688
diff changeset
   380
!
d8d6e704ac8f #DOCUMENTATION by cg
Claus Gittinger <cg@exept.de>
parents: 688
diff changeset
   381
222
8e6f482297fa Jan's 4.1 version
Claus Gittinger <cg@exept.de>
parents: 221
diff changeset
   382
lastTestRunResultChanged: selector
8e6f482297fa Jan's 4.1 version
Claus Gittinger <cg@exept.de>
parents: 221
diff changeset
   383
8e6f482297fa Jan's 4.1 version
Claus Gittinger <cg@exept.de>
parents: 221
diff changeset
   384
    Smalltalk changed:#lastTestRunResult with:(Array with:self with:selector).
8e6f482297fa Jan's 4.1 version
Claus Gittinger <cg@exept.de>
parents: 221
diff changeset
   385
    self changed:#lastTestRunResult with:selector.
8e6f482297fa Jan's 4.1 version
Claus Gittinger <cg@exept.de>
parents: 221
diff changeset
   386
8e6f482297fa Jan's 4.1 version
Claus Gittinger <cg@exept.de>
parents: 221
diff changeset
   387
    "Created: / 15-03-2010 / 19:15:15 / Jan Vrany <jan.vrany@fit.cvut.cz>"
8e6f482297fa Jan's 4.1 version
Claus Gittinger <cg@exept.de>
parents: 221
diff changeset
   388
!
8e6f482297fa Jan's 4.1 version
Claus Gittinger <cg@exept.de>
parents: 221
diff changeset
   389
8e6f482297fa Jan's 4.1 version
Claus Gittinger <cg@exept.de>
parents: 221
diff changeset
   390
testSelectors
669
5c60313710b3 #BUGFIX by cg
Claus Gittinger <cg@exept.de>
parents: 648
diff changeset
   391
    "The API method is allTestSelectors which now includes #shouldInheritSelectors and so handles all cases.  Unlike that method, this does not guarantee to return a sorted ordered collection."
222
8e6f482297fa Jan's 4.1 version
Claus Gittinger <cg@exept.de>
parents: 221
diff changeset
   392
669
5c60313710b3 #BUGFIX by cg
Claus Gittinger <cg@exept.de>
parents: 648
diff changeset
   393
    |selectors|
5c60313710b3 #BUGFIX by cg
Claus Gittinger <cg@exept.de>
parents: 648
diff changeset
   394
    
5c60313710b3 #BUGFIX by cg
Claus Gittinger <cg@exept.de>
parents: 648
diff changeset
   395
    selectors := self sunitSelectors 
5c60313710b3 #BUGFIX by cg
Claus Gittinger <cg@exept.de>
parents: 648
diff changeset
   396
                    select: [:each | 'test*' sunitMatch: each].
5c60313710b3 #BUGFIX by cg
Claus Gittinger <cg@exept.de>
parents: 648
diff changeset
   397
    selectors := selectors asOrderedCollection.
5c60313710b3 #BUGFIX by cg
Claus Gittinger <cg@exept.de>
parents: 648
diff changeset
   398
    selectors sort.
5c60313710b3 #BUGFIX by cg
Claus Gittinger <cg@exept.de>
parents: 648
diff changeset
   399
    ^ selectors
222
8e6f482297fa Jan's 4.1 version
Claus Gittinger <cg@exept.de>
parents: 221
diff changeset
   400
! !
8e6f482297fa Jan's 4.1 version
Claus Gittinger <cg@exept.de>
parents: 221
diff changeset
   401
417
Claus Gittinger <cg@exept.de>
parents: 391
diff changeset
   402
!TestCase class methodsFor:'queries'!
Claus Gittinger <cg@exept.de>
parents: 391
diff changeset
   403
Claus Gittinger <cg@exept.de>
parents: 391
diff changeset
   404
coveredClassNames
Claus Gittinger <cg@exept.de>
parents: 391
diff changeset
   405
    "should be redefined to return a collection of classes which are tested by
600
71cb19568d8b class: TestCase
Claus Gittinger <cg@exept.de>
parents: 599
diff changeset
   406
     this suite/case. 
71cb19568d8b class: TestCase
Claus Gittinger <cg@exept.de>
parents: 599
diff changeset
   407
     If not redefined, coveredPackageNames should be.
599
400bc2cb5690 class: TestCase
Claus Gittinger <cg@exept.de>
parents: 594
diff changeset
   408
400bc2cb5690 class: TestCase
Claus Gittinger <cg@exept.de>
parents: 594
diff changeset
   409
     These classes can be instrumented for coverage analysis,
600
71cb19568d8b class: TestCase
Claus Gittinger <cg@exept.de>
parents: 599
diff changeset
   410
     before running the suite to provide coverage analysis/report"
417
Claus Gittinger <cg@exept.de>
parents: 391
diff changeset
   411
Claus Gittinger <cg@exept.de>
parents: 391
diff changeset
   412
    ^ #()
Claus Gittinger <cg@exept.de>
parents: 391
diff changeset
   413
Claus Gittinger <cg@exept.de>
parents: 391
diff changeset
   414
    "Created: / 06-07-2011 / 21:27:03 / cg"
Claus Gittinger <cg@exept.de>
parents: 391
diff changeset
   415
!
Claus Gittinger <cg@exept.de>
parents: 391
diff changeset
   416
599
400bc2cb5690 class: TestCase
Claus Gittinger <cg@exept.de>
parents: 594
diff changeset
   417
coveredPackageNames
400bc2cb5690 class: TestCase
Claus Gittinger <cg@exept.de>
parents: 594
diff changeset
   418
    "redefine this in a concrete testCase class to return non-nil,
400bc2cb5690 class: TestCase
Claus Gittinger <cg@exept.de>
parents: 594
diff changeset
   419
     to return a collection of packages which are tested by this suite/case.
400bc2cb5690 class: TestCase
Claus Gittinger <cg@exept.de>
parents: 594
diff changeset
   420
     If not redefined, coveredClassNames should be redefined.
624
dcc5bcfd1485 #DOCUMENTATION
Claus Gittinger <cg@exept.de>
parents: 623
diff changeset
   421
     The package names may be glob patterns.
599
400bc2cb5690 class: TestCase
Claus Gittinger <cg@exept.de>
parents: 594
diff changeset
   422
     These classes can be instrumented for coverage analysis,
600
71cb19568d8b class: TestCase
Claus Gittinger <cg@exept.de>
parents: 599
diff changeset
   423
     before running the suite to provide coverage analysis/report"
599
400bc2cb5690 class: TestCase
Claus Gittinger <cg@exept.de>
parents: 594
diff changeset
   424
400bc2cb5690 class: TestCase
Claus Gittinger <cg@exept.de>
parents: 594
diff changeset
   425
    ^ nil
636
0687cb5a8fd8 class: RBAbstractClass
Claus Gittinger <cg@exept.de>
parents: 630
diff changeset
   426
!
0687cb5a8fd8 class: RBAbstractClass
Claus Gittinger <cg@exept.de>
parents: 630
diff changeset
   427
0687cb5a8fd8 class: RBAbstractClass
Claus Gittinger <cg@exept.de>
parents: 630
diff changeset
   428
isAbstract
0687cb5a8fd8 class: RBAbstractClass
Claus Gittinger <cg@exept.de>
parents: 630
diff changeset
   429
        "Override to true if a TestCase subclass is Abstract and should not have
0687cb5a8fd8 class: RBAbstractClass
Claus Gittinger <cg@exept.de>
parents: 630
diff changeset
   430
        TestCase instances built from it"
0687cb5a8fd8 class: RBAbstractClass
Claus Gittinger <cg@exept.de>
parents: 630
diff changeset
   431
0687cb5a8fd8 class: RBAbstractClass
Claus Gittinger <cg@exept.de>
parents: 630
diff changeset
   432
        ^self == TestCase
417
Claus Gittinger <cg@exept.de>
parents: 391
diff changeset
   433
! !
Claus Gittinger <cg@exept.de>
parents: 391
diff changeset
   434
197
f44d22a08808 quick tests
Claus Gittinger <cg@exept.de>
parents: 194
diff changeset
   435
!TestCase class methodsFor:'quick testing'!
f44d22a08808 quick tests
Claus Gittinger <cg@exept.de>
parents: 194
diff changeset
   436
686
7e6f03915ad9 #DOCUMENTATION by cg
Claus Gittinger <cg@exept.de>
parents: 685
diff changeset
   437
assert: aBooleanOrBlock
7e6f03915ad9 #DOCUMENTATION by cg
Claus Gittinger <cg@exept.de>
parents: 685
diff changeset
   438
    ^ self new assert: aBooleanOrBlock
197
f44d22a08808 quick tests
Claus Gittinger <cg@exept.de>
parents: 194
diff changeset
   439
f44d22a08808 quick tests
Claus Gittinger <cg@exept.de>
parents: 194
diff changeset
   440
    "
f44d22a08808 quick tests
Claus Gittinger <cg@exept.de>
parents: 194
diff changeset
   441
     TestCase assert: true
f44d22a08808 quick tests
Claus Gittinger <cg@exept.de>
parents: 194
diff changeset
   442
    "
686
7e6f03915ad9 #DOCUMENTATION by cg
Claus Gittinger <cg@exept.de>
parents: 685
diff changeset
   443
7e6f03915ad9 #DOCUMENTATION by cg
Claus Gittinger <cg@exept.de>
parents: 685
diff changeset
   444
    "Modified (format): / 13-07-2017 / 15:13:29 / cg"
197
f44d22a08808 quick tests
Claus Gittinger <cg@exept.de>
parents: 194
diff changeset
   445
!
f44d22a08808 quick tests
Claus Gittinger <cg@exept.de>
parents: 194
diff changeset
   446
f44d22a08808 quick tests
Claus Gittinger <cg@exept.de>
parents: 194
diff changeset
   447
should: aBlock raise: anError
f44d22a08808 quick tests
Claus Gittinger <cg@exept.de>
parents: 194
diff changeset
   448
    ^ self new should: aBlock raise: anError
f44d22a08808 quick tests
Claus Gittinger <cg@exept.de>
parents: 194
diff changeset
   449
f44d22a08808 quick tests
Claus Gittinger <cg@exept.de>
parents: 194
diff changeset
   450
    "
f44d22a08808 quick tests
Claus Gittinger <cg@exept.de>
parents: 194
diff changeset
   451
     TestCase should:[ self error ] raise: Error
587
570faa368e0d class: TestCase
Stefan Vogel <sv@exept.de>
parents: 578
diff changeset
   452
     TestCase should:[ 22 ] raise: Error
197
f44d22a08808 quick tests
Claus Gittinger <cg@exept.de>
parents: 194
diff changeset
   453
    "
f44d22a08808 quick tests
Claus Gittinger <cg@exept.de>
parents: 194
diff changeset
   454
! !
f44d22a08808 quick tests
Claus Gittinger <cg@exept.de>
parents: 194
diff changeset
   455
601
d8c7bcbd1b66 class: TestCase
Claus Gittinger <cg@exept.de>
parents: 600
diff changeset
   456
!TestCase class methodsFor:'running'!
d8c7bcbd1b66 class: TestCase
Claus Gittinger <cg@exept.de>
parents: 600
diff changeset
   457
d8c7bcbd1b66 class: TestCase
Claus Gittinger <cg@exept.de>
parents: 600
diff changeset
   458
run
688
e2428b24d753 #DOCUMENTATION by cg
Claus Gittinger <cg@exept.de>
parents: 686
diff changeset
   459
    "run myself as a suite; return the result"
e2428b24d753 #DOCUMENTATION by cg
Claus Gittinger <cg@exept.de>
parents: 686
diff changeset
   460
e2428b24d753 #DOCUMENTATION by cg
Claus Gittinger <cg@exept.de>
parents: 686
diff changeset
   461
    ^ self suite run
601
d8c7bcbd1b66 class: TestCase
Claus Gittinger <cg@exept.de>
parents: 600
diff changeset
   462
d8c7bcbd1b66 class: TestCase
Claus Gittinger <cg@exept.de>
parents: 600
diff changeset
   463
    "
d8c7bcbd1b66 class: TestCase
Claus Gittinger <cg@exept.de>
parents: 600
diff changeset
   464
     SOAP::XeXMLTests run
688
e2428b24d753 #DOCUMENTATION by cg
Claus Gittinger <cg@exept.de>
parents: 686
diff changeset
   465
     RegressionTests::OperatingSystemTest run
601
d8c7bcbd1b66 class: TestCase
Claus Gittinger <cg@exept.de>
parents: 600
diff changeset
   466
    "
d8c7bcbd1b66 class: TestCase
Claus Gittinger <cg@exept.de>
parents: 600
diff changeset
   467
! !
d8c7bcbd1b66 class: TestCase
Claus Gittinger <cg@exept.de>
parents: 600
diff changeset
   468
139
5a48f282d789 back to 1.42 - last checked in version was bogus
Claus Gittinger <cg@exept.de>
parents: 138
diff changeset
   469
!TestCase class methodsFor:'testing'!
103
ad6897ce99e0 Merge SUnit 3.1 changes
Stefan Vogel <sv@exept.de>
parents: 101
diff changeset
   470
222
8e6f482297fa Jan's 4.1 version
Claus Gittinger <cg@exept.de>
parents: 221
diff changeset
   471
isTestCaseLike
8e6f482297fa Jan's 4.1 version
Claus Gittinger <cg@exept.de>
parents: 221
diff changeset
   472
8e6f482297fa Jan's 4.1 version
Claus Gittinger <cg@exept.de>
parents: 221
diff changeset
   473
    ^true
8e6f482297fa Jan's 4.1 version
Claus Gittinger <cg@exept.de>
parents: 221
diff changeset
   474
8e6f482297fa Jan's 4.1 version
Claus Gittinger <cg@exept.de>
parents: 221
diff changeset
   475
    "Created: / 06-03-2011 / 00:16:06 / Jan Vrany <jan.vrany@fit.cvut.cz>"
139
5a48f282d789 back to 1.42 - last checked in version was bogus
Claus Gittinger <cg@exept.de>
parents: 138
diff changeset
   476
!
103
ad6897ce99e0 Merge SUnit 3.1 changes
Stefan Vogel <sv@exept.de>
parents: 101
diff changeset
   477
139
5a48f282d789 back to 1.42 - last checked in version was bogus
Claus Gittinger <cg@exept.de>
parents: 138
diff changeset
   478
rememberResult:result
382
05683696d647 Fixs in remembering test outcomes
vrany
parents: 377
diff changeset
   479
05683696d647 Fixs in remembering test outcomes
vrany
parents: 377
diff changeset
   480
    result outcomesDo:[:outcome|self rememberOutcome: outcome].
139
5a48f282d789 back to 1.42 - last checked in version was bogus
Claus Gittinger <cg@exept.de>
parents: 138
diff changeset
   481
5a48f282d789 back to 1.42 - last checked in version was bogus
Claus Gittinger <cg@exept.de>
parents: 138
diff changeset
   482
    "Created: / 05-08-2006 / 12:33:08 / cg"
382
05683696d647 Fixs in remembering test outcomes
vrany
parents: 377
diff changeset
   483
    "Modified: / 20-08-2011 / 14:02:58 / Jan Vrany <jan.vrany@fit.cvut.cz>"
139
5a48f282d789 back to 1.42 - last checked in version was bogus
Claus Gittinger <cg@exept.de>
parents: 138
diff changeset
   484
!
5a48f282d789 back to 1.42 - last checked in version was bogus
Claus Gittinger <cg@exept.de>
parents: 138
diff changeset
   485
5a48f282d789 back to 1.42 - last checked in version was bogus
Claus Gittinger <cg@exept.de>
parents: 138
diff changeset
   486
runTests
5a48f282d789 back to 1.42 - last checked in version was bogus
Claus Gittinger <cg@exept.de>
parents: 138
diff changeset
   487
391
fb104ea5136f added: #testSelector:result:
vrany
parents: 390
diff changeset
   488
    ^self suite run
139
5a48f282d789 back to 1.42 - last checked in version was bogus
Claus Gittinger <cg@exept.de>
parents: 138
diff changeset
   489
265
125e4f132d46 remember execution time (needed to generate prober reports)
Claus Gittinger <cg@exept.de>
parents: 262
diff changeset
   490
    "Modified: / 30-07-2011 / 09:26:11 / cg"
391
fb104ea5136f added: #testSelector:result:
vrany
parents: 390
diff changeset
   491
    "Modified: / 20-08-2011 / 16:14:22 / Jan Vrany <jan.vrany@fit.cvut.cz>"
139
5a48f282d789 back to 1.42 - last checked in version was bogus
Claus Gittinger <cg@exept.de>
parents: 138
diff changeset
   492
!
5a48f282d789 back to 1.42 - last checked in version was bogus
Claus Gittinger <cg@exept.de>
parents: 138
diff changeset
   493
5a48f282d789 back to 1.42 - last checked in version was bogus
Claus Gittinger <cg@exept.de>
parents: 138
diff changeset
   494
shouldInheritSelectors
594
617433e967e9 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 587
diff changeset
   495
	"I should inherit from an Abstract superclass but not from a concrete one by default, unless I have no testSelectors in which case I must be expecting to inherit them from my superclass.  If a test case with selectors wants to inherit selectors from a concrete superclass, override this to true in that subclass."
139
5a48f282d789 back to 1.42 - last checked in version was bogus
Claus Gittinger <cg@exept.de>
parents: 138
diff changeset
   496
594
617433e967e9 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 587
diff changeset
   497
	^self ~~ self lookupHierarchyRoot
617433e967e9 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 587
diff changeset
   498
		and: [self superclass isAbstract
617433e967e9 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 587
diff changeset
   499
			or: [self testSelectors isEmpty]]
139
5a48f282d789 back to 1.42 - last checked in version was bogus
Claus Gittinger <cg@exept.de>
parents: 138
diff changeset
   500
! !
5a48f282d789 back to 1.42 - last checked in version was bogus
Claus Gittinger <cg@exept.de>
parents: 138
diff changeset
   501
5a48f282d789 back to 1.42 - last checked in version was bogus
Claus Gittinger <cg@exept.de>
parents: 138
diff changeset
   502
!TestCase methodsFor:'accessing'!
5a48f282d789 back to 1.42 - last checked in version was bogus
Claus Gittinger <cg@exept.de>
parents: 138
diff changeset
   503
5a48f282d789 back to 1.42 - last checked in version was bogus
Claus Gittinger <cg@exept.de>
parents: 138
diff changeset
   504
resources
594
617433e967e9 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 587
diff changeset
   505
	"We give TestCase this instance-side method so that methods polymorphic with TestSuite can be code-identical.  Having this instance-side method also helps when writing tests of resource behaviour. Except for such tests, it is rare to override this method and should not be done without thought.  If there were a good reason why a single test case needed to share tests requiring different resources, it might be legitimate."
222
8e6f482297fa Jan's 4.1 version
Claus Gittinger <cg@exept.de>
parents: 221
diff changeset
   506
594
617433e967e9 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 587
diff changeset
   507
	^self class resources
139
5a48f282d789 back to 1.42 - last checked in version was bogus
Claus Gittinger <cg@exept.de>
parents: 138
diff changeset
   508
!
5a48f282d789 back to 1.42 - last checked in version was bogus
Claus Gittinger <cg@exept.de>
parents: 138
diff changeset
   509
5a48f282d789 back to 1.42 - last checked in version was bogus
Claus Gittinger <cg@exept.de>
parents: 138
diff changeset
   510
selector
594
617433e967e9 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 587
diff changeset
   511
	^testSelector
222
8e6f482297fa Jan's 4.1 version
Claus Gittinger <cg@exept.de>
parents: 221
diff changeset
   512
!
8e6f482297fa Jan's 4.1 version
Claus Gittinger <cg@exept.de>
parents: 221
diff changeset
   513
8e6f482297fa Jan's 4.1 version
Claus Gittinger <cg@exept.de>
parents: 221
diff changeset
   514
shouldFork
8e6f482297fa Jan's 4.1 version
Claus Gittinger <cg@exept.de>
parents: 221
diff changeset
   515
8e6f482297fa Jan's 4.1 version
Claus Gittinger <cg@exept.de>
parents: 221
diff changeset
   516
    ^self class shouldFork
8e6f482297fa Jan's 4.1 version
Claus Gittinger <cg@exept.de>
parents: 221
diff changeset
   517
8e6f482297fa Jan's 4.1 version
Claus Gittinger <cg@exept.de>
parents: 221
diff changeset
   518
    "Created: / 13-06-2011 / 16:45:43 / Jan Vrany <jan.vrany@fit.cvut.cz>"
305
f532271f8daa added testCount to TestCase & TestSuite
vrany
parents: 296
diff changeset
   519
!
f532271f8daa added testCount to TestCase & TestSuite
vrany
parents: 296
diff changeset
   520
529
6bcbe6998b73 added: #shouldSkip
vrany
parents: 524
diff changeset
   521
shouldSkip
6bcbe6998b73 added: #shouldSkip
vrany
parents: 524
diff changeset
   522
    "Returns true, if this testcase should be skipped when a testsuite is run.
648
6d39f37eb1cd #DOCUMENTATION by cg
Claus Gittinger <cg@exept.de>
parents: 636
diff changeset
   523
     This only a hint, a test runner is not obliged to respect return value.
6d39f37eb1cd #DOCUMENTATION by cg
Claus Gittinger <cg@exept.de>
parents: 636
diff changeset
   524
     To skip a test, mark the method with a <skip> annotation
529
6bcbe6998b73 added: #shouldSkip
vrany
parents: 524
diff changeset
   525
     Currently, the only user is stx/goodies/builder/reports"
6bcbe6998b73 added: #shouldSkip
vrany
parents: 524
diff changeset
   526
6bcbe6998b73 added: #shouldSkip
vrany
parents: 524
diff changeset
   527
    | method |
648
6d39f37eb1cd #DOCUMENTATION by cg
Claus Gittinger <cg@exept.de>
parents: 636
diff changeset
   528
    
529
6bcbe6998b73 added: #shouldSkip
vrany
parents: 524
diff changeset
   529
    method := self class lookupMethodFor: testSelector.
6bcbe6998b73 added: #shouldSkip
vrany
parents: 524
diff changeset
   530
    method annotationsAt:#ignore orAt: #skip do:[:annotation|
648
6d39f37eb1cd #DOCUMENTATION by cg
Claus Gittinger <cg@exept.de>
parents: 636
diff changeset
   531
         ^true
529
6bcbe6998b73 added: #shouldSkip
vrany
parents: 524
diff changeset
   532
    ].
6bcbe6998b73 added: #shouldSkip
vrany
parents: 524
diff changeset
   533
    ^false
6bcbe6998b73 added: #shouldSkip
vrany
parents: 524
diff changeset
   534
6bcbe6998b73 added: #shouldSkip
vrany
parents: 524
diff changeset
   535
    "Created: / 28-11-2012 / 18:03:29 / Jan Vrany <jan.vrany@fit.cvut.cz>"
6bcbe6998b73 added: #shouldSkip
vrany
parents: 524
diff changeset
   536
!
6bcbe6998b73 added: #shouldSkip
vrany
parents: 524
diff changeset
   537
305
f532271f8daa added testCount to TestCase & TestSuite
vrany
parents: 296
diff changeset
   538
testCount
f532271f8daa added testCount to TestCase & TestSuite
vrany
parents: 296
diff changeset
   539
f532271f8daa added testCount to TestCase & TestSuite
vrany
parents: 296
diff changeset
   540
    ^1
f532271f8daa added testCount to TestCase & TestSuite
vrany
parents: 296
diff changeset
   541
f532271f8daa added testCount to TestCase & TestSuite
vrany
parents: 296
diff changeset
   542
    "Created: / 04-08-2011 / 13:03:25 / Jan Vrany <jan.vrany@fit.cvut.cz>"
139
5a48f282d789 back to 1.42 - last checked in version was bogus
Claus Gittinger <cg@exept.de>
parents: 138
diff changeset
   543
! !
5a48f282d789 back to 1.42 - last checked in version was bogus
Claus Gittinger <cg@exept.de>
parents: 138
diff changeset
   544
5a48f282d789 back to 1.42 - last checked in version was bogus
Claus Gittinger <cg@exept.de>
parents: 138
diff changeset
   545
!TestCase methodsFor:'accessing & queries'!
5a48f282d789 back to 1.42 - last checked in version was bogus
Claus Gittinger <cg@exept.de>
parents: 138
diff changeset
   546
5a48f282d789 back to 1.42 - last checked in version was bogus
Claus Gittinger <cg@exept.de>
parents: 138
diff changeset
   547
unfinished
5a48f282d789 back to 1.42 - last checked in version was bogus
Claus Gittinger <cg@exept.de>
parents: 138
diff changeset
   548
594
617433e967e9 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 587
diff changeset
   549
	"indicates an unfinished test"
139
5a48f282d789 back to 1.42 - last checked in version was bogus
Claus Gittinger <cg@exept.de>
parents: 138
diff changeset
   550
! !
97
1f7ff8664715 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 95
diff changeset
   551
1f7ff8664715 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 95
diff changeset
   552
!TestCase methodsFor:'assertions'!
66
31ae5b8fc382 category rename
Claus Gittinger <cg@exept.de>
parents: 65
diff changeset
   553
139
5a48f282d789 back to 1.42 - last checked in version was bogus
Claus Gittinger <cg@exept.de>
parents: 138
diff changeset
   554
assert:aBlock completesInSeconds:aNumber
5a48f282d789 back to 1.42 - last checked in version was bogus
Claus Gittinger <cg@exept.de>
parents: 138
diff changeset
   555
    "fail, if aBlock does not finish its work in aNumber seconds"
5a48f282d789 back to 1.42 - last checked in version was bogus
Claus Gittinger <cg@exept.de>
parents: 138
diff changeset
   556
179
caba0f640d13 context skipping in debugger generalized
Claus Gittinger <cg@exept.de>
parents: 174
diff changeset
   557
    <resource: #skipInDebuggersWalkBack>
caba0f640d13 context skipping in debugger generalized
Claus Gittinger <cg@exept.de>
parents: 174
diff changeset
   558
139
5a48f282d789 back to 1.42 - last checked in version was bogus
Claus Gittinger <cg@exept.de>
parents: 138
diff changeset
   559
    |done process semaphore|
5a48f282d789 back to 1.42 - last checked in version was bogus
Claus Gittinger <cg@exept.de>
parents: 138
diff changeset
   560
5a48f282d789 back to 1.42 - last checked in version was bogus
Claus Gittinger <cg@exept.de>
parents: 138
diff changeset
   561
    done := false.
5a48f282d789 back to 1.42 - last checked in version was bogus
Claus Gittinger <cg@exept.de>
parents: 138
diff changeset
   562
    semaphore := Semaphore new.
174
3fff3dede568 #assert:completedInSeconds:
Stefan Vogel <sv@exept.de>
parents: 139
diff changeset
   563
    process := [
594
617433e967e9 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 587
diff changeset
   564
	aBlock value.
617433e967e9 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 587
diff changeset
   565
	done := true.
617433e967e9 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 587
diff changeset
   566
	semaphore signal
139
5a48f282d789 back to 1.42 - last checked in version was bogus
Claus Gittinger <cg@exept.de>
parents: 138
diff changeset
   567
    ] fork.
5a48f282d789 back to 1.42 - last checked in version was bogus
Claus Gittinger <cg@exept.de>
parents: 138
diff changeset
   568
    semaphore waitWithTimeout: aNumber.
5a48f282d789 back to 1.42 - last checked in version was bogus
Claus Gittinger <cg@exept.de>
parents: 138
diff changeset
   569
    process terminate.
222
8e6f482297fa Jan's 4.1 version
Claus Gittinger <cg@exept.de>
parents: 221
diff changeset
   570
    self assert: done
139
5a48f282d789 back to 1.42 - last checked in version was bogus
Claus Gittinger <cg@exept.de>
parents: 138
diff changeset
   571
5a48f282d789 back to 1.42 - last checked in version was bogus
Claus Gittinger <cg@exept.de>
parents: 138
diff changeset
   572
    "
5a48f282d789 back to 1.42 - last checked in version was bogus
Claus Gittinger <cg@exept.de>
parents: 138
diff changeset
   573
     self new assert:[Delay waitForSeconds:2] completesInSeconds:1
5a48f282d789 back to 1.42 - last checked in version was bogus
Claus Gittinger <cg@exept.de>
parents: 138
diff changeset
   574
    "
5a48f282d789 back to 1.42 - last checked in version was bogus
Claus Gittinger <cg@exept.de>
parents: 138
diff changeset
   575
    "
5a48f282d789 back to 1.42 - last checked in version was bogus
Claus Gittinger <cg@exept.de>
parents: 138
diff changeset
   576
     self new assert:[Delay waitForSeconds:1] completesInSeconds:2
5a48f282d789 back to 1.42 - last checked in version was bogus
Claus Gittinger <cg@exept.de>
parents: 138
diff changeset
   577
    "
5a48f282d789 back to 1.42 - last checked in version was bogus
Claus Gittinger <cg@exept.de>
parents: 138
diff changeset
   578
!
5a48f282d789 back to 1.42 - last checked in version was bogus
Claus Gittinger <cg@exept.de>
parents: 138
diff changeset
   579
222
8e6f482297fa Jan's 4.1 version
Claus Gittinger <cg@exept.de>
parents: 221
diff changeset
   580
assert: aBoolean message:messageIfFailing
531
13776d5be378 class: TestCase
vrany
parents: 529
diff changeset
   581
     <resource: #skipInDebuggersWalkBack>
139
5a48f282d789 back to 1.42 - last checked in version was bogus
Claus Gittinger <cg@exept.de>
parents: 138
diff changeset
   582
222
8e6f482297fa Jan's 4.1 version
Claus Gittinger <cg@exept.de>
parents: 221
diff changeset
   583
    ^self assert: aBoolean description: messageIfFailing
139
5a48f282d789 back to 1.42 - last checked in version was bogus
Claus Gittinger <cg@exept.de>
parents: 138
diff changeset
   584
531
13776d5be378 class: TestCase
vrany
parents: 529
diff changeset
   585
    "Modified: / 15-12-2012 / 17:20:31 / Jan Vrany <jan.vrany@fit.cvut.cz>"
139
5a48f282d789 back to 1.42 - last checked in version was bogus
Claus Gittinger <cg@exept.de>
parents: 138
diff changeset
   586
!
5a48f282d789 back to 1.42 - last checked in version was bogus
Claus Gittinger <cg@exept.de>
parents: 138
diff changeset
   587
5a48f282d789 back to 1.42 - last checked in version was bogus
Claus Gittinger <cg@exept.de>
parents: 138
diff changeset
   588
assertFalse:aBoolean
179
caba0f640d13 context skipping in debugger generalized
Claus Gittinger <cg@exept.de>
parents: 174
diff changeset
   589
    <resource: #skipInDebuggersWalkBack>
caba0f640d13 context skipping in debugger generalized
Claus Gittinger <cg@exept.de>
parents: 174
diff changeset
   590
139
5a48f282d789 back to 1.42 - last checked in version was bogus
Claus Gittinger <cg@exept.de>
parents: 138
diff changeset
   591
    ^ self assert:aBoolean not
5a48f282d789 back to 1.42 - last checked in version was bogus
Claus Gittinger <cg@exept.de>
parents: 138
diff changeset
   592
!
5a48f282d789 back to 1.42 - last checked in version was bogus
Claus Gittinger <cg@exept.de>
parents: 138
diff changeset
   593
5a48f282d789 back to 1.42 - last checked in version was bogus
Claus Gittinger <cg@exept.de>
parents: 138
diff changeset
   594
assertFalse:aBoolean named:testName
179
caba0f640d13 context skipping in debugger generalized
Claus Gittinger <cg@exept.de>
parents: 174
diff changeset
   595
    <resource: #skipInDebuggersWalkBack>
caba0f640d13 context skipping in debugger generalized
Claus Gittinger <cg@exept.de>
parents: 174
diff changeset
   596
139
5a48f282d789 back to 1.42 - last checked in version was bogus
Claus Gittinger <cg@exept.de>
parents: 138
diff changeset
   597
    ^ self assert:aBoolean not
5a48f282d789 back to 1.42 - last checked in version was bogus
Claus Gittinger <cg@exept.de>
parents: 138
diff changeset
   598
!
5a48f282d789 back to 1.42 - last checked in version was bogus
Claus Gittinger <cg@exept.de>
parents: 138
diff changeset
   599
222
8e6f482297fa Jan's 4.1 version
Claus Gittinger <cg@exept.de>
parents: 221
diff changeset
   600
assertTrue:aBoolean
179
caba0f640d13 context skipping in debugger generalized
Claus Gittinger <cg@exept.de>
parents: 174
diff changeset
   601
    <resource: #skipInDebuggersWalkBack>
caba0f640d13 context skipping in debugger generalized
Claus Gittinger <cg@exept.de>
parents: 174
diff changeset
   602
139
5a48f282d789 back to 1.42 - last checked in version was bogus
Claus Gittinger <cg@exept.de>
parents: 138
diff changeset
   603
    ^ self assert:aBoolean
5a48f282d789 back to 1.42 - last checked in version was bogus
Claus Gittinger <cg@exept.de>
parents: 138
diff changeset
   604
!
5a48f282d789 back to 1.42 - last checked in version was bogus
Claus Gittinger <cg@exept.de>
parents: 138
diff changeset
   605
5a48f282d789 back to 1.42 - last checked in version was bogus
Claus Gittinger <cg@exept.de>
parents: 138
diff changeset
   606
assertTrue:aBoolean named:testName
179
caba0f640d13 context skipping in debugger generalized
Claus Gittinger <cg@exept.de>
parents: 174
diff changeset
   607
    <resource: #skipInDebuggersWalkBack>
caba0f640d13 context skipping in debugger generalized
Claus Gittinger <cg@exept.de>
parents: 174
diff changeset
   608
139
5a48f282d789 back to 1.42 - last checked in version was bogus
Claus Gittinger <cg@exept.de>
parents: 138
diff changeset
   609
    ^ self assert:aBoolean
66
31ae5b8fc382 category rename
Claus Gittinger <cg@exept.de>
parents: 65
diff changeset
   610
! !
31ae5b8fc382 category rename
Claus Gittinger <cg@exept.de>
parents: 65
diff changeset
   611
139
5a48f282d789 back to 1.42 - last checked in version was bogus
Claus Gittinger <cg@exept.de>
parents: 138
diff changeset
   612
!TestCase methodsFor:'dependencies'!
5a48f282d789 back to 1.42 - last checked in version was bogus
Claus Gittinger <cg@exept.de>
parents: 138
diff changeset
   613
222
8e6f482297fa Jan's 4.1 version
Claus Gittinger <cg@exept.de>
parents: 221
diff changeset
   614
addDependentToHierachy: anObject
594
617433e967e9 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 587
diff changeset
   615
	"an empty method. for Composite compability with TestSuite"
222
8e6f482297fa Jan's 4.1 version
Claus Gittinger <cg@exept.de>
parents: 221
diff changeset
   616
!
139
5a48f282d789 back to 1.42 - last checked in version was bogus
Claus Gittinger <cg@exept.de>
parents: 138
diff changeset
   617
222
8e6f482297fa Jan's 4.1 version
Claus Gittinger <cg@exept.de>
parents: 221
diff changeset
   618
removeDependentFromHierachy: anObject
594
617433e967e9 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 587
diff changeset
   619
	"an empty method. for Composite compability with TestSuite"
222
8e6f482297fa Jan's 4.1 version
Claus Gittinger <cg@exept.de>
parents: 221
diff changeset
   620
! !
139
5a48f282d789 back to 1.42 - last checked in version was bogus
Claus Gittinger <cg@exept.de>
parents: 138
diff changeset
   621
222
8e6f482297fa Jan's 4.1 version
Claus Gittinger <cg@exept.de>
parents: 221
diff changeset
   622
!TestCase methodsFor:'deprecated'!
8e6f482297fa Jan's 4.1 version
Claus Gittinger <cg@exept.de>
parents: 221
diff changeset
   623
8e6f482297fa Jan's 4.1 version
Claus Gittinger <cg@exept.de>
parents: 221
diff changeset
   624
should: aBlock
594
617433e967e9 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 587
diff changeset
   625
	self assert: aBlock value
139
5a48f282d789 back to 1.42 - last checked in version was bogus
Claus Gittinger <cg@exept.de>
parents: 138
diff changeset
   626
!
5a48f282d789 back to 1.42 - last checked in version was bogus
Claus Gittinger <cg@exept.de>
parents: 138
diff changeset
   627
222
8e6f482297fa Jan's 4.1 version
Claus Gittinger <cg@exept.de>
parents: 221
diff changeset
   628
should: aBlock description: aString
594
617433e967e9 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 587
diff changeset
   629
	self assert: aBlock value description: aString
222
8e6f482297fa Jan's 4.1 version
Claus Gittinger <cg@exept.de>
parents: 221
diff changeset
   630
!
139
5a48f282d789 back to 1.42 - last checked in version was bogus
Claus Gittinger <cg@exept.de>
parents: 138
diff changeset
   631
222
8e6f482297fa Jan's 4.1 version
Claus Gittinger <cg@exept.de>
parents: 221
diff changeset
   632
shouldnt: aBlock
594
617433e967e9 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 587
diff changeset
   633
	self deny: aBlock value
222
8e6f482297fa Jan's 4.1 version
Claus Gittinger <cg@exept.de>
parents: 221
diff changeset
   634
!
139
5a48f282d789 back to 1.42 - last checked in version was bogus
Claus Gittinger <cg@exept.de>
parents: 138
diff changeset
   635
222
8e6f482297fa Jan's 4.1 version
Claus Gittinger <cg@exept.de>
parents: 221
diff changeset
   636
shouldnt: aBlock description: aString
594
617433e967e9 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 587
diff changeset
   637
	self deny: aBlock value description: aString
222
8e6f482297fa Jan's 4.1 version
Claus Gittinger <cg@exept.de>
parents: 221
diff changeset
   638
!
8e6f482297fa Jan's 4.1 version
Claus Gittinger <cg@exept.de>
parents: 221
diff changeset
   639
8e6f482297fa Jan's 4.1 version
Claus Gittinger <cg@exept.de>
parents: 221
diff changeset
   640
signalFailure: aString
594
617433e967e9 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 587
diff changeset
   641
	TestResult failure sunitSignalWith: aString.
139
5a48f282d789 back to 1.42 - last checked in version was bogus
Claus Gittinger <cg@exept.de>
parents: 138
diff changeset
   642
! !
67
7861684195ec category rename
Claus Gittinger <cg@exept.de>
parents: 66
diff changeset
   643
7861684195ec category rename
Claus Gittinger <cg@exept.de>
parents: 66
diff changeset
   644
!TestCase methodsFor:'printing'!
7861684195ec category rename
Claus Gittinger <cg@exept.de>
parents: 66
diff changeset
   645
222
8e6f482297fa Jan's 4.1 version
Claus Gittinger <cg@exept.de>
parents: 221
diff changeset
   646
getTestName
8e6f482297fa Jan's 4.1 version
Claus Gittinger <cg@exept.de>
parents: 221
diff changeset
   647
8e6f482297fa Jan's 4.1 version
Claus Gittinger <cg@exept.de>
parents: 221
diff changeset
   648
    ^testSelector.
8e6f482297fa Jan's 4.1 version
Claus Gittinger <cg@exept.de>
parents: 221
diff changeset
   649
8e6f482297fa Jan's 4.1 version
Claus Gittinger <cg@exept.de>
parents: 221
diff changeset
   650
    "Modified: / 05-12-2009 / 17:47:09 / Jan Vrany <jan.vrany@fit.cvut.cz>"
8e6f482297fa Jan's 4.1 version
Claus Gittinger <cg@exept.de>
parents: 221
diff changeset
   651
!
8e6f482297fa Jan's 4.1 version
Claus Gittinger <cg@exept.de>
parents: 221
diff changeset
   652
139
5a48f282d789 back to 1.42 - last checked in version was bogus
Claus Gittinger <cg@exept.de>
parents: 138
diff changeset
   653
name
594
617433e967e9 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 587
diff changeset
   654
	^ self class name.
139
5a48f282d789 back to 1.42 - last checked in version was bogus
Claus Gittinger <cg@exept.de>
parents: 138
diff changeset
   655
!
5a48f282d789 back to 1.42 - last checked in version was bogus
Claus Gittinger <cg@exept.de>
parents: 138
diff changeset
   656
67
7861684195ec category rename
Claus Gittinger <cg@exept.de>
parents: 66
diff changeset
   657
printOn: aStream
594
617433e967e9 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 587
diff changeset
   658
	self class printOn:aStream.
617433e967e9 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 587
diff changeset
   659
	aStream nextPutAll: '>>#'.
617433e967e9 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 587
diff changeset
   660
	testSelector printOn:aStream.
67
7861684195ec category rename
Claus Gittinger <cg@exept.de>
parents: 66
diff changeset
   661
! !
7861684195ec category rename
Claus Gittinger <cg@exept.de>
parents: 66
diff changeset
   662
7861684195ec category rename
Claus Gittinger <cg@exept.de>
parents: 66
diff changeset
   663
!TestCase methodsFor:'private'!
7861684195ec category rename
Claus Gittinger <cg@exept.de>
parents: 66
diff changeset
   664
222
8e6f482297fa Jan's 4.1 version
Claus Gittinger <cg@exept.de>
parents: 221
diff changeset
   665
executeShould: aBlock inScopeOf: anExceptionalEvent
139
5a48f282d789 back to 1.42 - last checked in version was bogus
Claus Gittinger <cg@exept.de>
parents: 138
diff changeset
   666
"/        ^[aBlock value.
5a48f282d789 back to 1.42 - last checked in version was bogus
Claus Gittinger <cg@exept.de>
parents: 138
diff changeset
   667
"/        false] sunitOn: anExceptionalEvent
5a48f282d789 back to 1.42 - last checked in version was bogus
Claus Gittinger <cg@exept.de>
parents: 138
diff changeset
   668
"/                do: [:ex | ex sunitExitWith: true]
103
ad6897ce99e0 Merge SUnit 3.1 changes
Stefan Vogel <sv@exept.de>
parents: 101
diff changeset
   669
139
5a48f282d789 back to 1.42 - last checked in version was bogus
Claus Gittinger <cg@exept.de>
parents: 138
diff changeset
   670
"/        [[aBlock value]
5a48f282d789 back to 1.42 - last checked in version was bogus
Claus Gittinger <cg@exept.de>
parents: 138
diff changeset
   671
"/                on: anExceptionalEvent
5a48f282d789 back to 1.42 - last checked in version was bogus
Claus Gittinger <cg@exept.de>
parents: 138
diff changeset
   672
"/                do: [:ex | ^true]]
5a48f282d789 back to 1.42 - last checked in version was bogus
Claus Gittinger <cg@exept.de>
parents: 138
diff changeset
   673
"/                        on: TestResult exError
5a48f282d789 back to 1.42 - last checked in version was bogus
Claus Gittinger <cg@exept.de>
parents: 138
diff changeset
   674
"/                        do: [:ex | ^false].
594
617433e967e9 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 587
diff changeset
   675
	[aBlock value]
617433e967e9 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 587
diff changeset
   676
		on: anExceptionalEvent
617433e967e9 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 587
diff changeset
   677
		do: [:ex | ^true].
103
ad6897ce99e0 Merge SUnit 3.1 changes
Stefan Vogel <sv@exept.de>
parents: 101
diff changeset
   678
594
617433e967e9 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 587
diff changeset
   679
	^false.
67
7861684195ec category rename
Claus Gittinger <cg@exept.de>
parents: 66
diff changeset
   680
!
7861684195ec category rename
Claus Gittinger <cg@exept.de>
parents: 66
diff changeset
   681
7861684195ec category rename
Claus Gittinger <cg@exept.de>
parents: 66
diff changeset
   682
performTest
328
66cae160c956 added: #withStandardOutputAndTranscriptRedirectedDo:
Claus Gittinger <cg@exept.de>
parents: 326
diff changeset
   683
    self perform: testSelector sunitAsSymbol
67
7861684195ec category rename
Claus Gittinger <cg@exept.de>
parents: 66
diff changeset
   684
!
7861684195ec category rename
Claus Gittinger <cg@exept.de>
parents: 66
diff changeset
   685
576
55ef6aaf19cb class: TestCase
Stefan Vogel <sv@exept.de>
parents: 575
diff changeset
   686
safeTearDown
55ef6aaf19cb class: TestCase
Stefan Vogel <sv@exept.de>
parents: 575
diff changeset
   687
    "Have to handle Abort. When tearDown is called as inside an ensure block after
55ef6aaf19cb class: TestCase
Stefan Vogel <sv@exept.de>
parents: 575
diff changeset
   688
     an abort in the debugger of an errornous test case and raises an error with a debugger
55ef6aaf19cb class: TestCase
Stefan Vogel <sv@exept.de>
parents: 575
diff changeset
   689
     itself."
55ef6aaf19cb class: TestCase
Stefan Vogel <sv@exept.de>
parents: 575
diff changeset
   690
55ef6aaf19cb class: TestCase
Stefan Vogel <sv@exept.de>
parents: 575
diff changeset
   691
    AbortOperationRequest handle:[:ex| ] do:[self tearDown].
55ef6aaf19cb class: TestCase
Stefan Vogel <sv@exept.de>
parents: 575
diff changeset
   692
!
55ef6aaf19cb class: TestCase
Stefan Vogel <sv@exept.de>
parents: 575
diff changeset
   693
139
5a48f282d789 back to 1.42 - last checked in version was bogus
Claus Gittinger <cg@exept.de>
parents: 138
diff changeset
   694
setTestSelector: aSymbol
594
617433e967e9 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 587
diff changeset
   695
	testSelector := aSymbol
139
5a48f282d789 back to 1.42 - last checked in version was bogus
Claus Gittinger <cg@exept.de>
parents: 138
diff changeset
   696
!
5a48f282d789 back to 1.42 - last checked in version was bogus
Claus Gittinger <cg@exept.de>
parents: 138
diff changeset
   697
222
8e6f482297fa Jan's 4.1 version
Claus Gittinger <cg@exept.de>
parents: 221
diff changeset
   698
signalFailure:aString resumable:isResumable
139
5a48f282d789 back to 1.42 - last checked in version was bogus
Claus Gittinger <cg@exept.de>
parents: 138
diff changeset
   699
    "/        TestResult failure sunitSignalWith: aString
5a48f282d789 back to 1.42 - last checked in version was bogus
Claus Gittinger <cg@exept.de>
parents: 138
diff changeset
   700
179
caba0f640d13 context skipping in debugger generalized
Claus Gittinger <cg@exept.de>
parents: 174
diff changeset
   701
    <resource: #skipInDebuggersWalkBack>
caba0f640d13 context skipping in debugger generalized
Claus Gittinger <cg@exept.de>
parents: 174
diff changeset
   702
139
5a48f282d789 back to 1.42 - last checked in version was bogus
Claus Gittinger <cg@exept.de>
parents: 138
diff changeset
   703
    isResumable ifTrue:[
594
617433e967e9 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 587
diff changeset
   704
	TestResult resumableFailure
617433e967e9 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 587
diff changeset
   705
	    raiseRequestWith:nil
617433e967e9 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 587
diff changeset
   706
	    errorString:aString
617433e967e9 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 587
diff changeset
   707
	    in:thisContext sender sender
139
5a48f282d789 back to 1.42 - last checked in version was bogus
Claus Gittinger <cg@exept.de>
parents: 138
diff changeset
   708
    ] ifFalse:[
594
617433e967e9 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 587
diff changeset
   709
	TestResult failure
617433e967e9 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 587
diff changeset
   710
	    raiseErrorString:aString
617433e967e9 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 587
diff changeset
   711
	    in:thisContext sender sender
139
5a48f282d789 back to 1.42 - last checked in version was bogus
Claus Gittinger <cg@exept.de>
parents: 138
diff changeset
   712
    ].
5a48f282d789 back to 1.42 - last checked in version was bogus
Claus Gittinger <cg@exept.de>
parents: 138
diff changeset
   713
5a48f282d789 back to 1.42 - last checked in version was bogus
Claus Gittinger <cg@exept.de>
parents: 138
diff changeset
   714
    "Modified: / 06-08-2006 / 22:55:55 / cg"
5a48f282d789 back to 1.42 - last checked in version was bogus
Claus Gittinger <cg@exept.de>
parents: 138
diff changeset
   715
!
5a48f282d789 back to 1.42 - last checked in version was bogus
Claus Gittinger <cg@exept.de>
parents: 138
diff changeset
   716
5a48f282d789 back to 1.42 - last checked in version was bogus
Claus Gittinger <cg@exept.de>
parents: 138
diff changeset
   717
signalUnavailableResources
5a48f282d789 back to 1.42 - last checked in version was bogus
Claus Gittinger <cg@exept.de>
parents: 138
diff changeset
   718
222
8e6f482297fa Jan's 4.1 version
Claus Gittinger <cg@exept.de>
parents: 221
diff changeset
   719
    self resources do:[:res |
594
617433e967e9 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 587
diff changeset
   720
	res isAvailable ifFalse:[
617433e967e9 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 587
diff changeset
   721
	    ^ res signalInitializationError
617433e967e9 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 587
diff changeset
   722
	]
139
5a48f282d789 back to 1.42 - last checked in version was bogus
Claus Gittinger <cg@exept.de>
parents: 138
diff changeset
   723
    ].
67
7861684195ec category rename
Claus Gittinger <cg@exept.de>
parents: 66
diff changeset
   724
! !
7861684195ec category rename
Claus Gittinger <cg@exept.de>
parents: 66
diff changeset
   725
139
5a48f282d789 back to 1.42 - last checked in version was bogus
Claus Gittinger <cg@exept.de>
parents: 138
diff changeset
   726
!TestCase methodsFor:'queries'!
5a48f282d789 back to 1.42 - last checked in version was bogus
Claus Gittinger <cg@exept.de>
parents: 138
diff changeset
   727
690
cb50d1d3ffeb #DOCUMENTATION by cg
Claus Gittinger <cg@exept.de>
parents: 689
diff changeset
   728
isLogging
cb50d1d3ffeb #DOCUMENTATION by cg
Claus Gittinger <cg@exept.de>
parents: 689
diff changeset
   729
	"By default, we're not logging failures. If you override this in
cb50d1d3ffeb #DOCUMENTATION by cg
Claus Gittinger <cg@exept.de>
parents: 689
diff changeset
   730
	a subclass, make sure that you override #failureLog"
cb50d1d3ffeb #DOCUMENTATION by cg
Claus Gittinger <cg@exept.de>
parents: 689
diff changeset
   731
	^false
cb50d1d3ffeb #DOCUMENTATION by cg
Claus Gittinger <cg@exept.de>
parents: 689
diff changeset
   732
cb50d1d3ffeb #DOCUMENTATION by cg
Claus Gittinger <cg@exept.de>
parents: 689
diff changeset
   733
!
cb50d1d3ffeb #DOCUMENTATION by cg
Claus Gittinger <cg@exept.de>
parents: 689
diff changeset
   734
139
5a48f282d789 back to 1.42 - last checked in version was bogus
Claus Gittinger <cg@exept.de>
parents: 138
diff changeset
   735
isTestCase
5a48f282d789 back to 1.42 - last checked in version was bogus
Claus Gittinger <cg@exept.de>
parents: 138
diff changeset
   736
    ^ true
5a48f282d789 back to 1.42 - last checked in version was bogus
Claus Gittinger <cg@exept.de>
parents: 138
diff changeset
   737
!
5a48f282d789 back to 1.42 - last checked in version was bogus
Claus Gittinger <cg@exept.de>
parents: 138
diff changeset
   738
221
914934672e32 added: #isTestCaseLike
Claus Gittinger <cg@exept.de>
parents: 216
diff changeset
   739
isTestCaseLike
914934672e32 added: #isTestCaseLike
Claus Gittinger <cg@exept.de>
parents: 216
diff changeset
   740
    ^ true
914934672e32 added: #isTestCaseLike
Claus Gittinger <cg@exept.de>
parents: 216
diff changeset
   741
914934672e32 added: #isTestCaseLike
Claus Gittinger <cg@exept.de>
parents: 216
diff changeset
   742
    "Created: / 29-06-2011 / 20:37:57 / cg"
914934672e32 added: #isTestCaseLike
Claus Gittinger <cg@exept.de>
parents: 216
diff changeset
   743
!
914934672e32 added: #isTestCaseLike
Claus Gittinger <cg@exept.de>
parents: 216
diff changeset
   744
139
5a48f282d789 back to 1.42 - last checked in version was bogus
Claus Gittinger <cg@exept.de>
parents: 138
diff changeset
   745
isTestSuite
5a48f282d789 back to 1.42 - last checked in version was bogus
Claus Gittinger <cg@exept.de>
parents: 138
diff changeset
   746
    ^ false
5a48f282d789 back to 1.42 - last checked in version was bogus
Claus Gittinger <cg@exept.de>
parents: 138
diff changeset
   747
! !
122
61e456491017 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 118
diff changeset
   748
67
7861684195ec category rename
Claus Gittinger <cg@exept.de>
parents: 66
diff changeset
   749
!TestCase methodsFor:'running'!
7861684195ec category rename
Claus Gittinger <cg@exept.de>
parents: 66
diff changeset
   750
139
5a48f282d789 back to 1.42 - last checked in version was bogus
Claus Gittinger <cg@exept.de>
parents: 138
diff changeset
   751
debug
382
05683696d647 Fixs in remembering test outcomes
vrany
parents: 377
diff changeset
   752
587
570faa368e0d class: TestCase
Stefan Vogel <sv@exept.de>
parents: 578
diff changeset
   753
    | testCase outcome result wasProceeded|
382
05683696d647 Fixs in remembering test outcomes
vrany
parents: 377
diff changeset
   754
05683696d647 Fixs in remembering test outcomes
vrany
parents: 377
diff changeset
   755
    [
685
00195d0e5ebc #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 669
diff changeset
   756
        result := TestResult stateError.
00195d0e5ebc #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 669
diff changeset
   757
        wasProceeded := false.
587
570faa368e0d class: TestCase
Stefan Vogel <sv@exept.de>
parents: 578
diff changeset
   758
685
00195d0e5ebc #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 669
diff changeset
   759
        [
00195d0e5ebc #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 669
diff changeset
   760
            (testCase := self class selector: testSelector) runCase.
00195d0e5ebc #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 669
diff changeset
   761
            wasProceeded ifFalse:[
00195d0e5ebc #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 669
diff changeset
   762
                result := TestResult statePass.
00195d0e5ebc #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 669
diff changeset
   763
            ]
00195d0e5ebc #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 669
diff changeset
   764
        ] sunitOn:(TestResult failure) do: [:ex |
00195d0e5ebc #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 669
diff changeset
   765
            ex creator == TestSkipped ifTrue:[
00195d0e5ebc #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 669
diff changeset
   766
                result := TestResult stateSkip.
00195d0e5ebc #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 669
diff changeset
   767
            ] ifFalse:[
00195d0e5ebc #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 669
diff changeset
   768
                result := TestResult stateFail.
00195d0e5ebc #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 669
diff changeset
   769
            ].
00195d0e5ebc #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 669
diff changeset
   770
            "I want a debugger to open here..."
00195d0e5ebc #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 669
diff changeset
   771
            "the only really portable dialect query..."
00195d0e5ebc #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 669
diff changeset
   772
            ((Smalltalk respondsTo:#isSmalltalkX) and:[Smalltalk isSmalltalkX]) ifTrue:[
00195d0e5ebc #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 669
diff changeset
   773
                "/ debug
00195d0e5ebc #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 669
diff changeset
   774
                Debugger
00195d0e5ebc #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 669
diff changeset
   775
                    enter:ex raiseContext
00195d0e5ebc #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 669
diff changeset
   776
                    withMessage:(ex description)
00195d0e5ebc #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 669
diff changeset
   777
                    mayProceed:true.
00195d0e5ebc #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 669
diff changeset
   778
                wasProceeded := true.
00195d0e5ebc #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 669
diff changeset
   779
                ex proceed.
00195d0e5ebc #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 669
diff changeset
   780
            ] ifFalse:[
00195d0e5ebc #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 669
diff changeset
   781
                "is there a portable way to open a debugger?"
00195d0e5ebc #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 669
diff changeset
   782
                self halt:(ex description).
00195d0e5ebc #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 669
diff changeset
   783
                wasProceeded := true.
00195d0e5ebc #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 669
diff changeset
   784
            ].
00195d0e5ebc #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 669
diff changeset
   785
        ].
524
5cf0a462356a lastState fixes
Claus Gittinger <cg@exept.de>
parents: 523
diff changeset
   786
685
00195d0e5ebc #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 669
diff changeset
   787
    ] ensure: [
00195d0e5ebc #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 669
diff changeset
   788
        " if proceeded in the debugger, we arrive here; "
00195d0e5ebc #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 669
diff changeset
   789
        " but still, this is not always a pass !! "
00195d0e5ebc #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 669
diff changeset
   790
        outcome := TestCaseOutcome new.
00195d0e5ebc #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 669
diff changeset
   791
        outcome testCase: testCase.
00195d0e5ebc #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 669
diff changeset
   792
        outcome result: result.
00195d0e5ebc #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 669
diff changeset
   793
        outcome remember.
00195d0e5ebc #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 669
diff changeset
   794
        TestResource resetResources: self resources
382
05683696d647 Fixs in remembering test outcomes
vrany
parents: 377
diff changeset
   795
    ].
254
7f4b9fc9756b changed: #debug - remembers test as passed if no error occur during debugging
vrany
parents: 240
diff changeset
   796
7f4b9fc9756b changed: #debug - remembers test as passed if no error occur during debugging
vrany
parents: 240
diff changeset
   797
    "Modified: / 07-07-2011 / 11:10:50 / jv"
7f4b9fc9756b changed: #debug - remembers test as passed if no error occur during debugging
vrany
parents: 240
diff changeset
   798
    "Modified: / 07-07-2011 / 11:34:08 / Jan Vrany <jan.vrant@fit.cvut,cz>"
382
05683696d647 Fixs in remembering test outcomes
vrany
parents: 377
diff changeset
   799
    "Modified: / 20-08-2011 / 14:15:51 / Jan Vrany <jan.vrany@fit.cvut.cz>"
685
00195d0e5ebc #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 669
diff changeset
   800
    "Modified: / 13-07-2017 / 14:02:47 / cg"
139
5a48f282d789 back to 1.42 - last checked in version was bogus
Claus Gittinger <cg@exept.de>
parents: 138
diff changeset
   801
!
67
7861684195ec category rename
Claus Gittinger <cg@exept.de>
parents: 66
diff changeset
   802
139
5a48f282d789 back to 1.42 - last checked in version was bogus
Claus Gittinger <cg@exept.de>
parents: 138
diff changeset
   803
debugAsFailure
594
617433e967e9 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 587
diff changeset
   804
	| semaphore |
617433e967e9 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 587
diff changeset
   805
	semaphore := Semaphore new.
617433e967e9 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 587
diff changeset
   806
	[semaphore wait. TestResource resetResources: self resources] fork.
617433e967e9 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 587
diff changeset
   807
	(self class selector: testSelector) runCaseAsFailure: semaphore.
67
7861684195ec category rename
Claus Gittinger <cg@exept.de>
parents: 66
diff changeset
   808
!
7861684195ec category rename
Claus Gittinger <cg@exept.de>
parents: 66
diff changeset
   809
222
8e6f482297fa Jan's 4.1 version
Claus Gittinger <cg@exept.de>
parents: 221
diff changeset
   810
debugUsing:aSymbol
139
5a48f282d789 back to 1.42 - last checked in version was bogus
Claus Gittinger <cg@exept.de>
parents: 138
diff changeset
   811
    self signalUnavailableResources.
5a48f282d789 back to 1.42 - last checked in version was bogus
Claus Gittinger <cg@exept.de>
parents: 138
diff changeset
   812
    [
594
617433e967e9 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 587
diff changeset
   813
	"/ used to be:
617433e967e9 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 587
diff changeset
   814
	"/  (self class selector:testSelector) perform:aSymbol
617433e967e9 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 587
diff changeset
   815
	"/ which is bad for subclasses which need more arguments.
617433e967e9 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 587
diff changeset
   816
	"/ why not use:
617433e967e9 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 587
diff changeset
   817
	"/  self copy perform:aSymbol
617433e967e9 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 587
diff changeset
   818
	"/ or even
617433e967e9 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 587
diff changeset
   819
	"/  self perform:aSymbol
617433e967e9 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 587
diff changeset
   820
	self perform:aSymbol
139
5a48f282d789 back to 1.42 - last checked in version was bogus
Claus Gittinger <cg@exept.de>
parents: 138
diff changeset
   821
    ] ensure:[
594
617433e967e9 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 587
diff changeset
   822
	self resources do:[:each |
617433e967e9 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 587
diff changeset
   823
	    each reset
617433e967e9 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 587
diff changeset
   824
	]
139
5a48f282d789 back to 1.42 - last checked in version was bogus
Claus Gittinger <cg@exept.de>
parents: 138
diff changeset
   825
    ]
5a48f282d789 back to 1.42 - last checked in version was bogus
Claus Gittinger <cg@exept.de>
parents: 138
diff changeset
   826
!
103
ad6897ce99e0 Merge SUnit 3.1 changes
Stefan Vogel <sv@exept.de>
parents: 101
diff changeset
   827
222
8e6f482297fa Jan's 4.1 version
Claus Gittinger <cg@exept.de>
parents: 221
diff changeset
   828
failureLog
594
617433e967e9 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 587
diff changeset
   829
	^SUnitNameResolver class >> #defaultLogDevice
139
5a48f282d789 back to 1.42 - last checked in version was bogus
Claus Gittinger <cg@exept.de>
parents: 138
diff changeset
   830
!
103
ad6897ce99e0 Merge SUnit 3.1 changes
Stefan Vogel <sv@exept.de>
parents: 101
diff changeset
   831
139
5a48f282d789 back to 1.42 - last checked in version was bogus
Claus Gittinger <cg@exept.de>
parents: 138
diff changeset
   832
logFailure: aString
594
617433e967e9 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 587
diff changeset
   833
	self isLogging ifTrue: [
617433e967e9 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 587
diff changeset
   834
		self failureLog
617433e967e9 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 587
diff changeset
   835
			cr;
617433e967e9 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 587
diff changeset
   836
			nextPutAll: aString;
617433e967e9 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 587
diff changeset
   837
			flush]
222
8e6f482297fa Jan's 4.1 version
Claus Gittinger <cg@exept.de>
parents: 221
diff changeset
   838
139
5a48f282d789 back to 1.42 - last checked in version was bogus
Claus Gittinger <cg@exept.de>
parents: 138
diff changeset
   839
!
5a48f282d789 back to 1.42 - last checked in version was bogus
Claus Gittinger <cg@exept.de>
parents: 138
diff changeset
   840
550
cf72a67f1973 class: TestCase
Claus Gittinger <cg@exept.de>
parents: 531
diff changeset
   841
logSkipped: aString
594
617433e967e9 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 587
diff changeset
   842
	self isLogging ifTrue: [
617433e967e9 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 587
diff changeset
   843
		self failureLog
617433e967e9 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 587
diff changeset
   844
			cr;
617433e967e9 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 587
diff changeset
   845
			nextPutAll: aString;
617433e967e9 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 587
diff changeset
   846
			flush]
550
cf72a67f1973 class: TestCase
Claus Gittinger <cg@exept.de>
parents: 531
diff changeset
   847
!
cf72a67f1973 class: TestCase
Claus Gittinger <cg@exept.de>
parents: 531
diff changeset
   848
139
5a48f282d789 back to 1.42 - last checked in version was bogus
Claus Gittinger <cg@exept.de>
parents: 138
diff changeset
   849
openDebuggerOnFailingTestMethod
594
617433e967e9 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 587
diff changeset
   850
	"SUnit has halted one step in front of the failing test method. Step over the 'self halt' and
617433e967e9 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 587
diff changeset
   851
	 send into 'self perform: testSelector' to see the failure from the beginning"
139
5a48f282d789 back to 1.42 - last checked in version was bogus
Claus Gittinger <cg@exept.de>
parents: 138
diff changeset
   852
594
617433e967e9 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 587
diff changeset
   853
	self
617433e967e9 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 587
diff changeset
   854
		"/halt;
617433e967e9 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 587
diff changeset
   855
		performTest
222
8e6f482297fa Jan's 4.1 version
Claus Gittinger <cg@exept.de>
parents: 221
diff changeset
   856
8e6f482297fa Jan's 4.1 version
Claus Gittinger <cg@exept.de>
parents: 221
diff changeset
   857
    "Modified: / 05-12-2009 / 18:40:13 / Jan Vrany <jan.vrany@fit.cvut.cz>"
67
7861684195ec category rename
Claus Gittinger <cg@exept.de>
parents: 66
diff changeset
   858
!
7861684195ec category rename
Claus Gittinger <cg@exept.de>
parents: 66
diff changeset
   859
7861684195ec category rename
Claus Gittinger <cg@exept.de>
parents: 66
diff changeset
   860
run
688
e2428b24d753 #DOCUMENTATION by cg
Claus Gittinger <cg@exept.de>
parents: 686
diff changeset
   861
    "run this suite; return the result"
262
3c46acd3f64a TestSuite/TestCase run* method refactored (cleanup, possible bug fixes)
vrany
parents: 254
diff changeset
   862
461
c4a68cc4e547 use TestResultForSTX in SUnit runner
Claus Gittinger <cg@exept.de>
parents: 454
diff changeset
   863
    ^self run: TestResult defaultResultClass new
262
3c46acd3f64a TestSuite/TestCase run* method refactored (cleanup, possible bug fixes)
vrany
parents: 254
diff changeset
   864
3c46acd3f64a TestSuite/TestCase run* method refactored (cleanup, possible bug fixes)
vrany
parents: 254
diff changeset
   865
    "Modified: / 29-07-2011 / 12:07:57 / Jan Vrany <jan.vrany@fit.cvut.cz>"
67
7861684195ec category rename
Claus Gittinger <cg@exept.de>
parents: 66
diff changeset
   866
!
7861684195ec category rename
Claus Gittinger <cg@exept.de>
parents: 66
diff changeset
   867
7861684195ec category rename
Claus Gittinger <cg@exept.de>
parents: 66
diff changeset
   868
run: aResult
688
e2428b24d753 #DOCUMENTATION by cg
Claus Gittinger <cg@exept.de>
parents: 686
diff changeset
   869
    "run this suite; fill and return aResult"
262
3c46acd3f64a TestSuite/TestCase run* method refactored (cleanup, possible bug fixes)
vrany
parents: 254
diff changeset
   870
3c46acd3f64a TestSuite/TestCase run* method refactored (cleanup, possible bug fixes)
vrany
parents: 254
diff changeset
   871
    ^self run: aResult beforeEachDo: [:test :result|] afterEachDo: [:test :result|]
3c46acd3f64a TestSuite/TestCase run* method refactored (cleanup, possible bug fixes)
vrany
parents: 254
diff changeset
   872
3c46acd3f64a TestSuite/TestCase run* method refactored (cleanup, possible bug fixes)
vrany
parents: 254
diff changeset
   873
    "Modified: / 29-07-2011 / 12:07:46 / Jan Vrany <jan.vrany@fit.cvut.cz>"
67
7861684195ec category rename
Claus Gittinger <cg@exept.de>
parents: 66
diff changeset
   874
!
7861684195ec category rename
Claus Gittinger <cg@exept.de>
parents: 66
diff changeset
   875
139
5a48f282d789 back to 1.42 - last checked in version was bogus
Claus Gittinger <cg@exept.de>
parents: 138
diff changeset
   876
run: aResult afterEachDo:block2
262
3c46acd3f64a TestSuite/TestCase run* method refactored (cleanup, possible bug fixes)
vrany
parents: 254
diff changeset
   877
3c46acd3f64a TestSuite/TestCase run* method refactored (cleanup, possible bug fixes)
vrany
parents: 254
diff changeset
   878
    ^self run: aResult beforeEachDo: [:test :result|] afterEachDo:block2
3c46acd3f64a TestSuite/TestCase run* method refactored (cleanup, possible bug fixes)
vrany
parents: 254
diff changeset
   879
3c46acd3f64a TestSuite/TestCase run* method refactored (cleanup, possible bug fixes)
vrany
parents: 254
diff changeset
   880
    "Modified: / 29-07-2011 / 12:07:03 / Jan Vrany <jan.vrany@fit.cvut.cz>"
139
5a48f282d789 back to 1.42 - last checked in version was bogus
Claus Gittinger <cg@exept.de>
parents: 138
diff changeset
   881
!
5a48f282d789 back to 1.42 - last checked in version was bogus
Claus Gittinger <cg@exept.de>
parents: 138
diff changeset
   882
5a48f282d789 back to 1.42 - last checked in version was bogus
Claus Gittinger <cg@exept.de>
parents: 138
diff changeset
   883
run: aResult beforeEachDo:block1 afterEachDo:block2
262
3c46acd3f64a TestSuite/TestCase run* method refactored (cleanup, possible bug fixes)
vrany
parents: 254
diff changeset
   884
3c46acd3f64a TestSuite/TestCase run* method refactored (cleanup, possible bug fixes)
vrany
parents: 254
diff changeset
   885
    ^self run: aResult beforeEachDo:block1 afterEachDo:block2 resetResources: true
3c46acd3f64a TestSuite/TestCase run* method refactored (cleanup, possible bug fixes)
vrany
parents: 254
diff changeset
   886
3c46acd3f64a TestSuite/TestCase run* method refactored (cleanup, possible bug fixes)
vrany
parents: 254
diff changeset
   887
    "Modified: / 29-07-2011 / 12:06:32 / Jan Vrany <jan.vrany@fit.cvut.cz>"
3c46acd3f64a TestSuite/TestCase run* method refactored (cleanup, possible bug fixes)
vrany
parents: 254
diff changeset
   888
!
3c46acd3f64a TestSuite/TestCase run* method refactored (cleanup, possible bug fixes)
vrany
parents: 254
diff changeset
   889
3c46acd3f64a TestSuite/TestCase run* method refactored (cleanup, possible bug fixes)
vrany
parents: 254
diff changeset
   890
run: result beforeEachDo: before afterEachDo: after resetResources: reset
430
Claus Gittinger <cg@exept.de>
parents: 421
diff changeset
   891
    ^ self
594
617433e967e9 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 587
diff changeset
   892
	run: result
617433e967e9 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 587
diff changeset
   893
	beforeEachDo: before
617433e967e9 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 587
diff changeset
   894
	afterEachDo: after
617433e967e9 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 587
diff changeset
   895
	resetResources: reset
617433e967e9 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 587
diff changeset
   896
	debug: false
430
Claus Gittinger <cg@exept.de>
parents: 421
diff changeset
   897
Claus Gittinger <cg@exept.de>
parents: 421
diff changeset
   898
    "Created: / 29-07-2011 / 12:04:53 / Jan Vrany <jan.vrany@fit.cvut.cz>"
Claus Gittinger <cg@exept.de>
parents: 421
diff changeset
   899
    "Modified: / 21-08-2011 / 17:45:17 / cg"
Claus Gittinger <cg@exept.de>
parents: 421
diff changeset
   900
!
Claus Gittinger <cg@exept.de>
parents: 421
diff changeset
   901
Claus Gittinger <cg@exept.de>
parents: 421
diff changeset
   902
run: result beforeEachDo: before afterEachDo: after resetResources: reset debug:doDebug
262
3c46acd3f64a TestSuite/TestCase run* method refactored (cleanup, possible bug fixes)
vrany
parents: 254
diff changeset
   903
3c46acd3f64a TestSuite/TestCase run* method refactored (cleanup, possible bug fixes)
vrany
parents: 254
diff changeset
   904
    "Workhorse for running a testcase. If reset is true, then
3c46acd3f64a TestSuite/TestCase run* method refactored (cleanup, possible bug fixes)
vrany
parents: 254
diff changeset
   905
     the resources are reset, otherwise not"
3c46acd3f64a TestSuite/TestCase run* method refactored (cleanup, possible bug fixes)
vrany
parents: 254
diff changeset
   906
3c46acd3f64a TestSuite/TestCase run* method refactored (cleanup, possible bug fixes)
vrany
parents: 254
diff changeset
   907
    "1. Execute before block"
3c46acd3f64a TestSuite/TestCase run* method refactored (cleanup, possible bug fixes)
vrany
parents: 254
diff changeset
   908
    "This code is ugly in Smalltalk/X but it is so because
3c46acd3f64a TestSuite/TestCase run* method refactored (cleanup, possible bug fixes)
vrany
parents: 254
diff changeset
   909
     it is more portable - numArgs in ANSI (?)"
3c46acd3f64a TestSuite/TestCase run* method refactored (cleanup, possible bug fixes)
vrany
parents: 254
diff changeset
   910
    before numArgs == 2 ifTrue:[
685
00195d0e5ebc #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 669
diff changeset
   911
        before value: self value: result
262
3c46acd3f64a TestSuite/TestCase run* method refactored (cleanup, possible bug fixes)
vrany
parents: 254
diff changeset
   912
    ] ifFalse:[
685
00195d0e5ebc #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 669
diff changeset
   913
        before numArgs == 1 ifTrue:[
00195d0e5ebc #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 669
diff changeset
   914
            before value: self
00195d0e5ebc #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 669
diff changeset
   915
        ] ifFalse:[
00195d0e5ebc #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 669
diff changeset
   916
            before value.
00195d0e5ebc #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 669
diff changeset
   917
        ]
262
3c46acd3f64a TestSuite/TestCase run* method refactored (cleanup, possible bug fixes)
vrany
parents: 254
diff changeset
   918
    ].
3c46acd3f64a TestSuite/TestCase run* method refactored (cleanup, possible bug fixes)
vrany
parents: 254
diff changeset
   919
3c46acd3f64a TestSuite/TestCase run* method refactored (cleanup, possible bug fixes)
vrany
parents: 254
diff changeset
   920
    "2. Run the testcase"
3c46acd3f64a TestSuite/TestCase run* method refactored (cleanup, possible bug fixes)
vrany
parents: 254
diff changeset
   921
    reset ifTrue:[
685
00195d0e5ebc #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 669
diff changeset
   922
        [
00195d0e5ebc #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 669
diff changeset
   923
            result runCase: self debugged:doDebug
00195d0e5ebc #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 669
diff changeset
   924
        ] ensure: [
00195d0e5ebc #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 669
diff changeset
   925
            TestResource resetResources: self resources
00195d0e5ebc #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 669
diff changeset
   926
        ].
262
3c46acd3f64a TestSuite/TestCase run* method refactored (cleanup, possible bug fixes)
vrany
parents: 254
diff changeset
   927
    ] ifFalse:[
685
00195d0e5ebc #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 669
diff changeset
   928
        result runCase: self debugged:doDebug
262
3c46acd3f64a TestSuite/TestCase run* method refactored (cleanup, possible bug fixes)
vrany
parents: 254
diff changeset
   929
    ].
3c46acd3f64a TestSuite/TestCase run* method refactored (cleanup, possible bug fixes)
vrany
parents: 254
diff changeset
   930
3c46acd3f64a TestSuite/TestCase run* method refactored (cleanup, possible bug fixes)
vrany
parents: 254
diff changeset
   931
    "3. Execute after block"
3c46acd3f64a TestSuite/TestCase run* method refactored (cleanup, possible bug fixes)
vrany
parents: 254
diff changeset
   932
    "This code is ugly in Smalltalk/X but it is so because
3c46acd3f64a TestSuite/TestCase run* method refactored (cleanup, possible bug fixes)
vrany
parents: 254
diff changeset
   933
     it is more portable - numArgs in ANSI (?)"
282
deb55165e73b changed: #run:beforeEachDo:afterEachDo:resetResources:
Claus Gittinger <cg@exept.de>
parents: 265
diff changeset
   934
    after numArgs == 2 ifTrue:[
685
00195d0e5ebc #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 669
diff changeset
   935
        after value: self value: result
262
3c46acd3f64a TestSuite/TestCase run* method refactored (cleanup, possible bug fixes)
vrany
parents: 254
diff changeset
   936
    ] ifFalse:[
685
00195d0e5ebc #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 669
diff changeset
   937
        after numArgs == 1 ifTrue:[
00195d0e5ebc #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 669
diff changeset
   938
            after value: self
00195d0e5ebc #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 669
diff changeset
   939
        ] ifFalse:[
00195d0e5ebc #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 669
diff changeset
   940
            after value.
00195d0e5ebc #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 669
diff changeset
   941
        ]
262
3c46acd3f64a TestSuite/TestCase run* method refactored (cleanup, possible bug fixes)
vrany
parents: 254
diff changeset
   942
    ].
3c46acd3f64a TestSuite/TestCase run* method refactored (cleanup, possible bug fixes)
vrany
parents: 254
diff changeset
   943
    ^result
3c46acd3f64a TestSuite/TestCase run* method refactored (cleanup, possible bug fixes)
vrany
parents: 254
diff changeset
   944
3c46acd3f64a TestSuite/TestCase run* method refactored (cleanup, possible bug fixes)
vrany
parents: 254
diff changeset
   945
    "Created: / 29-07-2011 / 12:04:53 / Jan Vrany <jan.vrany@fit.cvut.cz>"
430
Claus Gittinger <cg@exept.de>
parents: 421
diff changeset
   946
    "Created: / 21-08-2011 / 17:44:56 / cg"
685
00195d0e5ebc #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 669
diff changeset
   947
    "Modified: / 13-07-2017 / 14:02:53 / cg"
139
5a48f282d789 back to 1.42 - last checked in version was bogus
Claus Gittinger <cg@exept.de>
parents: 138
diff changeset
   948
!
5a48f282d789 back to 1.42 - last checked in version was bogus
Claus Gittinger <cg@exept.de>
parents: 138
diff changeset
   949
5a48f282d789 back to 1.42 - last checked in version was bogus
Claus Gittinger <cg@exept.de>
parents: 138
diff changeset
   950
run: aResult beforeEachTestCaseDo:block1 afterEachTestCaseDo:block2
262
3c46acd3f64a TestSuite/TestCase run* method refactored (cleanup, possible bug fixes)
vrany
parents: 254
diff changeset
   951
3c46acd3f64a TestSuite/TestCase run* method refactored (cleanup, possible bug fixes)
vrany
parents: 254
diff changeset
   952
    <resource: #obsolete>
3c46acd3f64a TestSuite/TestCase run* method refactored (cleanup, possible bug fixes)
vrany
parents: 254
diff changeset
   953
    self obsoleteMethodWarning: 'Use #run:beforeEachDo:afterEachDo: instead'.
3c46acd3f64a TestSuite/TestCase run* method refactored (cleanup, possible bug fixes)
vrany
parents: 254
diff changeset
   954
3c46acd3f64a TestSuite/TestCase run* method refactored (cleanup, possible bug fixes)
vrany
parents: 254
diff changeset
   955
    ^self run: aResult beforeEachDo:block1 afterEachDo:block2
3c46acd3f64a TestSuite/TestCase run* method refactored (cleanup, possible bug fixes)
vrany
parents: 254
diff changeset
   956
3c46acd3f64a TestSuite/TestCase run* method refactored (cleanup, possible bug fixes)
vrany
parents: 254
diff changeset
   957
    "Modified: / 29-07-2011 / 12:06:15 / Jan Vrany <jan.vrany@fit.cvut.cz>"
139
5a48f282d789 back to 1.42 - last checked in version was bogus
Claus Gittinger <cg@exept.de>
parents: 138
diff changeset
   958
!
5a48f282d789 back to 1.42 - last checked in version was bogus
Claus Gittinger <cg@exept.de>
parents: 138
diff changeset
   959
5a48f282d789 back to 1.42 - last checked in version was bogus
Claus Gittinger <cg@exept.de>
parents: 138
diff changeset
   960
runCase
570
c9c4c97948cc class: TestCase
Claus Gittinger <cg@exept.de>
parents: 565
diff changeset
   961
    |didSetup|
c9c4c97948cc class: TestCase
Claus Gittinger <cg@exept.de>
parents: 565
diff changeset
   962
328
66cae160c956 added: #withStandardOutputAndTranscriptRedirectedDo:
Claus Gittinger <cg@exept.de>
parents: 326
diff changeset
   963
    self resources do: [:each | each availableFor: self].
66cae160c956 added: #withStandardOutputAndTranscriptRedirectedDo:
Claus Gittinger <cg@exept.de>
parents: 326
diff changeset
   964
66cae160c956 added: #withStandardOutputAndTranscriptRedirectedDo:
Claus Gittinger <cg@exept.de>
parents: 326
diff changeset
   965
    [
685
00195d0e5ebc #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 669
diff changeset
   966
        didSetup := false.
00195d0e5ebc #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 669
diff changeset
   967
        self setUp.
00195d0e5ebc #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 669
diff changeset
   968
        didSetup := true.
00195d0e5ebc #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 669
diff changeset
   969
        self performTest.
00195d0e5ebc #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 669
diff changeset
   970
    ] ensure: [
00195d0e5ebc #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 669
diff changeset
   971
        didSetup ifTrue:[ self safeTearDown ]
328
66cae160c956 added: #withStandardOutputAndTranscriptRedirectedDo:
Claus Gittinger <cg@exept.de>
parents: 326
diff changeset
   972
    ]
66cae160c956 added: #withStandardOutputAndTranscriptRedirectedDo:
Claus Gittinger <cg@exept.de>
parents: 326
diff changeset
   973
685
00195d0e5ebc #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 669
diff changeset
   974
    "Modified: / 13-07-2017 / 14:03:01 / cg"
139
5a48f282d789 back to 1.42 - last checked in version was bogus
Claus Gittinger <cg@exept.de>
parents: 138
diff changeset
   975
!
5a48f282d789 back to 1.42 - last checked in version was bogus
Claus Gittinger <cg@exept.de>
parents: 138
diff changeset
   976
5a48f282d789 back to 1.42 - last checked in version was bogus
Claus Gittinger <cg@exept.de>
parents: 138
diff changeset
   977
runCaseAsFailure
570
c9c4c97948cc class: TestCase
Claus Gittinger <cg@exept.de>
parents: 565
diff changeset
   978
    self setUp.
c9c4c97948cc class: TestCase
Claus Gittinger <cg@exept.de>
parents: 565
diff changeset
   979
    [
594
617433e967e9 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 587
diff changeset
   980
	[self openDebuggerOnFailingTestMethod] ensure: [self safeTearDown]
570
c9c4c97948cc class: TestCase
Claus Gittinger <cg@exept.de>
parents: 565
diff changeset
   981
    ] fork
139
5a48f282d789 back to 1.42 - last checked in version was bogus
Claus Gittinger <cg@exept.de>
parents: 138
diff changeset
   982
5a48f282d789 back to 1.42 - last checked in version was bogus
Claus Gittinger <cg@exept.de>
parents: 138
diff changeset
   983
    "Modified: / 21.6.2000 / 10:04:33 / Sames"
5a48f282d789 back to 1.42 - last checked in version was bogus
Claus Gittinger <cg@exept.de>
parents: 138
diff changeset
   984
!
5a48f282d789 back to 1.42 - last checked in version was bogus
Claus Gittinger <cg@exept.de>
parents: 138
diff changeset
   985
5a48f282d789 back to 1.42 - last checked in version was bogus
Claus Gittinger <cg@exept.de>
parents: 138
diff changeset
   986
runCaseAsFailure: aSemaphore
570
c9c4c97948cc class: TestCase
Claus Gittinger <cg@exept.de>
parents: 565
diff changeset
   987
    [
685
00195d0e5ebc #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 669
diff changeset
   988
        |didSetup|
570
c9c4c97948cc class: TestCase
Claus Gittinger <cg@exept.de>
parents: 565
diff changeset
   989
685
00195d0e5ebc #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 669
diff changeset
   990
        didSetup := false.
00195d0e5ebc #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 669
diff changeset
   991
        self resources do: [:each | each availableFor: self].
00195d0e5ebc #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 669
diff changeset
   992
        [
00195d0e5ebc #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 669
diff changeset
   993
            self setUp.
00195d0e5ebc #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 669
diff changeset
   994
            didSetup := true.
00195d0e5ebc #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 669
diff changeset
   995
            self openDebuggerOnFailingTestMethod
00195d0e5ebc #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 669
diff changeset
   996
        ] ensure: [
00195d0e5ebc #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 669
diff changeset
   997
            didSetup ifTrue:[ self tearDown ]
00195d0e5ebc #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 669
diff changeset
   998
        ]
00195d0e5ebc #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 669
diff changeset
   999
    ] ensure: [aSemaphore signal].
00195d0e5ebc #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 669
diff changeset
  1000
00195d0e5ebc #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 669
diff changeset
  1001
    "Modified: / 13-07-2017 / 14:03:44 / cg"
139
5a48f282d789 back to 1.42 - last checked in version was bogus
Claus Gittinger <cg@exept.de>
parents: 138
diff changeset
  1002
!
5a48f282d789 back to 1.42 - last checked in version was bogus
Claus Gittinger <cg@exept.de>
parents: 138
diff changeset
  1003
67
7861684195ec category rename
Claus Gittinger <cg@exept.de>
parents: 66
diff changeset
  1004
setUp
454
b95684ea4f32 comment/format in:
Claus Gittinger <cg@exept.de>
parents: 445
diff changeset
  1005
    "can be redefined in a concrete test"
67
7861684195ec category rename
Claus Gittinger <cg@exept.de>
parents: 66
diff changeset
  1006
!
7861684195ec category rename
Claus Gittinger <cg@exept.de>
parents: 66
diff changeset
  1007
7861684195ec category rename
Claus Gittinger <cg@exept.de>
parents: 66
diff changeset
  1008
tearDown
454
b95684ea4f32 comment/format in:
Claus Gittinger <cg@exept.de>
parents: 445
diff changeset
  1009
    "can be redefined in a concrete test"
50
6db52a1a4543 updgraded to 3.0
Claus Gittinger <cg@exept.de>
parents: 40
diff changeset
  1010
! !
6db52a1a4543 updgraded to 3.0
Claus Gittinger <cg@exept.de>
parents: 40
diff changeset
  1011
12
4a6597527f92 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6
diff changeset
  1012
!TestCase class methodsFor:'documentation'!
4a6597527f92 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6
diff changeset
  1013
290
7b52b68d57cb changed: #isTestSelector:
Claus Gittinger <cg@exept.de>
parents: 288
diff changeset
  1014
version
623
Claus Gittinger <cg@exept.de>
parents: 607
diff changeset
  1015
    ^ '$Header$'
290
7b52b68d57cb changed: #isTestSelector:
Claus Gittinger <cg@exept.de>
parents: 288
diff changeset
  1016
!
7b52b68d57cb changed: #isTestSelector:
Claus Gittinger <cg@exept.de>
parents: 288
diff changeset
  1017
203
ca0c9f44ee72 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 200
diff changeset
  1018
version_CVS
623
Claus Gittinger <cg@exept.de>
parents: 607
diff changeset
  1019
    ^ '$Header$'
222
8e6f482297fa Jan's 4.1 version
Claus Gittinger <cg@exept.de>
parents: 221
diff changeset
  1020
!
8e6f482297fa Jan's 4.1 version
Claus Gittinger <cg@exept.de>
parents: 221
diff changeset
  1021
8e6f482297fa Jan's 4.1 version
Claus Gittinger <cg@exept.de>
parents: 221
diff changeset
  1022
version_SVN
623
Claus Gittinger <cg@exept.de>
parents: 607
diff changeset
  1023
    ^ '$Id$'
12
4a6597527f92 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6
diff changeset
  1024
! !
81
10852410025d *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 73
diff changeset
  1025
550
cf72a67f1973 class: TestCase
Claus Gittinger <cg@exept.de>
parents: 531
diff changeset
  1026
2
6f450bf08bc0 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1
diff changeset
  1027
TestCase initialize!