TestCase.st
author Jan Vrany <jan.vrany@fit.cvut.cz>
Mon, 14 Jul 2014 21:58:21 +0100
branchworking_v5_0
changeset 614 3003097506c9
parent 613 5a546630cfcf
child 616 580add62d680
permissions -rw-r--r--
Refactored remembering of TestCaseOutcomes. TestCaseOutcomes are no longer remembered in class instance var of the TestCase but rather in one global dictionary on TestCaseOutcome class. The top-level weak dictionary uses test method as a key and second-level dictionary as value. This ensures that when a test method is changed, sooner or later (now obsolete) remebered outcomes are reclamed by the GC. The second-level dictionary uses test case class as a key and outcome as value. This is used to keep outcomes for inherited test cases. This dictionary is also weak, ensuring that when the class is unloaded or changed, outcomes are reclamed. To reduce a number of weak objects a special TestCaseOutcomeWeakIdentityDictionary is used. It optimizes the most common case when there are no inherited testcases.
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|
vrany
parents: 433
diff changeset
    25
        cls flushRememberedOutcomes
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].
vrany
parents: 433
diff changeset
    38
    outcomes := lastOutcomes. 
vrany
parents: 433
diff changeset
    39
    lastOutcomes := nil.
vrany
parents: 433
diff changeset
    40
    outcomes do:[:outcome|
vrany
parents: 433
diff changeset
    41
        self lastTestRunResultChanged: outcome selector.
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:[
592799735a04 changed: #postAutoload
sr
parents: 430
diff changeset
    59
        pd loadExtensions
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
331
ea59d5e02844 moved: #withStandardOutputAndTranscriptRedirectedDo:
Claus Gittinger <cg@exept.de>
parents: 328
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
331
ea59d5e02844 moved: #withStandardOutputAndTranscriptRedirectedDo:
Claus Gittinger <cg@exept.de>
parents: 328
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
331
ea59d5e02844 moved: #withStandardOutputAndTranscriptRedirectedDo:
Claus Gittinger <cg@exept.de>
parents: 328
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
331
ea59d5e02844 moved: #withStandardOutputAndTranscriptRedirectedDo:
Claus Gittinger <cg@exept.de>
parents: 328
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:[
421
9b8b2a70d775 changed: #allTestSelectors
Claus Gittinger <cg@exept.de>
parents: 420
diff changeset
   100
        pivotClass := self superclass.
328
66cae160c956 added: #withStandardOutputAndTranscriptRedirectedDo:
Claus Gittinger <cg@exept.de>
parents: 326
diff changeset
   101
        lookupRoot := self lookupHierarchyRoot.
66cae160c956 added: #withStandardOutputAndTranscriptRedirectedDo:
Claus Gittinger <cg@exept.de>
parents: 326
diff changeset
   102
        [pivotClass == lookupRoot] whileFalse:[
421
9b8b2a70d775 changed: #allTestSelectors
Claus Gittinger <cg@exept.de>
parents: 420
diff changeset
   103
            answer addAll: pivotClass testSelectors.
328
66cae160c956 added: #withStandardOutputAndTranscriptRedirectedDo:
Claus Gittinger <cg@exept.de>
parents: 326
diff changeset
   104
            pivotClass := pivotClass superclass.
66cae160c956 added: #withStandardOutputAndTranscriptRedirectedDo:
Claus Gittinger <cg@exept.de>
parents: 326
diff changeset
   105
        ]
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:
be4d2b6894b9 class: TestCase
Claus Gittinger <cg@exept.de>
parents: 576
diff changeset
   133
        statePass if all tests passed,
be4d2b6894b9 class: TestCase
Claus Gittinger <cg@exept.de>
parents: 576
diff changeset
   134
        stateError if any error,
be4d2b6894b9 class: TestCase
Claus Gittinger <cg@exept.de>
parents: 576
diff changeset
   135
        stateFail if any fail,
be4d2b6894b9 class: TestCase
Claus Gittinger <cg@exept.de>
parents: 576
diff changeset
   136
     or nil if never run            
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|
578
be4d2b6894b9 class: TestCase
Claus Gittinger <cg@exept.de>
parents: 576
diff changeset
   146
        outcome result == (TestResult stateError) ifTrue:[
be4d2b6894b9 class: TestCase
Claus Gittinger <cg@exept.de>
parents: 576
diff changeset
   147
            ^ TestResult stateError
be4d2b6894b9 class: TestCase
Claus Gittinger <cg@exept.de>
parents: 576
diff changeset
   148
        ].
be4d2b6894b9 class: TestCase
Claus Gittinger <cg@exept.de>
parents: 576
diff changeset
   149
        outcome result == (TestResult stateFail) ifTrue:[
be4d2b6894b9 class: TestCase
Claus Gittinger <cg@exept.de>
parents: 576
diff changeset
   150
            anyFail := true
382
05683696d647 Fixs in remembering test outcomes
vrany
parents: 377
diff changeset
   151
        ].
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
331
ea59d5e02844 moved: #withStandardOutputAndTranscriptRedirectedDo:
Claus Gittinger <cg@exept.de>
parents: 328
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
614
3003097506c9 Refactored remembering of TestCaseOutcomes.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 613
diff changeset
   164
    <resource: #obsolete>
445
874deaef2599 changed:
Claus Gittinger <cg@exept.de>
parents: 435
diff changeset
   165
614
3003097506c9 Refactored remembering of TestCaseOutcomes.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 613
diff changeset
   166
    TestCaseOutcome rememberOutcome: thisOutcome
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
    "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
   169
    "Modified: / 04-06-2012 / 16:19:07 / cg"
614
3003097506c9 Refactored remembering of TestCaseOutcomes.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 613
diff changeset
   170
    "Modified: / 13-07-2014 / 23:28:10 / Jan Vrany <jan.vrany@fit.cvut.cz>"
3003097506c9 Refactored remembering of TestCaseOutcomes.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 613
diff changeset
   171
    "Modified (format): / 14-07-2014 / 21:36: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
   172
!
81
10852410025d *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 73
diff changeset
   173
382
05683696d647 Fixs in remembering test outcomes
vrany
parents: 377
diff changeset
   174
rememberedOutcomeFor: selector
614
3003097506c9 Refactored remembering of TestCaseOutcomes.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 613
diff changeset
   175
    ^ TestCaseOutcome rememberedOutcomeFor: selector in: self.
87
24e88e7f5d88 remember individual failed cases.
Claus Gittinger <cg@exept.de>
parents: 82
diff changeset
   176
382
05683696d647 Fixs in remembering test outcomes
vrany
parents: 377
diff changeset
   177
    "Created: / 20-08-2011 / 14:27:09 / Jan Vrany <jan.vrany@fit.cvut.cz>"
614
3003097506c9 Refactored remembering of TestCaseOutcomes.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 613
diff changeset
   178
    "Modified: / 13-07-2014 / 23:56:25 / Jan Vrany <jan.vrany@fit.cvut.cz>"
3003097506c9 Refactored remembering of TestCaseOutcomes.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 613
diff changeset
   179
    "Modified (comment): / 14-07-2014 / 09:43:49 / 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
   180
!
5a48f282d789 back to 1.42 - last checked in version was bogus
Claus Gittinger <cg@exept.de>
parents: 138
diff changeset
   181
5a48f282d789 back to 1.42 - last checked in version was bogus
Claus Gittinger <cg@exept.de>
parents: 138
diff changeset
   182
resources
5a48f282d789 back to 1.42 - last checked in version was bogus
Claus Gittinger <cg@exept.de>
parents: 138
diff changeset
   183
331
ea59d5e02844 moved: #withStandardOutputAndTranscriptRedirectedDo:
Claus Gittinger <cg@exept.de>
parents: 328
diff changeset
   184
        ^#()
222
8e6f482297fa Jan's 4.1 version
Claus Gittinger <cg@exept.de>
parents: 221
diff changeset
   185
!
8e6f482297fa Jan's 4.1 version
Claus Gittinger <cg@exept.de>
parents: 221
diff changeset
   186
8e6f482297fa Jan's 4.1 version
Claus Gittinger <cg@exept.de>
parents: 221
diff changeset
   187
shouldFork
8e6f482297fa Jan's 4.1 version
Claus Gittinger <cg@exept.de>
parents: 221
diff changeset
   188
8e6f482297fa Jan's 4.1 version
Claus Gittinger <cg@exept.de>
parents: 221
diff changeset
   189
    ^false
8e6f482297fa Jan's 4.1 version
Claus Gittinger <cg@exept.de>
parents: 221
diff changeset
   190
8e6f482297fa Jan's 4.1 version
Claus Gittinger <cg@exept.de>
parents: 221
diff changeset
   191
    "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
   192
!
ad6897ce99e0 Merge SUnit 3.1 changes
Stefan Vogel <sv@exept.de>
parents: 101
diff changeset
   193
139
5a48f282d789 back to 1.42 - last checked in version was bogus
Claus Gittinger <cg@exept.de>
parents: 138
diff changeset
   194
sunitVersion
331
ea59d5e02844 moved: #withStandardOutputAndTranscriptRedirectedDo:
Claus Gittinger <cg@exept.de>
parents: 328
diff changeset
   195
        ^'4.0'
222
8e6f482297fa Jan's 4.1 version
Claus Gittinger <cg@exept.de>
parents: 221
diff changeset
   196
!
8e6f482297fa Jan's 4.1 version
Claus Gittinger <cg@exept.de>
parents: 221
diff changeset
   197
391
fb104ea5136f added: #testSelector:result:
vrany
parents: 390
diff changeset
   198
testSelector:selector result: result
523
dbbf2521cc0c class: TestCase
Claus Gittinger <cg@exept.de>
parents: 489
diff changeset
   199
    "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
   200
614
3003097506c9 Refactored remembering of TestCaseOutcomes.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 613
diff changeset
   201
    "ST/X Specific"
3003097506c9 Refactored remembering of TestCaseOutcomes.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 613
diff changeset
   202
3003097506c9 Refactored remembering of TestCaseOutcomes.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 613
diff changeset
   203
    | outcome |
3003097506c9 Refactored remembering of TestCaseOutcomes.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 613
diff changeset
   204
3003097506c9 Refactored remembering of TestCaseOutcomes.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 613
diff changeset
   205
    outcome := self rememberedOutcomeFor: selector.
3003097506c9 Refactored remembering of TestCaseOutcomes.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 613
diff changeset
   206
    ^ outcome notNil and:[ outcome result == result ]
391
fb104ea5136f added: #testSelector:result:
vrany
parents: 390
diff changeset
   207
fb104ea5136f added: #testSelector:result:
vrany
parents: 390
diff changeset
   208
    "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
   209
    "Modified: / 04-06-2012 / 16:12:17 / cg"
614
3003097506c9 Refactored remembering of TestCaseOutcomes.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 613
diff changeset
   210
    "Modified: / 14-07-2014 / 09:44:13 / Jan Vrany <jan.vrany@fit.cvut.cz>"
391
fb104ea5136f added: #testSelector:result:
vrany
parents: 390
diff changeset
   211
!
fb104ea5136f added: #testSelector:result:
vrany
parents: 390
diff changeset
   212
fb104ea5136f added: #testSelector:result:
vrany
parents: 390
diff changeset
   213
testSelectorError:selector
523
dbbf2521cc0c class: TestCase
Claus Gittinger <cg@exept.de>
parents: 489
diff changeset
   214
    "return true, if the last run of this test failed"
391
fb104ea5136f added: #testSelector:result:
vrany
parents: 390
diff changeset
   215
523
dbbf2521cc0c class: TestCase
Claus Gittinger <cg@exept.de>
parents: 489
diff changeset
   216
    ^self testSelector: selector result: (TestResult stateError)
222
8e6f482297fa Jan's 4.1 version
Claus Gittinger <cg@exept.de>
parents: 221
diff changeset
   217
8e6f482297fa Jan's 4.1 version
Claus Gittinger <cg@exept.de>
parents: 221
diff changeset
   218
    "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
   219
!
5a48f282d789 back to 1.42 - last checked in version was bogus
Claus Gittinger <cg@exept.de>
parents: 138
diff changeset
   220
5a48f282d789 back to 1.42 - last checked in version was bogus
Claus Gittinger <cg@exept.de>
parents: 138
diff changeset
   221
testSelectorFailed:selector
523
dbbf2521cc0c class: TestCase
Claus Gittinger <cg@exept.de>
parents: 489
diff changeset
   222
    "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
   223
523
dbbf2521cc0c class: TestCase
Claus Gittinger <cg@exept.de>
parents: 489
diff changeset
   224
    ^self testSelector: selector result: (TestResult stateFail)
382
05683696d647 Fixs in remembering test outcomes
vrany
parents: 377
diff changeset
   225
391
fb104ea5136f added: #testSelector:result:
vrany
parents: 390
diff changeset
   226
    "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
   227
!
5a48f282d789 back to 1.42 - last checked in version was bogus
Claus Gittinger <cg@exept.de>
parents: 138
diff changeset
   228
222
8e6f482297fa Jan's 4.1 version
Claus Gittinger <cg@exept.de>
parents: 221
diff changeset
   229
testSelectorPassed:selector
523
dbbf2521cc0c class: TestCase
Claus Gittinger <cg@exept.de>
parents: 489
diff changeset
   230
    "return true, if the last run of this test passed"
382
05683696d647 Fixs in remembering test outcomes
vrany
parents: 377
diff changeset
   231
523
dbbf2521cc0c class: TestCase
Claus Gittinger <cg@exept.de>
parents: 489
diff changeset
   232
   ^self testSelector: selector result: (TestResult statePass)
dbbf2521cc0c class: TestCase
Claus Gittinger <cg@exept.de>
parents: 489
diff changeset
   233
dbbf2521cc0c class: TestCase
Claus Gittinger <cg@exept.de>
parents: 489
diff changeset
   234
    "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
   235
!
dbbf2521cc0c class: TestCase
Claus Gittinger <cg@exept.de>
parents: 489
diff changeset
   236
dbbf2521cc0c class: TestCase
Claus Gittinger <cg@exept.de>
parents: 489
diff changeset
   237
testSelectorSkipped:selector
dbbf2521cc0c class: TestCase
Claus Gittinger <cg@exept.de>
parents: 489
diff changeset
   238
    "return true, if the last run of this test was skipped"
dbbf2521cc0c class: TestCase
Claus Gittinger <cg@exept.de>
parents: 489
diff changeset
   239
dbbf2521cc0c class: TestCase
Claus Gittinger <cg@exept.de>
parents: 489
diff changeset
   240
   ^self testSelector: selector result: (TestResult stateSkip)
211
3a40b828ce9a comment/format in: #testSelectors
Claus Gittinger <cg@exept.de>
parents: 209
diff changeset
   241
222
8e6f482297fa Jan's 4.1 version
Claus Gittinger <cg@exept.de>
parents: 221
diff changeset
   242
    "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
   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
!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
   246
5a48f282d789 back to 1.42 - last checked in version was bogus
Claus Gittinger <cg@exept.de>
parents: 138
diff changeset
   247
buildSuite
331
ea59d5e02844 moved: #withStandardOutputAndTranscriptRedirectedDo:
Claus Gittinger <cg@exept.de>
parents: 328
diff changeset
   248
        | suite |
ea59d5e02844 moved: #withStandardOutputAndTranscriptRedirectedDo:
Claus Gittinger <cg@exept.de>
parents: 328
diff changeset
   249
        ^self isAbstract
ea59d5e02844 moved: #withStandardOutputAndTranscriptRedirectedDo:
Claus Gittinger <cg@exept.de>
parents: 328
diff changeset
   250
                ifTrue:
ea59d5e02844 moved: #withStandardOutputAndTranscriptRedirectedDo:
Claus Gittinger <cg@exept.de>
parents: 328
diff changeset
   251
                        [suite := self suiteClass named: self name asString.
ea59d5e02844 moved: #withStandardOutputAndTranscriptRedirectedDo:
Claus Gittinger <cg@exept.de>
parents: 328
diff changeset
   252
                        self allSubclasses
ea59d5e02844 moved: #withStandardOutputAndTranscriptRedirectedDo:
Claus Gittinger <cg@exept.de>
parents: 328
diff changeset
   253
                                do: [:each | each isAbstract ifFalse: [suite addTest: each buildSuiteFromSelectors]].
ea59d5e02844 moved: #withStandardOutputAndTranscriptRedirectedDo:
Claus Gittinger <cg@exept.de>
parents: 328
diff changeset
   254
                        suite]
ea59d5e02844 moved: #withStandardOutputAndTranscriptRedirectedDo:
Claus Gittinger <cg@exept.de>
parents: 328
diff changeset
   255
                ifFalse: [self buildSuiteFromSelectors]
139
5a48f282d789 back to 1.42 - last checked in version was bogus
Claus Gittinger <cg@exept.de>
parents: 138
diff changeset
   256
!
5a48f282d789 back to 1.42 - last checked in version was bogus
Claus Gittinger <cg@exept.de>
parents: 138
diff changeset
   257
5a48f282d789 back to 1.42 - last checked in version was bogus
Claus Gittinger <cg@exept.de>
parents: 138
diff changeset
   258
buildSuiteFromMethods: testMethods
68
9fd111438d60 category renames (lower case)
Claus Gittinger <cg@exept.de>
parents: 67
diff changeset
   259
331
ea59d5e02844 moved: #withStandardOutputAndTranscriptRedirectedDo:
Claus Gittinger <cg@exept.de>
parents: 328
diff changeset
   260
        ^testMethods
ea59d5e02844 moved: #withStandardOutputAndTranscriptRedirectedDo:
Claus Gittinger <cg@exept.de>
parents: 328
diff changeset
   261
                inject: (self suiteClass named: self name asString)
ea59d5e02844 moved: #withStandardOutputAndTranscriptRedirectedDo:
Claus Gittinger <cg@exept.de>
parents: 328
diff changeset
   262
                into: [:suite :selector |
ea59d5e02844 moved: #withStandardOutputAndTranscriptRedirectedDo:
Claus Gittinger <cg@exept.de>
parents: 328
diff changeset
   263
                        suite
ea59d5e02844 moved: #withStandardOutputAndTranscriptRedirectedDo:
Claus Gittinger <cg@exept.de>
parents: 328
diff changeset
   264
                                addTest: (self selector: selector);
ea59d5e02844 moved: #withStandardOutputAndTranscriptRedirectedDo:
Claus Gittinger <cg@exept.de>
parents: 328
diff changeset
   265
                                yourself]
139
5a48f282d789 back to 1.42 - last checked in version was bogus
Claus Gittinger <cg@exept.de>
parents: 138
diff changeset
   266
!
138
90efce9992ea *** empty log message ***
boris
parents: 131
diff changeset
   267
139
5a48f282d789 back to 1.42 - last checked in version was bogus
Claus Gittinger <cg@exept.de>
parents: 138
diff changeset
   268
buildSuiteFromSelectors
331
ea59d5e02844 moved: #withStandardOutputAndTranscriptRedirectedDo:
Claus Gittinger <cg@exept.de>
parents: 328
diff changeset
   269
        ^self buildSuiteFromMethods: self allTestSelectors
68
9fd111438d60 category renames (lower case)
Claus Gittinger <cg@exept.de>
parents: 67
diff changeset
   270
!
9fd111438d60 category renames (lower case)
Claus Gittinger <cg@exept.de>
parents: 67
diff changeset
   271
139
5a48f282d789 back to 1.42 - last checked in version was bogus
Claus Gittinger <cg@exept.de>
parents: 138
diff changeset
   272
suiteClass
331
ea59d5e02844 moved: #withStandardOutputAndTranscriptRedirectedDo:
Claus Gittinger <cg@exept.de>
parents: 328
diff changeset
   273
        ^TestSuite
68
9fd111438d60 category renames (lower case)
Claus Gittinger <cg@exept.de>
parents: 67
diff changeset
   274
! !
9fd111438d60 category renames (lower case)
Claus Gittinger <cg@exept.de>
parents: 67
diff changeset
   275
203
ca0c9f44ee72 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 200
diff changeset
   276
!TestCase class methodsFor:'misc ui support'!
ca0c9f44ee72 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 200
diff changeset
   277
ca0c9f44ee72 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 200
diff changeset
   278
iconInBrowserSymbol
ca0c9f44ee72 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 200
diff changeset
   279
    <resource: #programImage>
ca0c9f44ee72 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 200
diff changeset
   280
205
2236d74e0703 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 203
diff changeset
   281
    |lastResult|
2236d74e0703 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 203
diff changeset
   282
203
ca0c9f44ee72 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 200
diff changeset
   283
    self theNonMetaclass isAbstract ifTrue:[^ super iconInBrowserSymbol].
205
2236d74e0703 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 203
diff changeset
   284
2236d74e0703 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 203
diff changeset
   285
    lastResult := self lastTestRunResultOrNil.
578
be4d2b6894b9 class: TestCase
Claus Gittinger <cg@exept.de>
parents: 576
diff changeset
   286
    lastResult notNil ifTrue:[
be4d2b6894b9 class: TestCase
Claus Gittinger <cg@exept.de>
parents: 576
diff changeset
   287
        lastResult == TestResult statePass ifTrue:[
be4d2b6894b9 class: TestCase
Claus Gittinger <cg@exept.de>
parents: 576
diff changeset
   288
            ^ #testCasePassedIcon
be4d2b6894b9 class: TestCase
Claus Gittinger <cg@exept.de>
parents: 576
diff changeset
   289
        ].
be4d2b6894b9 class: TestCase
Claus Gittinger <cg@exept.de>
parents: 576
diff changeset
   290
        lastResult == TestResult stateFail ifTrue:[
be4d2b6894b9 class: TestCase
Claus Gittinger <cg@exept.de>
parents: 576
diff changeset
   291
            ^ #testCaseFailedIcon
be4d2b6894b9 class: TestCase
Claus Gittinger <cg@exept.de>
parents: 576
diff changeset
   292
        ].
be4d2b6894b9 class: TestCase
Claus Gittinger <cg@exept.de>
parents: 576
diff changeset
   293
        lastResult == TestResult stateError ifTrue:[
be4d2b6894b9 class: TestCase
Claus Gittinger <cg@exept.de>
parents: 576
diff changeset
   294
            ^ #testCaseErrorIcon
be4d2b6894b9 class: TestCase
Claus Gittinger <cg@exept.de>
parents: 576
diff changeset
   295
        ].
205
2236d74e0703 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 203
diff changeset
   296
    ].
203
ca0c9f44ee72 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 200
diff changeset
   297
    ^ #testCaseClassIcon
ca0c9f44ee72 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 200
diff changeset
   298
! !
ca0c9f44ee72 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 200
diff changeset
   299
222
8e6f482297fa Jan's 4.1 version
Claus Gittinger <cg@exept.de>
parents: 221
diff changeset
   300
!TestCase class methodsFor:'private'!
8e6f482297fa Jan's 4.1 version
Claus Gittinger <cg@exept.de>
parents: 221
diff changeset
   301
8e6f482297fa Jan's 4.1 version
Claus Gittinger <cg@exept.de>
parents: 221
diff changeset
   302
addSelector: selector to: collection
8e6f482297fa Jan's 4.1 version
Claus Gittinger <cg@exept.de>
parents: 221
diff changeset
   303
8e6f482297fa Jan's 4.1 version
Claus Gittinger <cg@exept.de>
parents: 221
diff changeset
   304
    "Adds given selector from collection. Answers
8e6f482297fa Jan's 4.1 version
Claus Gittinger <cg@exept.de>
parents: 221
diff changeset
   305
     true iff selector was really added"
8e6f482297fa Jan's 4.1 version
Claus Gittinger <cg@exept.de>
parents: 221
diff changeset
   306
8e6f482297fa Jan's 4.1 version
Claus Gittinger <cg@exept.de>
parents: 221
diff changeset
   307
    ^(collection includes: selector)
331
ea59d5e02844 moved: #withStandardOutputAndTranscriptRedirectedDo:
Claus Gittinger <cg@exept.de>
parents: 328
diff changeset
   308
        ifTrue:[false]
ea59d5e02844 moved: #withStandardOutputAndTranscriptRedirectedDo:
Claus Gittinger <cg@exept.de>
parents: 328
diff changeset
   309
        ifFalse:[collection add: selector. true]
222
8e6f482297fa Jan's 4.1 version
Claus Gittinger <cg@exept.de>
parents: 221
diff changeset
   310
8e6f482297fa Jan's 4.1 version
Claus Gittinger <cg@exept.de>
parents: 221
diff changeset
   311
    "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
   312
    "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
   313
!
8e6f482297fa Jan's 4.1 version
Claus Gittinger <cg@exept.de>
parents: 221
diff changeset
   314
8e6f482297fa Jan's 4.1 version
Claus Gittinger <cg@exept.de>
parents: 221
diff changeset
   315
lastTestRunResultChanged: selector
8e6f482297fa Jan's 4.1 version
Claus Gittinger <cg@exept.de>
parents: 221
diff changeset
   316
8e6f482297fa Jan's 4.1 version
Claus Gittinger <cg@exept.de>
parents: 221
diff changeset
   317
    Smalltalk changed:#lastTestRunResult with:(Array with:self with:selector).
8e6f482297fa Jan's 4.1 version
Claus Gittinger <cg@exept.de>
parents: 221
diff changeset
   318
    self changed:#lastTestRunResult with:selector.
8e6f482297fa Jan's 4.1 version
Claus Gittinger <cg@exept.de>
parents: 221
diff changeset
   319
8e6f482297fa Jan's 4.1 version
Claus Gittinger <cg@exept.de>
parents: 221
diff changeset
   320
    "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
   321
!
8e6f482297fa Jan's 4.1 version
Claus Gittinger <cg@exept.de>
parents: 221
diff changeset
   322
8e6f482297fa Jan's 4.1 version
Claus Gittinger <cg@exept.de>
parents: 221
diff changeset
   323
testSelectors
331
ea59d5e02844 moved: #withStandardOutputAndTranscriptRedirectedDo:
Claus Gittinger <cg@exept.de>
parents: 328
diff changeset
   324
        "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
   325
331
ea59d5e02844 moved: #withStandardOutputAndTranscriptRedirectedDo:
Claus Gittinger <cg@exept.de>
parents: 328
diff changeset
   326
        ^self sunitSelectors select: [:each | 'test*' sunitMatch: each]
222
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
417
Claus Gittinger <cg@exept.de>
parents: 391
diff changeset
   329
!TestCase class methodsFor:'queries'!
Claus Gittinger <cg@exept.de>
parents: 391
diff changeset
   330
Claus Gittinger <cg@exept.de>
parents: 391
diff changeset
   331
coveredClassNames
Claus Gittinger <cg@exept.de>
parents: 391
diff changeset
   332
    "should be redefined to return a collection of classes which are tested by
Claus Gittinger <cg@exept.de>
parents: 391
diff changeset
   333
     this suite/case. These classes can be instrumented for coverage analysis,
Claus Gittinger <cg@exept.de>
parents: 391
diff changeset
   334
     before running the suite"
Claus Gittinger <cg@exept.de>
parents: 391
diff changeset
   335
Claus Gittinger <cg@exept.de>
parents: 391
diff changeset
   336
    ^ #()
Claus Gittinger <cg@exept.de>
parents: 391
diff changeset
   337
Claus Gittinger <cg@exept.de>
parents: 391
diff changeset
   338
    "Created: / 06-07-2011 / 21:27:03 / cg"
Claus Gittinger <cg@exept.de>
parents: 391
diff changeset
   339
!
Claus Gittinger <cg@exept.de>
parents: 391
diff changeset
   340
Claus Gittinger <cg@exept.de>
parents: 391
diff changeset
   341
coveredClasses
Claus Gittinger <cg@exept.de>
parents: 391
diff changeset
   342
    "return a collection of classes which are tested by this suite/case. 
Claus Gittinger <cg@exept.de>
parents: 391
diff changeset
   343
     These classes can be instrumented for coverage analysis,
Claus Gittinger <cg@exept.de>
parents: 391
diff changeset
   344
     before running the suite"
Claus Gittinger <cg@exept.de>
parents: 391
diff changeset
   345
Claus Gittinger <cg@exept.de>
parents: 391
diff changeset
   346
    ^ self coveredClassNames collect:[:each | Smalltalk classNamed:each]
Claus Gittinger <cg@exept.de>
parents: 391
diff changeset
   347
Claus Gittinger <cg@exept.de>
parents: 391
diff changeset
   348
    "Created: / 04-07-2011 / 18:16:08 / cg"
Claus Gittinger <cg@exept.de>
parents: 391
diff changeset
   349
! !
Claus Gittinger <cg@exept.de>
parents: 391
diff changeset
   350
197
f44d22a08808 quick tests
Claus Gittinger <cg@exept.de>
parents: 194
diff changeset
   351
!TestCase class methodsFor:'quick testing'!
f44d22a08808 quick tests
Claus Gittinger <cg@exept.de>
parents: 194
diff changeset
   352
f44d22a08808 quick tests
Claus Gittinger <cg@exept.de>
parents: 194
diff changeset
   353
assert: aBoolean
f44d22a08808 quick tests
Claus Gittinger <cg@exept.de>
parents: 194
diff changeset
   354
    ^ self new assert: aBoolean
f44d22a08808 quick tests
Claus Gittinger <cg@exept.de>
parents: 194
diff changeset
   355
f44d22a08808 quick tests
Claus Gittinger <cg@exept.de>
parents: 194
diff changeset
   356
    "
f44d22a08808 quick tests
Claus Gittinger <cg@exept.de>
parents: 194
diff changeset
   357
     TestCase assert: true
f44d22a08808 quick tests
Claus Gittinger <cg@exept.de>
parents: 194
diff changeset
   358
    "
f44d22a08808 quick tests
Claus Gittinger <cg@exept.de>
parents: 194
diff changeset
   359
!
f44d22a08808 quick tests
Claus Gittinger <cg@exept.de>
parents: 194
diff changeset
   360
f44d22a08808 quick tests
Claus Gittinger <cg@exept.de>
parents: 194
diff changeset
   361
should: aBlock raise: anError
f44d22a08808 quick tests
Claus Gittinger <cg@exept.de>
parents: 194
diff changeset
   362
    ^ self new should: aBlock raise: anError
f44d22a08808 quick tests
Claus Gittinger <cg@exept.de>
parents: 194
diff changeset
   363
f44d22a08808 quick tests
Claus Gittinger <cg@exept.de>
parents: 194
diff changeset
   364
    "
f44d22a08808 quick tests
Claus Gittinger <cg@exept.de>
parents: 194
diff changeset
   365
     TestCase should:[ self error ] raise: Error
587
570faa368e0d class: TestCase
Stefan Vogel <sv@exept.de>
parents: 578
diff changeset
   366
     TestCase should:[ 22 ] raise: Error
197
f44d22a08808 quick tests
Claus Gittinger <cg@exept.de>
parents: 194
diff changeset
   367
    "
f44d22a08808 quick tests
Claus Gittinger <cg@exept.de>
parents: 194
diff changeset
   368
! !
f44d22a08808 quick tests
Claus Gittinger <cg@exept.de>
parents: 194
diff changeset
   369
139
5a48f282d789 back to 1.42 - last checked in version was bogus
Claus Gittinger <cg@exept.de>
parents: 138
diff changeset
   370
!TestCase class methodsFor:'testing'!
103
ad6897ce99e0 Merge SUnit 3.1 changes
Stefan Vogel <sv@exept.de>
parents: 101
diff changeset
   371
139
5a48f282d789 back to 1.42 - last checked in version was bogus
Claus Gittinger <cg@exept.de>
parents: 138
diff changeset
   372
isAbstract
326
4732cd296e5f added: #postAutoload
Stefan Vogel <sv@exept.de>
parents: 305
diff changeset
   373
        "Override to true if a TestCase subclass is Abstract and should not have
4732cd296e5f added: #postAutoload
Stefan Vogel <sv@exept.de>
parents: 305
diff changeset
   374
        TestCase instances built from it"
222
8e6f482297fa Jan's 4.1 version
Claus Gittinger <cg@exept.de>
parents: 221
diff changeset
   375
326
4732cd296e5f added: #postAutoload
Stefan Vogel <sv@exept.de>
parents: 305
diff changeset
   376
        ^self sunitName = #TestCase
222
8e6f482297fa Jan's 4.1 version
Claus Gittinger <cg@exept.de>
parents: 221
diff changeset
   377
!
8e6f482297fa Jan's 4.1 version
Claus Gittinger <cg@exept.de>
parents: 221
diff changeset
   378
8e6f482297fa Jan's 4.1 version
Claus Gittinger <cg@exept.de>
parents: 221
diff changeset
   379
isTestCaseLike
8e6f482297fa Jan's 4.1 version
Claus Gittinger <cg@exept.de>
parents: 221
diff changeset
   380
8e6f482297fa Jan's 4.1 version
Claus Gittinger <cg@exept.de>
parents: 221
diff changeset
   381
    ^true
8e6f482297fa Jan's 4.1 version
Claus Gittinger <cg@exept.de>
parents: 221
diff changeset
   382
8e6f482297fa Jan's 4.1 version
Claus Gittinger <cg@exept.de>
parents: 221
diff changeset
   383
    "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
   384
!
103
ad6897ce99e0 Merge SUnit 3.1 changes
Stefan Vogel <sv@exept.de>
parents: 101
diff changeset
   385
139
5a48f282d789 back to 1.42 - last checked in version was bogus
Claus Gittinger <cg@exept.de>
parents: 138
diff changeset
   386
rememberResult:result
382
05683696d647 Fixs in remembering test outcomes
vrany
parents: 377
diff changeset
   387
05683696d647 Fixs in remembering test outcomes
vrany
parents: 377
diff changeset
   388
    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
   389
5a48f282d789 back to 1.42 - last checked in version was bogus
Claus Gittinger <cg@exept.de>
parents: 138
diff changeset
   390
    "Created: / 05-08-2006 / 12:33:08 / cg"
382
05683696d647 Fixs in remembering test outcomes
vrany
parents: 377
diff changeset
   391
    "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
   392
!
5a48f282d789 back to 1.42 - last checked in version was bogus
Claus Gittinger <cg@exept.de>
parents: 138
diff changeset
   393
5a48f282d789 back to 1.42 - last checked in version was bogus
Claus Gittinger <cg@exept.de>
parents: 138
diff changeset
   394
runTests
5a48f282d789 back to 1.42 - last checked in version was bogus
Claus Gittinger <cg@exept.de>
parents: 138
diff changeset
   395
391
fb104ea5136f added: #testSelector:result:
vrany
parents: 390
diff changeset
   396
    ^self suite run
139
5a48f282d789 back to 1.42 - last checked in version was bogus
Claus Gittinger <cg@exept.de>
parents: 138
diff changeset
   397
265
125e4f132d46 remember execution time (needed to generate prober reports)
Claus Gittinger <cg@exept.de>
parents: 262
diff changeset
   398
    "Modified: / 30-07-2011 / 09:26:11 / cg"
391
fb104ea5136f added: #testSelector:result:
vrany
parents: 390
diff changeset
   399
    "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
   400
!
5a48f282d789 back to 1.42 - last checked in version was bogus
Claus Gittinger <cg@exept.de>
parents: 138
diff changeset
   401
5a48f282d789 back to 1.42 - last checked in version was bogus
Claus Gittinger <cg@exept.de>
parents: 138
diff changeset
   402
shouldInheritSelectors
331
ea59d5e02844 moved: #withStandardOutputAndTranscriptRedirectedDo:
Claus Gittinger <cg@exept.de>
parents: 328
diff changeset
   403
        "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
   404
331
ea59d5e02844 moved: #withStandardOutputAndTranscriptRedirectedDo:
Claus Gittinger <cg@exept.de>
parents: 328
diff changeset
   405
        ^self ~~ self lookupHierarchyRoot
ea59d5e02844 moved: #withStandardOutputAndTranscriptRedirectedDo:
Claus Gittinger <cg@exept.de>
parents: 328
diff changeset
   406
                and: [self superclass isAbstract
ea59d5e02844 moved: #withStandardOutputAndTranscriptRedirectedDo:
Claus Gittinger <cg@exept.de>
parents: 328
diff changeset
   407
                        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
   408
! !
5a48f282d789 back to 1.42 - last checked in version was bogus
Claus Gittinger <cg@exept.de>
parents: 138
diff changeset
   409
5a48f282d789 back to 1.42 - last checked in version was bogus
Claus Gittinger <cg@exept.de>
parents: 138
diff changeset
   410
!TestCase methodsFor:'accessing'!
5a48f282d789 back to 1.42 - last checked in version was bogus
Claus Gittinger <cg@exept.de>
parents: 138
diff changeset
   411
5a48f282d789 back to 1.42 - last checked in version was bogus
Claus Gittinger <cg@exept.de>
parents: 138
diff changeset
   412
resources
331
ea59d5e02844 moved: #withStandardOutputAndTranscriptRedirectedDo:
Claus Gittinger <cg@exept.de>
parents: 328
diff changeset
   413
        "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
   414
331
ea59d5e02844 moved: #withStandardOutputAndTranscriptRedirectedDo:
Claus Gittinger <cg@exept.de>
parents: 328
diff changeset
   415
        ^self class resources
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
selector
331
ea59d5e02844 moved: #withStandardOutputAndTranscriptRedirectedDo:
Claus Gittinger <cg@exept.de>
parents: 328
diff changeset
   419
        ^testSelector
222
8e6f482297fa Jan's 4.1 version
Claus Gittinger <cg@exept.de>
parents: 221
diff changeset
   420
!
8e6f482297fa Jan's 4.1 version
Claus Gittinger <cg@exept.de>
parents: 221
diff changeset
   421
8e6f482297fa Jan's 4.1 version
Claus Gittinger <cg@exept.de>
parents: 221
diff changeset
   422
shouldFork
8e6f482297fa Jan's 4.1 version
Claus Gittinger <cg@exept.de>
parents: 221
diff changeset
   423
8e6f482297fa Jan's 4.1 version
Claus Gittinger <cg@exept.de>
parents: 221
diff changeset
   424
    ^self class shouldFork
8e6f482297fa Jan's 4.1 version
Claus Gittinger <cg@exept.de>
parents: 221
diff changeset
   425
8e6f482297fa Jan's 4.1 version
Claus Gittinger <cg@exept.de>
parents: 221
diff changeset
   426
    "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
   427
!
f532271f8daa added testCount to TestCase & TestSuite
vrany
parents: 296
diff changeset
   428
529
6bcbe6998b73 added: #shouldSkip
vrany
parents: 524
diff changeset
   429
shouldSkip
6bcbe6998b73 added: #shouldSkip
vrany
parents: 524
diff changeset
   430
    "Returns true, if this testcase should be skipped when a testsuite is run.
6bcbe6998b73 added: #shouldSkip
vrany
parents: 524
diff changeset
   431
     This inly a hint, a test runner is not obliged to respect return value.
6bcbe6998b73 added: #shouldSkip
vrany
parents: 524
diff changeset
   432
6bcbe6998b73 added: #shouldSkip
vrany
parents: 524
diff changeset
   433
     Currently, the only user is stx/goodies/builder/reports"
6bcbe6998b73 added: #shouldSkip
vrany
parents: 524
diff changeset
   434
6bcbe6998b73 added: #shouldSkip
vrany
parents: 524
diff changeset
   435
    | method |
6bcbe6998b73 added: #shouldSkip
vrany
parents: 524
diff changeset
   436
    method := self class lookupMethodFor: testSelector.
6bcbe6998b73 added: #shouldSkip
vrany
parents: 524
diff changeset
   437
    method annotationsAt:#ignore orAt: #skip do:[:annotation|
6bcbe6998b73 added: #shouldSkip
vrany
parents: 524
diff changeset
   438
         ^true
6bcbe6998b73 added: #shouldSkip
vrany
parents: 524
diff changeset
   439
    ].
6bcbe6998b73 added: #shouldSkip
vrany
parents: 524
diff changeset
   440
    ^false
6bcbe6998b73 added: #shouldSkip
vrany
parents: 524
diff changeset
   441
6bcbe6998b73 added: #shouldSkip
vrany
parents: 524
diff changeset
   442
    "Created: / 28-11-2012 / 18:03:29 / Jan Vrany <jan.vrany@fit.cvut.cz>"
6bcbe6998b73 added: #shouldSkip
vrany
parents: 524
diff changeset
   443
!
6bcbe6998b73 added: #shouldSkip
vrany
parents: 524
diff changeset
   444
305
f532271f8daa added testCount to TestCase & TestSuite
vrany
parents: 296
diff changeset
   445
testCount
f532271f8daa added testCount to TestCase & TestSuite
vrany
parents: 296
diff changeset
   446
f532271f8daa added testCount to TestCase & TestSuite
vrany
parents: 296
diff changeset
   447
    ^1
f532271f8daa added testCount to TestCase & TestSuite
vrany
parents: 296
diff changeset
   448
f532271f8daa added testCount to TestCase & TestSuite
vrany
parents: 296
diff changeset
   449
    "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
   450
! !
5a48f282d789 back to 1.42 - last checked in version was bogus
Claus Gittinger <cg@exept.de>
parents: 138
diff changeset
   451
5a48f282d789 back to 1.42 - last checked in version was bogus
Claus Gittinger <cg@exept.de>
parents: 138
diff changeset
   452
!TestCase methodsFor:'accessing & queries'!
5a48f282d789 back to 1.42 - last checked in version was bogus
Claus Gittinger <cg@exept.de>
parents: 138
diff changeset
   453
5a48f282d789 back to 1.42 - last checked in version was bogus
Claus Gittinger <cg@exept.de>
parents: 138
diff changeset
   454
unfinished
5a48f282d789 back to 1.42 - last checked in version was bogus
Claus Gittinger <cg@exept.de>
parents: 138
diff changeset
   455
331
ea59d5e02844 moved: #withStandardOutputAndTranscriptRedirectedDo:
Claus Gittinger <cg@exept.de>
parents: 328
diff changeset
   456
        "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
   457
! !
97
1f7ff8664715 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 95
diff changeset
   458
1f7ff8664715 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 95
diff changeset
   459
!TestCase methodsFor:'assertions'!
66
31ae5b8fc382 category rename
Claus Gittinger <cg@exept.de>
parents: 65
diff changeset
   460
139
5a48f282d789 back to 1.42 - last checked in version was bogus
Claus Gittinger <cg@exept.de>
parents: 138
diff changeset
   461
assert:aBlock completesInSeconds:aNumber
5a48f282d789 back to 1.42 - last checked in version was bogus
Claus Gittinger <cg@exept.de>
parents: 138
diff changeset
   462
    "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
   463
179
caba0f640d13 context skipping in debugger generalized
Claus Gittinger <cg@exept.de>
parents: 174
diff changeset
   464
    <resource: #skipInDebuggersWalkBack>
caba0f640d13 context skipping in debugger generalized
Claus Gittinger <cg@exept.de>
parents: 174
diff changeset
   465
139
5a48f282d789 back to 1.42 - last checked in version was bogus
Claus Gittinger <cg@exept.de>
parents: 138
diff changeset
   466
    |done process semaphore|
5a48f282d789 back to 1.42 - last checked in version was bogus
Claus Gittinger <cg@exept.de>
parents: 138
diff changeset
   467
5a48f282d789 back to 1.42 - last checked in version was bogus
Claus Gittinger <cg@exept.de>
parents: 138
diff changeset
   468
    done := false.
5a48f282d789 back to 1.42 - last checked in version was bogus
Claus Gittinger <cg@exept.de>
parents: 138
diff changeset
   469
    semaphore := Semaphore new.
174
3fff3dede568 #assert:completedInSeconds:
Stefan Vogel <sv@exept.de>
parents: 139
diff changeset
   470
    process := [
331
ea59d5e02844 moved: #withStandardOutputAndTranscriptRedirectedDo:
Claus Gittinger <cg@exept.de>
parents: 328
diff changeset
   471
        aBlock value.
ea59d5e02844 moved: #withStandardOutputAndTranscriptRedirectedDo:
Claus Gittinger <cg@exept.de>
parents: 328
diff changeset
   472
        done := true.
ea59d5e02844 moved: #withStandardOutputAndTranscriptRedirectedDo:
Claus Gittinger <cg@exept.de>
parents: 328
diff changeset
   473
        semaphore signal
139
5a48f282d789 back to 1.42 - last checked in version was bogus
Claus Gittinger <cg@exept.de>
parents: 138
diff changeset
   474
    ] fork.
5a48f282d789 back to 1.42 - last checked in version was bogus
Claus Gittinger <cg@exept.de>
parents: 138
diff changeset
   475
    semaphore waitWithTimeout: aNumber.
5a48f282d789 back to 1.42 - last checked in version was bogus
Claus Gittinger <cg@exept.de>
parents: 138
diff changeset
   476
    process terminate.
222
8e6f482297fa Jan's 4.1 version
Claus Gittinger <cg@exept.de>
parents: 221
diff changeset
   477
    self assert: done
139
5a48f282d789 back to 1.42 - last checked in version was bogus
Claus Gittinger <cg@exept.de>
parents: 138
diff changeset
   478
5a48f282d789 back to 1.42 - last checked in version was bogus
Claus Gittinger <cg@exept.de>
parents: 138
diff changeset
   479
    "
5a48f282d789 back to 1.42 - last checked in version was bogus
Claus Gittinger <cg@exept.de>
parents: 138
diff changeset
   480
     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
   481
    "
5a48f282d789 back to 1.42 - last checked in version was bogus
Claus Gittinger <cg@exept.de>
parents: 138
diff changeset
   482
    "
5a48f282d789 back to 1.42 - last checked in version was bogus
Claus Gittinger <cg@exept.de>
parents: 138
diff changeset
   483
     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
   484
    "
5a48f282d789 back to 1.42 - last checked in version was bogus
Claus Gittinger <cg@exept.de>
parents: 138
diff changeset
   485
!
5a48f282d789 back to 1.42 - last checked in version was bogus
Claus Gittinger <cg@exept.de>
parents: 138
diff changeset
   486
222
8e6f482297fa Jan's 4.1 version
Claus Gittinger <cg@exept.de>
parents: 221
diff changeset
   487
assert: aBoolean message:messageIfFailing
531
13776d5be378 class: TestCase
vrany
parents: 529
diff changeset
   488
     <resource: #skipInDebuggersWalkBack>
139
5a48f282d789 back to 1.42 - last checked in version was bogus
Claus Gittinger <cg@exept.de>
parents: 138
diff changeset
   489
222
8e6f482297fa Jan's 4.1 version
Claus Gittinger <cg@exept.de>
parents: 221
diff changeset
   490
    ^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
   491
531
13776d5be378 class: TestCase
vrany
parents: 529
diff changeset
   492
    "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
   493
!
5a48f282d789 back to 1.42 - last checked in version was bogus
Claus Gittinger <cg@exept.de>
parents: 138
diff changeset
   494
5a48f282d789 back to 1.42 - last checked in version was bogus
Claus Gittinger <cg@exept.de>
parents: 138
diff changeset
   495
assertFalse:aBoolean
179
caba0f640d13 context skipping in debugger generalized
Claus Gittinger <cg@exept.de>
parents: 174
diff changeset
   496
    <resource: #skipInDebuggersWalkBack>
caba0f640d13 context skipping in debugger generalized
Claus Gittinger <cg@exept.de>
parents: 174
diff changeset
   497
139
5a48f282d789 back to 1.42 - last checked in version was bogus
Claus Gittinger <cg@exept.de>
parents: 138
diff changeset
   498
    ^ self assert:aBoolean not
5a48f282d789 back to 1.42 - last checked in version was bogus
Claus Gittinger <cg@exept.de>
parents: 138
diff changeset
   499
!
5a48f282d789 back to 1.42 - last checked in version was bogus
Claus Gittinger <cg@exept.de>
parents: 138
diff changeset
   500
5a48f282d789 back to 1.42 - last checked in version was bogus
Claus Gittinger <cg@exept.de>
parents: 138
diff changeset
   501
assertFalse:aBoolean named:testName
179
caba0f640d13 context skipping in debugger generalized
Claus Gittinger <cg@exept.de>
parents: 174
diff changeset
   502
    <resource: #skipInDebuggersWalkBack>
caba0f640d13 context skipping in debugger generalized
Claus Gittinger <cg@exept.de>
parents: 174
diff changeset
   503
139
5a48f282d789 back to 1.42 - last checked in version was bogus
Claus Gittinger <cg@exept.de>
parents: 138
diff changeset
   504
    ^ self assert:aBoolean not
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
222
8e6f482297fa Jan's 4.1 version
Claus Gittinger <cg@exept.de>
parents: 221
diff changeset
   507
assertTrue:aBoolean
179
caba0f640d13 context skipping in debugger generalized
Claus Gittinger <cg@exept.de>
parents: 174
diff changeset
   508
    <resource: #skipInDebuggersWalkBack>
caba0f640d13 context skipping in debugger generalized
Claus Gittinger <cg@exept.de>
parents: 174
diff changeset
   509
139
5a48f282d789 back to 1.42 - last checked in version was bogus
Claus Gittinger <cg@exept.de>
parents: 138
diff changeset
   510
    ^ self assert:aBoolean
5a48f282d789 back to 1.42 - last checked in version was bogus
Claus Gittinger <cg@exept.de>
parents: 138
diff changeset
   511
!
5a48f282d789 back to 1.42 - last checked in version was bogus
Claus Gittinger <cg@exept.de>
parents: 138
diff changeset
   512
5a48f282d789 back to 1.42 - last checked in version was bogus
Claus Gittinger <cg@exept.de>
parents: 138
diff changeset
   513
assertTrue:aBoolean named:testName
179
caba0f640d13 context skipping in debugger generalized
Claus Gittinger <cg@exept.de>
parents: 174
diff changeset
   514
    <resource: #skipInDebuggersWalkBack>
caba0f640d13 context skipping in debugger generalized
Claus Gittinger <cg@exept.de>
parents: 174
diff changeset
   515
139
5a48f282d789 back to 1.42 - last checked in version was bogus
Claus Gittinger <cg@exept.de>
parents: 138
diff changeset
   516
    ^ self assert:aBoolean
66
31ae5b8fc382 category rename
Claus Gittinger <cg@exept.de>
parents: 65
diff changeset
   517
! !
31ae5b8fc382 category rename
Claus Gittinger <cg@exept.de>
parents: 65
diff changeset
   518
139
5a48f282d789 back to 1.42 - last checked in version was bogus
Claus Gittinger <cg@exept.de>
parents: 138
diff changeset
   519
!TestCase methodsFor:'dependencies'!
5a48f282d789 back to 1.42 - last checked in version was bogus
Claus Gittinger <cg@exept.de>
parents: 138
diff changeset
   520
222
8e6f482297fa Jan's 4.1 version
Claus Gittinger <cg@exept.de>
parents: 221
diff changeset
   521
addDependentToHierachy: anObject
331
ea59d5e02844 moved: #withStandardOutputAndTranscriptRedirectedDo:
Claus Gittinger <cg@exept.de>
parents: 328
diff changeset
   522
        "an empty method. for Composite compability with TestSuite"
222
8e6f482297fa Jan's 4.1 version
Claus Gittinger <cg@exept.de>
parents: 221
diff changeset
   523
!
139
5a48f282d789 back to 1.42 - last checked in version was bogus
Claus Gittinger <cg@exept.de>
parents: 138
diff changeset
   524
222
8e6f482297fa Jan's 4.1 version
Claus Gittinger <cg@exept.de>
parents: 221
diff changeset
   525
removeDependentFromHierachy: anObject
331
ea59d5e02844 moved: #withStandardOutputAndTranscriptRedirectedDo:
Claus Gittinger <cg@exept.de>
parents: 328
diff changeset
   526
        "an empty method. for Composite compability with TestSuite"
222
8e6f482297fa Jan's 4.1 version
Claus Gittinger <cg@exept.de>
parents: 221
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
222
8e6f482297fa Jan's 4.1 version
Claus Gittinger <cg@exept.de>
parents: 221
diff changeset
   529
!TestCase methodsFor:'deprecated'!
8e6f482297fa Jan's 4.1 version
Claus Gittinger <cg@exept.de>
parents: 221
diff changeset
   530
8e6f482297fa Jan's 4.1 version
Claus Gittinger <cg@exept.de>
parents: 221
diff changeset
   531
should: aBlock
331
ea59d5e02844 moved: #withStandardOutputAndTranscriptRedirectedDo:
Claus Gittinger <cg@exept.de>
parents: 328
diff changeset
   532
        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
   533
!
5a48f282d789 back to 1.42 - last checked in version was bogus
Claus Gittinger <cg@exept.de>
parents: 138
diff changeset
   534
222
8e6f482297fa Jan's 4.1 version
Claus Gittinger <cg@exept.de>
parents: 221
diff changeset
   535
should: aBlock description: aString
331
ea59d5e02844 moved: #withStandardOutputAndTranscriptRedirectedDo:
Claus Gittinger <cg@exept.de>
parents: 328
diff changeset
   536
        self assert: aBlock value description: aString
222
8e6f482297fa Jan's 4.1 version
Claus Gittinger <cg@exept.de>
parents: 221
diff changeset
   537
!
139
5a48f282d789 back to 1.42 - last checked in version was bogus
Claus Gittinger <cg@exept.de>
parents: 138
diff changeset
   538
222
8e6f482297fa Jan's 4.1 version
Claus Gittinger <cg@exept.de>
parents: 221
diff changeset
   539
shouldnt: aBlock
331
ea59d5e02844 moved: #withStandardOutputAndTranscriptRedirectedDo:
Claus Gittinger <cg@exept.de>
parents: 328
diff changeset
   540
        self deny: aBlock value
222
8e6f482297fa Jan's 4.1 version
Claus Gittinger <cg@exept.de>
parents: 221
diff changeset
   541
!
139
5a48f282d789 back to 1.42 - last checked in version was bogus
Claus Gittinger <cg@exept.de>
parents: 138
diff changeset
   542
222
8e6f482297fa Jan's 4.1 version
Claus Gittinger <cg@exept.de>
parents: 221
diff changeset
   543
shouldnt: aBlock description: aString
331
ea59d5e02844 moved: #withStandardOutputAndTranscriptRedirectedDo:
Claus Gittinger <cg@exept.de>
parents: 328
diff changeset
   544
        self deny: aBlock value description: aString
222
8e6f482297fa Jan's 4.1 version
Claus Gittinger <cg@exept.de>
parents: 221
diff changeset
   545
!
8e6f482297fa Jan's 4.1 version
Claus Gittinger <cg@exept.de>
parents: 221
diff changeset
   546
8e6f482297fa Jan's 4.1 version
Claus Gittinger <cg@exept.de>
parents: 221
diff changeset
   547
signalFailure: aString
331
ea59d5e02844 moved: #withStandardOutputAndTranscriptRedirectedDo:
Claus Gittinger <cg@exept.de>
parents: 328
diff changeset
   548
        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
   549
! !
67
7861684195ec category rename
Claus Gittinger <cg@exept.de>
parents: 66
diff changeset
   550
7861684195ec category rename
Claus Gittinger <cg@exept.de>
parents: 66
diff changeset
   551
!TestCase methodsFor:'printing'!
7861684195ec category rename
Claus Gittinger <cg@exept.de>
parents: 66
diff changeset
   552
222
8e6f482297fa Jan's 4.1 version
Claus Gittinger <cg@exept.de>
parents: 221
diff changeset
   553
getTestName
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
    ^testSelector.
8e6f482297fa Jan's 4.1 version
Claus Gittinger <cg@exept.de>
parents: 221
diff changeset
   556
8e6f482297fa Jan's 4.1 version
Claus Gittinger <cg@exept.de>
parents: 221
diff changeset
   557
    "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
   558
!
8e6f482297fa Jan's 4.1 version
Claus Gittinger <cg@exept.de>
parents: 221
diff changeset
   559
139
5a48f282d789 back to 1.42 - last checked in version was bogus
Claus Gittinger <cg@exept.de>
parents: 138
diff changeset
   560
name
331
ea59d5e02844 moved: #withStandardOutputAndTranscriptRedirectedDo:
Claus Gittinger <cg@exept.de>
parents: 328
diff changeset
   561
        ^ self class name.
139
5a48f282d789 back to 1.42 - last checked in version was bogus
Claus Gittinger <cg@exept.de>
parents: 138
diff changeset
   562
!
5a48f282d789 back to 1.42 - last checked in version was bogus
Claus Gittinger <cg@exept.de>
parents: 138
diff changeset
   563
67
7861684195ec category rename
Claus Gittinger <cg@exept.de>
parents: 66
diff changeset
   564
printOn: aStream
587
570faa368e0d class: TestCase
Stefan Vogel <sv@exept.de>
parents: 578
diff changeset
   565
        self class printOn:aStream.
570faa368e0d class: TestCase
Stefan Vogel <sv@exept.de>
parents: 578
diff changeset
   566
        aStream nextPutAll: '>>#'.
570faa368e0d class: TestCase
Stefan Vogel <sv@exept.de>
parents: 578
diff changeset
   567
        testSelector printOn:aStream.
67
7861684195ec category rename
Claus Gittinger <cg@exept.de>
parents: 66
diff changeset
   568
! !
7861684195ec category rename
Claus Gittinger <cg@exept.de>
parents: 66
diff changeset
   569
7861684195ec category rename
Claus Gittinger <cg@exept.de>
parents: 66
diff changeset
   570
!TestCase methodsFor:'private'!
7861684195ec category rename
Claus Gittinger <cg@exept.de>
parents: 66
diff changeset
   571
222
8e6f482297fa Jan's 4.1 version
Claus Gittinger <cg@exept.de>
parents: 221
diff changeset
   572
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
   573
"/        ^[aBlock value.
5a48f282d789 back to 1.42 - last checked in version was bogus
Claus Gittinger <cg@exept.de>
parents: 138
diff changeset
   574
"/        false] sunitOn: anExceptionalEvent
5a48f282d789 back to 1.42 - last checked in version was bogus
Claus Gittinger <cg@exept.de>
parents: 138
diff changeset
   575
"/                do: [:ex | ex sunitExitWith: true]
103
ad6897ce99e0 Merge SUnit 3.1 changes
Stefan Vogel <sv@exept.de>
parents: 101
diff changeset
   576
139
5a48f282d789 back to 1.42 - last checked in version was bogus
Claus Gittinger <cg@exept.de>
parents: 138
diff changeset
   577
"/        [[aBlock value]
5a48f282d789 back to 1.42 - last checked in version was bogus
Claus Gittinger <cg@exept.de>
parents: 138
diff changeset
   578
"/                on: anExceptionalEvent
5a48f282d789 back to 1.42 - last checked in version was bogus
Claus Gittinger <cg@exept.de>
parents: 138
diff changeset
   579
"/                do: [:ex | ^true]]
5a48f282d789 back to 1.42 - last checked in version was bogus
Claus Gittinger <cg@exept.de>
parents: 138
diff changeset
   580
"/                        on: TestResult exError
5a48f282d789 back to 1.42 - last checked in version was bogus
Claus Gittinger <cg@exept.de>
parents: 138
diff changeset
   581
"/                        do: [:ex | ^false].
331
ea59d5e02844 moved: #withStandardOutputAndTranscriptRedirectedDo:
Claus Gittinger <cg@exept.de>
parents: 328
diff changeset
   582
        [aBlock value]
ea59d5e02844 moved: #withStandardOutputAndTranscriptRedirectedDo:
Claus Gittinger <cg@exept.de>
parents: 328
diff changeset
   583
                on: anExceptionalEvent
ea59d5e02844 moved: #withStandardOutputAndTranscriptRedirectedDo:
Claus Gittinger <cg@exept.de>
parents: 328
diff changeset
   584
                do: [:ex | ^true].
103
ad6897ce99e0 Merge SUnit 3.1 changes
Stefan Vogel <sv@exept.de>
parents: 101
diff changeset
   585
331
ea59d5e02844 moved: #withStandardOutputAndTranscriptRedirectedDo:
Claus Gittinger <cg@exept.de>
parents: 328
diff changeset
   586
        ^false.
67
7861684195ec category rename
Claus Gittinger <cg@exept.de>
parents: 66
diff changeset
   587
!
7861684195ec category rename
Claus Gittinger <cg@exept.de>
parents: 66
diff changeset
   588
7861684195ec category rename
Claus Gittinger <cg@exept.de>
parents: 66
diff changeset
   589
performTest
328
66cae160c956 added: #withStandardOutputAndTranscriptRedirectedDo:
Claus Gittinger <cg@exept.de>
parents: 326
diff changeset
   590
    self perform: testSelector sunitAsSymbol
67
7861684195ec category rename
Claus Gittinger <cg@exept.de>
parents: 66
diff changeset
   591
!
7861684195ec category rename
Claus Gittinger <cg@exept.de>
parents: 66
diff changeset
   592
576
55ef6aaf19cb class: TestCase
Stefan Vogel <sv@exept.de>
parents: 575
diff changeset
   593
safeTearDown
55ef6aaf19cb class: TestCase
Stefan Vogel <sv@exept.de>
parents: 575
diff changeset
   594
    "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
   595
     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
   596
     itself."
55ef6aaf19cb class: TestCase
Stefan Vogel <sv@exept.de>
parents: 575
diff changeset
   597
55ef6aaf19cb class: TestCase
Stefan Vogel <sv@exept.de>
parents: 575
diff changeset
   598
    AbortOperationRequest handle:[:ex| ] do:[self tearDown].
55ef6aaf19cb class: TestCase
Stefan Vogel <sv@exept.de>
parents: 575
diff changeset
   599
!
55ef6aaf19cb class: TestCase
Stefan Vogel <sv@exept.de>
parents: 575
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
setTestSelector: aSymbol
331
ea59d5e02844 moved: #withStandardOutputAndTranscriptRedirectedDo:
Claus Gittinger <cg@exept.de>
parents: 328
diff changeset
   602
        testSelector := aSymbol
139
5a48f282d789 back to 1.42 - last checked in version was bogus
Claus Gittinger <cg@exept.de>
parents: 138
diff changeset
   603
!
5a48f282d789 back to 1.42 - last checked in version was bogus
Claus Gittinger <cg@exept.de>
parents: 138
diff changeset
   604
222
8e6f482297fa Jan's 4.1 version
Claus Gittinger <cg@exept.de>
parents: 221
diff changeset
   605
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
   606
    "/        TestResult failure sunitSignalWith: aString
5a48f282d789 back to 1.42 - last checked in version was bogus
Claus Gittinger <cg@exept.de>
parents: 138
diff changeset
   607
179
caba0f640d13 context skipping in debugger generalized
Claus Gittinger <cg@exept.de>
parents: 174
diff changeset
   608
    <resource: #skipInDebuggersWalkBack>
caba0f640d13 context skipping in debugger generalized
Claus Gittinger <cg@exept.de>
parents: 174
diff changeset
   609
139
5a48f282d789 back to 1.42 - last checked in version was bogus
Claus Gittinger <cg@exept.de>
parents: 138
diff changeset
   610
    isResumable ifTrue:[
331
ea59d5e02844 moved: #withStandardOutputAndTranscriptRedirectedDo:
Claus Gittinger <cg@exept.de>
parents: 328
diff changeset
   611
        TestResult resumableFailure
ea59d5e02844 moved: #withStandardOutputAndTranscriptRedirectedDo:
Claus Gittinger <cg@exept.de>
parents: 328
diff changeset
   612
            raiseRequestWith:nil
ea59d5e02844 moved: #withStandardOutputAndTranscriptRedirectedDo:
Claus Gittinger <cg@exept.de>
parents: 328
diff changeset
   613
            errorString:aString
ea59d5e02844 moved: #withStandardOutputAndTranscriptRedirectedDo:
Claus Gittinger <cg@exept.de>
parents: 328
diff changeset
   614
            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
   615
    ] ifFalse:[
331
ea59d5e02844 moved: #withStandardOutputAndTranscriptRedirectedDo:
Claus Gittinger <cg@exept.de>
parents: 328
diff changeset
   616
        TestResult failure
ea59d5e02844 moved: #withStandardOutputAndTranscriptRedirectedDo:
Claus Gittinger <cg@exept.de>
parents: 328
diff changeset
   617
            raiseErrorString:aString
ea59d5e02844 moved: #withStandardOutputAndTranscriptRedirectedDo:
Claus Gittinger <cg@exept.de>
parents: 328
diff changeset
   618
            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
   619
    ].
5a48f282d789 back to 1.42 - last checked in version was bogus
Claus Gittinger <cg@exept.de>
parents: 138
diff changeset
   620
5a48f282d789 back to 1.42 - last checked in version was bogus
Claus Gittinger <cg@exept.de>
parents: 138
diff changeset
   621
    "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
   622
!
5a48f282d789 back to 1.42 - last checked in version was bogus
Claus Gittinger <cg@exept.de>
parents: 138
diff changeset
   623
5a48f282d789 back to 1.42 - last checked in version was bogus
Claus Gittinger <cg@exept.de>
parents: 138
diff changeset
   624
signalUnavailableResources
5a48f282d789 back to 1.42 - last checked in version was bogus
Claus Gittinger <cg@exept.de>
parents: 138
diff changeset
   625
222
8e6f482297fa Jan's 4.1 version
Claus Gittinger <cg@exept.de>
parents: 221
diff changeset
   626
    self resources do:[:res |
331
ea59d5e02844 moved: #withStandardOutputAndTranscriptRedirectedDo:
Claus Gittinger <cg@exept.de>
parents: 328
diff changeset
   627
        res isAvailable ifFalse:[
ea59d5e02844 moved: #withStandardOutputAndTranscriptRedirectedDo:
Claus Gittinger <cg@exept.de>
parents: 328
diff changeset
   628
            ^ res signalInitializationError
ea59d5e02844 moved: #withStandardOutputAndTranscriptRedirectedDo:
Claus Gittinger <cg@exept.de>
parents: 328
diff changeset
   629
        ]
139
5a48f282d789 back to 1.42 - last checked in version was bogus
Claus Gittinger <cg@exept.de>
parents: 138
diff changeset
   630
    ].
67
7861684195ec category rename
Claus Gittinger <cg@exept.de>
parents: 66
diff changeset
   631
! !
7861684195ec category rename
Claus Gittinger <cg@exept.de>
parents: 66
diff changeset
   632
139
5a48f282d789 back to 1.42 - last checked in version was bogus
Claus Gittinger <cg@exept.de>
parents: 138
diff changeset
   633
!TestCase methodsFor:'queries'!
5a48f282d789 back to 1.42 - last checked in version was bogus
Claus Gittinger <cg@exept.de>
parents: 138
diff changeset
   634
5a48f282d789 back to 1.42 - last checked in version was bogus
Claus Gittinger <cg@exept.de>
parents: 138
diff changeset
   635
isTestCase
5a48f282d789 back to 1.42 - last checked in version was bogus
Claus Gittinger <cg@exept.de>
parents: 138
diff changeset
   636
    ^ true
5a48f282d789 back to 1.42 - last checked in version was bogus
Claus Gittinger <cg@exept.de>
parents: 138
diff changeset
   637
!
5a48f282d789 back to 1.42 - last checked in version was bogus
Claus Gittinger <cg@exept.de>
parents: 138
diff changeset
   638
221
914934672e32 added: #isTestCaseLike
Claus Gittinger <cg@exept.de>
parents: 216
diff changeset
   639
isTestCaseLike
914934672e32 added: #isTestCaseLike
Claus Gittinger <cg@exept.de>
parents: 216
diff changeset
   640
    ^ true
914934672e32 added: #isTestCaseLike
Claus Gittinger <cg@exept.de>
parents: 216
diff changeset
   641
914934672e32 added: #isTestCaseLike
Claus Gittinger <cg@exept.de>
parents: 216
diff changeset
   642
    "Created: / 29-06-2011 / 20:37:57 / cg"
914934672e32 added: #isTestCaseLike
Claus Gittinger <cg@exept.de>
parents: 216
diff changeset
   643
!
914934672e32 added: #isTestCaseLike
Claus Gittinger <cg@exept.de>
parents: 216
diff changeset
   644
139
5a48f282d789 back to 1.42 - last checked in version was bogus
Claus Gittinger <cg@exept.de>
parents: 138
diff changeset
   645
isTestSuite
5a48f282d789 back to 1.42 - last checked in version was bogus
Claus Gittinger <cg@exept.de>
parents: 138
diff changeset
   646
    ^ false
5a48f282d789 back to 1.42 - last checked in version was bogus
Claus Gittinger <cg@exept.de>
parents: 138
diff changeset
   647
! !
122
61e456491017 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 118
diff changeset
   648
67
7861684195ec category rename
Claus Gittinger <cg@exept.de>
parents: 66
diff changeset
   649
!TestCase methodsFor:'running'!
7861684195ec category rename
Claus Gittinger <cg@exept.de>
parents: 66
diff changeset
   650
139
5a48f282d789 back to 1.42 - last checked in version was bogus
Claus Gittinger <cg@exept.de>
parents: 138
diff changeset
   651
debug
613
5a546630cfcf Reverted TestCase>>debug to original SUnit implementation and made TestFailure proceedable.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 587
diff changeset
   652
    [(self class selector: testSelector) runCase]
5a546630cfcf Reverted TestCase>>debug to original SUnit implementation and made TestFailure proceedable.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 587
diff changeset
   653
        sunitEnsure: [TestResource resetResources: self resources].
254
7f4b9fc9756b changed: #debug - remembers test as passed if no error occur during debugging
vrany
parents: 240
diff changeset
   654
7f4b9fc9756b changed: #debug - remembers test as passed if no error occur during debugging
vrany
parents: 240
diff changeset
   655
    "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
   656
    "Modified: / 07-07-2011 / 11:34:08 / Jan Vrany <jan.vrant@fit.cvut,cz>"
613
5a546630cfcf Reverted TestCase>>debug to original SUnit implementation and made TestFailure proceedable.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 587
diff changeset
   657
    "Modified: / 09-07-2014 / 22:52:10 / 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
   658
!
67
7861684195ec category rename
Claus Gittinger <cg@exept.de>
parents: 66
diff changeset
   659
139
5a48f282d789 back to 1.42 - last checked in version was bogus
Claus Gittinger <cg@exept.de>
parents: 138
diff changeset
   660
debugAsFailure
331
ea59d5e02844 moved: #withStandardOutputAndTranscriptRedirectedDo:
Claus Gittinger <cg@exept.de>
parents: 328
diff changeset
   661
        | semaphore |
ea59d5e02844 moved: #withStandardOutputAndTranscriptRedirectedDo:
Claus Gittinger <cg@exept.de>
parents: 328
diff changeset
   662
        semaphore := Semaphore new.
ea59d5e02844 moved: #withStandardOutputAndTranscriptRedirectedDo:
Claus Gittinger <cg@exept.de>
parents: 328
diff changeset
   663
        [semaphore wait. TestResource resetResources: self resources] fork.
ea59d5e02844 moved: #withStandardOutputAndTranscriptRedirectedDo:
Claus Gittinger <cg@exept.de>
parents: 328
diff changeset
   664
        (self class selector: testSelector) runCaseAsFailure: semaphore.
67
7861684195ec category rename
Claus Gittinger <cg@exept.de>
parents: 66
diff changeset
   665
!
7861684195ec category rename
Claus Gittinger <cg@exept.de>
parents: 66
diff changeset
   666
222
8e6f482297fa Jan's 4.1 version
Claus Gittinger <cg@exept.de>
parents: 221
diff changeset
   667
debugUsing:aSymbol
139
5a48f282d789 back to 1.42 - last checked in version was bogus
Claus Gittinger <cg@exept.de>
parents: 138
diff changeset
   668
    self signalUnavailableResources.
5a48f282d789 back to 1.42 - last checked in version was bogus
Claus Gittinger <cg@exept.de>
parents: 138
diff changeset
   669
    [
331
ea59d5e02844 moved: #withStandardOutputAndTranscriptRedirectedDo:
Claus Gittinger <cg@exept.de>
parents: 328
diff changeset
   670
        "/ used to be:
ea59d5e02844 moved: #withStandardOutputAndTranscriptRedirectedDo:
Claus Gittinger <cg@exept.de>
parents: 328
diff changeset
   671
        "/  (self class selector:testSelector) perform:aSymbol
ea59d5e02844 moved: #withStandardOutputAndTranscriptRedirectedDo:
Claus Gittinger <cg@exept.de>
parents: 328
diff changeset
   672
        "/ which is bad for subclasses which need more arguments.
ea59d5e02844 moved: #withStandardOutputAndTranscriptRedirectedDo:
Claus Gittinger <cg@exept.de>
parents: 328
diff changeset
   673
        "/ why not use:
ea59d5e02844 moved: #withStandardOutputAndTranscriptRedirectedDo:
Claus Gittinger <cg@exept.de>
parents: 328
diff changeset
   674
        "/  self copy perform:aSymbol
ea59d5e02844 moved: #withStandardOutputAndTranscriptRedirectedDo:
Claus Gittinger <cg@exept.de>
parents: 328
diff changeset
   675
        "/ or even
ea59d5e02844 moved: #withStandardOutputAndTranscriptRedirectedDo:
Claus Gittinger <cg@exept.de>
parents: 328
diff changeset
   676
        "/  self perform:aSymbol
ea59d5e02844 moved: #withStandardOutputAndTranscriptRedirectedDo:
Claus Gittinger <cg@exept.de>
parents: 328
diff changeset
   677
        self perform:aSymbol
139
5a48f282d789 back to 1.42 - last checked in version was bogus
Claus Gittinger <cg@exept.de>
parents: 138
diff changeset
   678
    ] ensure:[
331
ea59d5e02844 moved: #withStandardOutputAndTranscriptRedirectedDo:
Claus Gittinger <cg@exept.de>
parents: 328
diff changeset
   679
        self resources do:[:each |
ea59d5e02844 moved: #withStandardOutputAndTranscriptRedirectedDo:
Claus Gittinger <cg@exept.de>
parents: 328
diff changeset
   680
            each reset
ea59d5e02844 moved: #withStandardOutputAndTranscriptRedirectedDo:
Claus Gittinger <cg@exept.de>
parents: 328
diff changeset
   681
        ]
139
5a48f282d789 back to 1.42 - last checked in version was bogus
Claus Gittinger <cg@exept.de>
parents: 138
diff changeset
   682
    ]
5a48f282d789 back to 1.42 - last checked in version was bogus
Claus Gittinger <cg@exept.de>
parents: 138
diff changeset
   683
!
103
ad6897ce99e0 Merge SUnit 3.1 changes
Stefan Vogel <sv@exept.de>
parents: 101
diff changeset
   684
222
8e6f482297fa Jan's 4.1 version
Claus Gittinger <cg@exept.de>
parents: 221
diff changeset
   685
failureLog
331
ea59d5e02844 moved: #withStandardOutputAndTranscriptRedirectedDo:
Claus Gittinger <cg@exept.de>
parents: 328
diff changeset
   686
        ^SUnitNameResolver class >> #defaultLogDevice
139
5a48f282d789 back to 1.42 - last checked in version was bogus
Claus Gittinger <cg@exept.de>
parents: 138
diff changeset
   687
!
103
ad6897ce99e0 Merge SUnit 3.1 changes
Stefan Vogel <sv@exept.de>
parents: 101
diff changeset
   688
139
5a48f282d789 back to 1.42 - last checked in version was bogus
Claus Gittinger <cg@exept.de>
parents: 138
diff changeset
   689
isLogging
331
ea59d5e02844 moved: #withStandardOutputAndTranscriptRedirectedDo:
Claus Gittinger <cg@exept.de>
parents: 328
diff changeset
   690
        "By default, we're not logging failures. If you override this in
ea59d5e02844 moved: #withStandardOutputAndTranscriptRedirectedDo:
Claus Gittinger <cg@exept.de>
parents: 328
diff changeset
   691
        a subclass, make sure that you override #failureLog"
ea59d5e02844 moved: #withStandardOutputAndTranscriptRedirectedDo:
Claus Gittinger <cg@exept.de>
parents: 328
diff changeset
   692
        ^false
222
8e6f482297fa Jan's 4.1 version
Claus Gittinger <cg@exept.de>
parents: 221
diff changeset
   693
139
5a48f282d789 back to 1.42 - last checked in version was bogus
Claus Gittinger <cg@exept.de>
parents: 138
diff changeset
   694
!
103
ad6897ce99e0 Merge SUnit 3.1 changes
Stefan Vogel <sv@exept.de>
parents: 101
diff changeset
   695
139
5a48f282d789 back to 1.42 - last checked in version was bogus
Claus Gittinger <cg@exept.de>
parents: 138
diff changeset
   696
logFailure: aString
331
ea59d5e02844 moved: #withStandardOutputAndTranscriptRedirectedDo:
Claus Gittinger <cg@exept.de>
parents: 328
diff changeset
   697
        self isLogging ifTrue: [
ea59d5e02844 moved: #withStandardOutputAndTranscriptRedirectedDo:
Claus Gittinger <cg@exept.de>
parents: 328
diff changeset
   698
                self failureLog
ea59d5e02844 moved: #withStandardOutputAndTranscriptRedirectedDo:
Claus Gittinger <cg@exept.de>
parents: 328
diff changeset
   699
                        cr;
ea59d5e02844 moved: #withStandardOutputAndTranscriptRedirectedDo:
Claus Gittinger <cg@exept.de>
parents: 328
diff changeset
   700
                        nextPutAll: aString;
ea59d5e02844 moved: #withStandardOutputAndTranscriptRedirectedDo:
Claus Gittinger <cg@exept.de>
parents: 328
diff changeset
   701
                        flush]
222
8e6f482297fa Jan's 4.1 version
Claus Gittinger <cg@exept.de>
parents: 221
diff changeset
   702
139
5a48f282d789 back to 1.42 - last checked in version was bogus
Claus Gittinger <cg@exept.de>
parents: 138
diff changeset
   703
!
5a48f282d789 back to 1.42 - last checked in version was bogus
Claus Gittinger <cg@exept.de>
parents: 138
diff changeset
   704
550
cf72a67f1973 class: TestCase
Claus Gittinger <cg@exept.de>
parents: 531
diff changeset
   705
logSkipped: aString
cf72a67f1973 class: TestCase
Claus Gittinger <cg@exept.de>
parents: 531
diff changeset
   706
        self isLogging ifTrue: [
cf72a67f1973 class: TestCase
Claus Gittinger <cg@exept.de>
parents: 531
diff changeset
   707
                self failureLog
cf72a67f1973 class: TestCase
Claus Gittinger <cg@exept.de>
parents: 531
diff changeset
   708
                        cr;
cf72a67f1973 class: TestCase
Claus Gittinger <cg@exept.de>
parents: 531
diff changeset
   709
                        nextPutAll: aString;
cf72a67f1973 class: TestCase
Claus Gittinger <cg@exept.de>
parents: 531
diff changeset
   710
                        flush]
cf72a67f1973 class: TestCase
Claus Gittinger <cg@exept.de>
parents: 531
diff changeset
   711
!
cf72a67f1973 class: TestCase
Claus Gittinger <cg@exept.de>
parents: 531
diff changeset
   712
139
5a48f282d789 back to 1.42 - last checked in version was bogus
Claus Gittinger <cg@exept.de>
parents: 138
diff changeset
   713
openDebuggerOnFailingTestMethod
331
ea59d5e02844 moved: #withStandardOutputAndTranscriptRedirectedDo:
Claus Gittinger <cg@exept.de>
parents: 328
diff changeset
   714
        "SUnit has halted one step in front of the failing test method. Step over the 'self halt' and
ea59d5e02844 moved: #withStandardOutputAndTranscriptRedirectedDo:
Claus Gittinger <cg@exept.de>
parents: 328
diff changeset
   715
         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
   716
331
ea59d5e02844 moved: #withStandardOutputAndTranscriptRedirectedDo:
Claus Gittinger <cg@exept.de>
parents: 328
diff changeset
   717
        self
ea59d5e02844 moved: #withStandardOutputAndTranscriptRedirectedDo:
Claus Gittinger <cg@exept.de>
parents: 328
diff changeset
   718
                "/halt;
ea59d5e02844 moved: #withStandardOutputAndTranscriptRedirectedDo:
Claus Gittinger <cg@exept.de>
parents: 328
diff changeset
   719
                performTest
222
8e6f482297fa Jan's 4.1 version
Claus Gittinger <cg@exept.de>
parents: 221
diff changeset
   720
8e6f482297fa Jan's 4.1 version
Claus Gittinger <cg@exept.de>
parents: 221
diff changeset
   721
    "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
   722
!
7861684195ec category rename
Claus Gittinger <cg@exept.de>
parents: 66
diff changeset
   723
7861684195ec category rename
Claus Gittinger <cg@exept.de>
parents: 66
diff changeset
   724
run
262
3c46acd3f64a TestSuite/TestCase run* method refactored (cleanup, possible bug fixes)
vrany
parents: 254
diff changeset
   725
461
c4a68cc4e547 use TestResultForSTX in SUnit runner
Claus Gittinger <cg@exept.de>
parents: 454
diff changeset
   726
    ^self run: TestResult defaultResultClass new
262
3c46acd3f64a TestSuite/TestCase run* method refactored (cleanup, possible bug fixes)
vrany
parents: 254
diff changeset
   727
3c46acd3f64a TestSuite/TestCase run* method refactored (cleanup, possible bug fixes)
vrany
parents: 254
diff changeset
   728
    "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
   729
!
7861684195ec category rename
Claus Gittinger <cg@exept.de>
parents: 66
diff changeset
   730
7861684195ec category rename
Claus Gittinger <cg@exept.de>
parents: 66
diff changeset
   731
run: aResult
262
3c46acd3f64a TestSuite/TestCase run* method refactored (cleanup, possible bug fixes)
vrany
parents: 254
diff changeset
   732
3c46acd3f64a TestSuite/TestCase run* method refactored (cleanup, possible bug fixes)
vrany
parents: 254
diff changeset
   733
    ^self run: aResult beforeEachDo: [:test :result|] afterEachDo: [:test :result|]
3c46acd3f64a TestSuite/TestCase run* method refactored (cleanup, possible bug fixes)
vrany
parents: 254
diff changeset
   734
3c46acd3f64a TestSuite/TestCase run* method refactored (cleanup, possible bug fixes)
vrany
parents: 254
diff changeset
   735
    "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
   736
!
7861684195ec category rename
Claus Gittinger <cg@exept.de>
parents: 66
diff changeset
   737
139
5a48f282d789 back to 1.42 - last checked in version was bogus
Claus Gittinger <cg@exept.de>
parents: 138
diff changeset
   738
run: aResult afterEachDo:block2
262
3c46acd3f64a TestSuite/TestCase run* method refactored (cleanup, possible bug fixes)
vrany
parents: 254
diff changeset
   739
3c46acd3f64a TestSuite/TestCase run* method refactored (cleanup, possible bug fixes)
vrany
parents: 254
diff changeset
   740
    ^self run: aResult beforeEachDo: [:test :result|] afterEachDo:block2
3c46acd3f64a TestSuite/TestCase run* method refactored (cleanup, possible bug fixes)
vrany
parents: 254
diff changeset
   741
3c46acd3f64a TestSuite/TestCase run* method refactored (cleanup, possible bug fixes)
vrany
parents: 254
diff changeset
   742
    "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
   743
!
5a48f282d789 back to 1.42 - last checked in version was bogus
Claus Gittinger <cg@exept.de>
parents: 138
diff changeset
   744
5a48f282d789 back to 1.42 - last checked in version was bogus
Claus Gittinger <cg@exept.de>
parents: 138
diff changeset
   745
run: aResult beforeEachDo:block1 afterEachDo:block2
262
3c46acd3f64a TestSuite/TestCase run* method refactored (cleanup, possible bug fixes)
vrany
parents: 254
diff changeset
   746
3c46acd3f64a TestSuite/TestCase run* method refactored (cleanup, possible bug fixes)
vrany
parents: 254
diff changeset
   747
    ^self run: aResult beforeEachDo:block1 afterEachDo:block2 resetResources: true
3c46acd3f64a TestSuite/TestCase run* method refactored (cleanup, possible bug fixes)
vrany
parents: 254
diff changeset
   748
3c46acd3f64a TestSuite/TestCase run* method refactored (cleanup, possible bug fixes)
vrany
parents: 254
diff changeset
   749
    "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
   750
!
3c46acd3f64a TestSuite/TestCase run* method refactored (cleanup, possible bug fixes)
vrany
parents: 254
diff changeset
   751
3c46acd3f64a TestSuite/TestCase run* method refactored (cleanup, possible bug fixes)
vrany
parents: 254
diff changeset
   752
run: result beforeEachDo: before afterEachDo: after resetResources: reset
430
Claus Gittinger <cg@exept.de>
parents: 421
diff changeset
   753
    ^ self
Claus Gittinger <cg@exept.de>
parents: 421
diff changeset
   754
        run: result 
Claus Gittinger <cg@exept.de>
parents: 421
diff changeset
   755
        beforeEachDo: before 
Claus Gittinger <cg@exept.de>
parents: 421
diff changeset
   756
        afterEachDo: after 
Claus Gittinger <cg@exept.de>
parents: 421
diff changeset
   757
        resetResources: reset
Claus Gittinger <cg@exept.de>
parents: 421
diff changeset
   758
        debug: false
Claus Gittinger <cg@exept.de>
parents: 421
diff changeset
   759
Claus Gittinger <cg@exept.de>
parents: 421
diff changeset
   760
    "Created: / 29-07-2011 / 12:04:53 / Jan Vrany <jan.vrany@fit.cvut.cz>"
Claus Gittinger <cg@exept.de>
parents: 421
diff changeset
   761
    "Modified: / 21-08-2011 / 17:45:17 / cg"
Claus Gittinger <cg@exept.de>
parents: 421
diff changeset
   762
!
Claus Gittinger <cg@exept.de>
parents: 421
diff changeset
   763
Claus Gittinger <cg@exept.de>
parents: 421
diff changeset
   764
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
   765
3c46acd3f64a TestSuite/TestCase run* method refactored (cleanup, possible bug fixes)
vrany
parents: 254
diff changeset
   766
    "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
   767
     the resources are reset, otherwise not"
3c46acd3f64a TestSuite/TestCase run* method refactored (cleanup, possible bug fixes)
vrany
parents: 254
diff changeset
   768
3c46acd3f64a TestSuite/TestCase run* method refactored (cleanup, possible bug fixes)
vrany
parents: 254
diff changeset
   769
    "1. Execute before block"
3c46acd3f64a TestSuite/TestCase run* method refactored (cleanup, possible bug fixes)
vrany
parents: 254
diff changeset
   770
    "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
   771
     it is more portable - numArgs in ANSI (?)"
3c46acd3f64a TestSuite/TestCase run* method refactored (cleanup, possible bug fixes)
vrany
parents: 254
diff changeset
   772
    before numArgs == 2 ifTrue:[
3c46acd3f64a TestSuite/TestCase run* method refactored (cleanup, possible bug fixes)
vrany
parents: 254
diff changeset
   773
        before value: self value: result                
3c46acd3f64a TestSuite/TestCase run* method refactored (cleanup, possible bug fixes)
vrany
parents: 254
diff changeset
   774
    ] ifFalse:[
3c46acd3f64a TestSuite/TestCase run* method refactored (cleanup, possible bug fixes)
vrany
parents: 254
diff changeset
   775
        before numArgs == 1 ifTrue:[
3c46acd3f64a TestSuite/TestCase run* method refactored (cleanup, possible bug fixes)
vrany
parents: 254
diff changeset
   776
            before value: self
3c46acd3f64a TestSuite/TestCase run* method refactored (cleanup, possible bug fixes)
vrany
parents: 254
diff changeset
   777
        ] ifFalse:[
3c46acd3f64a TestSuite/TestCase run* method refactored (cleanup, possible bug fixes)
vrany
parents: 254
diff changeset
   778
            before value.
3c46acd3f64a TestSuite/TestCase run* method refactored (cleanup, possible bug fixes)
vrany
parents: 254
diff changeset
   779
        ]
3c46acd3f64a TestSuite/TestCase run* method refactored (cleanup, possible bug fixes)
vrany
parents: 254
diff changeset
   780
    ].
3c46acd3f64a TestSuite/TestCase run* method refactored (cleanup, possible bug fixes)
vrany
parents: 254
diff changeset
   781
3c46acd3f64a TestSuite/TestCase run* method refactored (cleanup, possible bug fixes)
vrany
parents: 254
diff changeset
   782
    "2. Run the testcase"
3c46acd3f64a TestSuite/TestCase run* method refactored (cleanup, possible bug fixes)
vrany
parents: 254
diff changeset
   783
    reset ifTrue:[
3c46acd3f64a TestSuite/TestCase run* method refactored (cleanup, possible bug fixes)
vrany
parents: 254
diff changeset
   784
        [
430
Claus Gittinger <cg@exept.de>
parents: 421
diff changeset
   785
            result runCase: self debugged:doDebug
262
3c46acd3f64a TestSuite/TestCase run* method refactored (cleanup, possible bug fixes)
vrany
parents: 254
diff changeset
   786
        ] sunitEnsure: [
3c46acd3f64a TestSuite/TestCase run* method refactored (cleanup, possible bug fixes)
vrany
parents: 254
diff changeset
   787
            TestResource resetResources: self resources
3c46acd3f64a TestSuite/TestCase run* method refactored (cleanup, possible bug fixes)
vrany
parents: 254
diff changeset
   788
        ].
3c46acd3f64a TestSuite/TestCase run* method refactored (cleanup, possible bug fixes)
vrany
parents: 254
diff changeset
   789
    ] ifFalse:[
430
Claus Gittinger <cg@exept.de>
parents: 421
diff changeset
   790
        result runCase: self debugged:doDebug
262
3c46acd3f64a TestSuite/TestCase run* method refactored (cleanup, possible bug fixes)
vrany
parents: 254
diff changeset
   791
    ].
3c46acd3f64a TestSuite/TestCase run* method refactored (cleanup, possible bug fixes)
vrany
parents: 254
diff changeset
   792
3c46acd3f64a TestSuite/TestCase run* method refactored (cleanup, possible bug fixes)
vrany
parents: 254
diff changeset
   793
    "3. Execute after block"
3c46acd3f64a TestSuite/TestCase run* method refactored (cleanup, possible bug fixes)
vrany
parents: 254
diff changeset
   794
    "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
   795
     it is more portable - numArgs in ANSI (?)"
282
deb55165e73b changed: #run:beforeEachDo:afterEachDo:resetResources:
Claus Gittinger <cg@exept.de>
parents: 265
diff changeset
   796
    after numArgs == 2 ifTrue:[
deb55165e73b changed: #run:beforeEachDo:afterEachDo:resetResources:
Claus Gittinger <cg@exept.de>
parents: 265
diff changeset
   797
        after value: self value: result                
262
3c46acd3f64a TestSuite/TestCase run* method refactored (cleanup, possible bug fixes)
vrany
parents: 254
diff changeset
   798
    ] ifFalse:[
282
deb55165e73b changed: #run:beforeEachDo:afterEachDo:resetResources:
Claus Gittinger <cg@exept.de>
parents: 265
diff changeset
   799
        after numArgs == 1 ifTrue:[
deb55165e73b changed: #run:beforeEachDo:afterEachDo:resetResources:
Claus Gittinger <cg@exept.de>
parents: 265
diff changeset
   800
            after value: self
262
3c46acd3f64a TestSuite/TestCase run* method refactored (cleanup, possible bug fixes)
vrany
parents: 254
diff changeset
   801
        ] ifFalse:[
282
deb55165e73b changed: #run:beforeEachDo:afterEachDo:resetResources:
Claus Gittinger <cg@exept.de>
parents: 265
diff changeset
   802
            after value.
262
3c46acd3f64a TestSuite/TestCase run* method refactored (cleanup, possible bug fixes)
vrany
parents: 254
diff changeset
   803
        ]
3c46acd3f64a TestSuite/TestCase run* method refactored (cleanup, possible bug fixes)
vrany
parents: 254
diff changeset
   804
    ].
3c46acd3f64a TestSuite/TestCase run* method refactored (cleanup, possible bug fixes)
vrany
parents: 254
diff changeset
   805
    ^result
3c46acd3f64a TestSuite/TestCase run* method refactored (cleanup, possible bug fixes)
vrany
parents: 254
diff changeset
   806
3c46acd3f64a TestSuite/TestCase run* method refactored (cleanup, possible bug fixes)
vrany
parents: 254
diff changeset
   807
    "Created: / 29-07-2011 / 12:04:53 / Jan Vrany <jan.vrany@fit.cvut.cz>"
430
Claus Gittinger <cg@exept.de>
parents: 421
diff changeset
   808
    "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
   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 beforeEachTestCaseDo:block1 afterEachTestCaseDo: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
    <resource: #obsolete>
3c46acd3f64a TestSuite/TestCase run* method refactored (cleanup, possible bug fixes)
vrany
parents: 254
diff changeset
   814
    self obsoleteMethodWarning: 'Use #run:beforeEachDo:afterEachDo: instead'.
3c46acd3f64a TestSuite/TestCase run* method refactored (cleanup, possible bug fixes)
vrany
parents: 254
diff changeset
   815
3c46acd3f64a TestSuite/TestCase run* method refactored (cleanup, possible bug fixes)
vrany
parents: 254
diff changeset
   816
    ^self run: aResult beforeEachDo:block1 afterEachDo:block2
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
    "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
   819
!
5a48f282d789 back to 1.42 - last checked in version was bogus
Claus Gittinger <cg@exept.de>
parents: 138
diff changeset
   820
5a48f282d789 back to 1.42 - last checked in version was bogus
Claus Gittinger <cg@exept.de>
parents: 138
diff changeset
   821
runCase
570
c9c4c97948cc class: TestCase
Claus Gittinger <cg@exept.de>
parents: 565
diff changeset
   822
    |didSetup|
c9c4c97948cc class: TestCase
Claus Gittinger <cg@exept.de>
parents: 565
diff changeset
   823
328
66cae160c956 added: #withStandardOutputAndTranscriptRedirectedDo:
Claus Gittinger <cg@exept.de>
parents: 326
diff changeset
   824
    self resources do: [:each | each availableFor: self].
66cae160c956 added: #withStandardOutputAndTranscriptRedirectedDo:
Claus Gittinger <cg@exept.de>
parents: 326
diff changeset
   825
66cae160c956 added: #withStandardOutputAndTranscriptRedirectedDo:
Claus Gittinger <cg@exept.de>
parents: 326
diff changeset
   826
    [
570
c9c4c97948cc class: TestCase
Claus Gittinger <cg@exept.de>
parents: 565
diff changeset
   827
        didSetup := false.
328
66cae160c956 added: #withStandardOutputAndTranscriptRedirectedDo:
Claus Gittinger <cg@exept.de>
parents: 326
diff changeset
   828
        self setUp.
570
c9c4c97948cc class: TestCase
Claus Gittinger <cg@exept.de>
parents: 565
diff changeset
   829
        didSetup := true.
377
71ada743cae2 removed leftover rubbish
Claus Gittinger <cg@exept.de>
parents: 331
diff changeset
   830
        self performTest.
328
66cae160c956 added: #withStandardOutputAndTranscriptRedirectedDo:
Claus Gittinger <cg@exept.de>
parents: 326
diff changeset
   831
    ] sunitEnsure: [
576
55ef6aaf19cb class: TestCase
Stefan Vogel <sv@exept.de>
parents: 575
diff changeset
   832
        didSetup ifTrue:[ self safeTearDown ]
328
66cae160c956 added: #withStandardOutputAndTranscriptRedirectedDo:
Claus Gittinger <cg@exept.de>
parents: 326
diff changeset
   833
    ]
66cae160c956 added: #withStandardOutputAndTranscriptRedirectedDo:
Claus Gittinger <cg@exept.de>
parents: 326
diff changeset
   834
377
71ada743cae2 removed leftover rubbish
Claus Gittinger <cg@exept.de>
parents: 331
diff changeset
   835
    "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
   836
!
5a48f282d789 back to 1.42 - last checked in version was bogus
Claus Gittinger <cg@exept.de>
parents: 138
diff changeset
   837
5a48f282d789 back to 1.42 - last checked in version was bogus
Claus Gittinger <cg@exept.de>
parents: 138
diff changeset
   838
runCaseAsFailure
570
c9c4c97948cc class: TestCase
Claus Gittinger <cg@exept.de>
parents: 565
diff changeset
   839
    self setUp.
c9c4c97948cc class: TestCase
Claus Gittinger <cg@exept.de>
parents: 565
diff changeset
   840
    [
576
55ef6aaf19cb class: TestCase
Stefan Vogel <sv@exept.de>
parents: 575
diff changeset
   841
        [self openDebuggerOnFailingTestMethod] ensure: [self safeTearDown]
570
c9c4c97948cc class: TestCase
Claus Gittinger <cg@exept.de>
parents: 565
diff changeset
   842
    ] fork
139
5a48f282d789 back to 1.42 - last checked in version was bogus
Claus Gittinger <cg@exept.de>
parents: 138
diff changeset
   843
5a48f282d789 back to 1.42 - last checked in version was bogus
Claus Gittinger <cg@exept.de>
parents: 138
diff changeset
   844
    "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
   845
!
5a48f282d789 back to 1.42 - last checked in version was bogus
Claus Gittinger <cg@exept.de>
parents: 138
diff changeset
   846
5a48f282d789 back to 1.42 - last checked in version was bogus
Claus Gittinger <cg@exept.de>
parents: 138
diff changeset
   847
runCaseAsFailure: aSemaphore
570
c9c4c97948cc class: TestCase
Claus Gittinger <cg@exept.de>
parents: 565
diff changeset
   848
    [
c9c4c97948cc class: TestCase
Claus Gittinger <cg@exept.de>
parents: 565
diff changeset
   849
        |didSetup|
c9c4c97948cc class: TestCase
Claus Gittinger <cg@exept.de>
parents: 565
diff changeset
   850
c9c4c97948cc class: TestCase
Claus Gittinger <cg@exept.de>
parents: 565
diff changeset
   851
        didSetup := false.
c9c4c97948cc class: TestCase
Claus Gittinger <cg@exept.de>
parents: 565
diff changeset
   852
        self resources do: [:each | each availableFor: self].
c9c4c97948cc class: TestCase
Claus Gittinger <cg@exept.de>
parents: 565
diff changeset
   853
        [
c9c4c97948cc class: TestCase
Claus Gittinger <cg@exept.de>
parents: 565
diff changeset
   854
            self setUp.
c9c4c97948cc class: TestCase
Claus Gittinger <cg@exept.de>
parents: 565
diff changeset
   855
            didSetup := true.
c9c4c97948cc class: TestCase
Claus Gittinger <cg@exept.de>
parents: 565
diff changeset
   856
            self openDebuggerOnFailingTestMethod
c9c4c97948cc class: TestCase
Claus Gittinger <cg@exept.de>
parents: 565
diff changeset
   857
        ] sunitEnsure: [
c9c4c97948cc class: TestCase
Claus Gittinger <cg@exept.de>
parents: 565
diff changeset
   858
            didSetup ifTrue:[ self tearDown ]
c9c4c97948cc class: TestCase
Claus Gittinger <cg@exept.de>
parents: 565
diff changeset
   859
        ]
c9c4c97948cc class: TestCase
Claus Gittinger <cg@exept.de>
parents: 565
diff changeset
   860
    ] sunitEnsure: [aSemaphore signal].
139
5a48f282d789 back to 1.42 - last checked in version was bogus
Claus Gittinger <cg@exept.de>
parents: 138
diff changeset
   861
!
5a48f282d789 back to 1.42 - last checked in version was bogus
Claus Gittinger <cg@exept.de>
parents: 138
diff changeset
   862
67
7861684195ec category rename
Claus Gittinger <cg@exept.de>
parents: 66
diff changeset
   863
setUp
454
b95684ea4f32 comment/format in:
Claus Gittinger <cg@exept.de>
parents: 445
diff changeset
   864
    "can be redefined in a concrete test"
67
7861684195ec category rename
Claus Gittinger <cg@exept.de>
parents: 66
diff changeset
   865
!
7861684195ec category rename
Claus Gittinger <cg@exept.de>
parents: 66
diff changeset
   866
7861684195ec category rename
Claus Gittinger <cg@exept.de>
parents: 66
diff changeset
   867
tearDown
454
b95684ea4f32 comment/format in:
Claus Gittinger <cg@exept.de>
parents: 445
diff changeset
   868
    "can be redefined in a concrete test"
50
6db52a1a4543 updgraded to 3.0
Claus Gittinger <cg@exept.de>
parents: 40
diff changeset
   869
! !
6db52a1a4543 updgraded to 3.0
Claus Gittinger <cg@exept.de>
parents: 40
diff changeset
   870
12
4a6597527f92 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6
diff changeset
   871
!TestCase class methodsFor:'documentation'!
4a6597527f92 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6
diff changeset
   872
290
7b52b68d57cb changed: #isTestSelector:
Claus Gittinger <cg@exept.de>
parents: 288
diff changeset
   873
version
587
570faa368e0d class: TestCase
Stefan Vogel <sv@exept.de>
parents: 578
diff changeset
   874
    ^ '$Header: /cvs/stx/stx/goodies/sunit/TestCase.st,v 1.104 2014-03-21 17:23:32 stefan Exp $'
290
7b52b68d57cb changed: #isTestSelector:
Claus Gittinger <cg@exept.de>
parents: 288
diff changeset
   875
!
7b52b68d57cb changed: #isTestSelector:
Claus Gittinger <cg@exept.de>
parents: 288
diff changeset
   876
203
ca0c9f44ee72 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 200
diff changeset
   877
version_CVS
587
570faa368e0d class: TestCase
Stefan Vogel <sv@exept.de>
parents: 578
diff changeset
   878
    ^ '$Header: /cvs/stx/stx/goodies/sunit/TestCase.st,v 1.104 2014-03-21 17:23:32 stefan Exp $'
222
8e6f482297fa Jan's 4.1 version
Claus Gittinger <cg@exept.de>
parents: 221
diff changeset
   879
!
8e6f482297fa Jan's 4.1 version
Claus Gittinger <cg@exept.de>
parents: 221
diff changeset
   880
8e6f482297fa Jan's 4.1 version
Claus Gittinger <cg@exept.de>
parents: 221
diff changeset
   881
version_SVN
587
570faa368e0d class: TestCase
Stefan Vogel <sv@exept.de>
parents: 578
diff changeset
   882
    ^ '$Id: TestCase.st,v 1.104 2014-03-21 17:23:32 stefan Exp $'
12
4a6597527f92 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6
diff changeset
   883
! !
81
10852410025d *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 73
diff changeset
   884
550
cf72a67f1973 class: TestCase
Claus Gittinger <cg@exept.de>
parents: 531
diff changeset
   885
2
6f450bf08bc0 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1
diff changeset
   886
TestCase initialize!