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