RegressionTests__ExceptionTest.st
author Claus Gittinger <cg@exept.de>
Wed, 23 Mar 2016 18:33:17 +0100
changeset 1363 806bd20a7e59
parent 1275 0c5dd124124a
child 1447 2351db93aa5b
child 1499 26a16a04219b
permissions -rw-r--r--
#BUGFIX class: RegressionTests::ExceptionTest changed: #test12_abortInEnsure #test13_abortInEnsureInProcess
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
241
5b8a5dd10628 initial checkin
Stefan Vogel <sv@exept.de>
parents:
diff changeset
     1
"{ Package: 'exept:regression' }"
5b8a5dd10628 initial checkin
Stefan Vogel <sv@exept.de>
parents:
diff changeset
     2
5b8a5dd10628 initial checkin
Stefan Vogel <sv@exept.de>
parents:
diff changeset
     3
"{ NameSpace: RegressionTests }"
5b8a5dd10628 initial checkin
Stefan Vogel <sv@exept.de>
parents:
diff changeset
     4
5b8a5dd10628 initial checkin
Stefan Vogel <sv@exept.de>
parents:
diff changeset
     5
TestCase subclass:#ExceptionTest
5b8a5dd10628 initial checkin
Stefan Vogel <sv@exept.de>
parents:
diff changeset
     6
	instanceVariableNames:''
5b8a5dd10628 initial checkin
Stefan Vogel <sv@exept.de>
parents:
diff changeset
     7
	classVariableNames:''
5b8a5dd10628 initial checkin
Stefan Vogel <sv@exept.de>
parents:
diff changeset
     8
	poolDictionaries:''
5b8a5dd10628 initial checkin
Stefan Vogel <sv@exept.de>
parents:
diff changeset
     9
	category:'tests-Regression'
5b8a5dd10628 initial checkin
Stefan Vogel <sv@exept.de>
parents:
diff changeset
    10
!
5b8a5dd10628 initial checkin
Stefan Vogel <sv@exept.de>
parents:
diff changeset
    11
1275
0c5dd124124a class: RegressionTests::ExceptionTest
Stefan Vogel <sv@exept.de>
parents: 1168
diff changeset
    12
Query subclass:#MyQuery
0c5dd124124a class: RegressionTests::ExceptionTest
Stefan Vogel <sv@exept.de>
parents: 1168
diff changeset
    13
	instanceVariableNames:''
0c5dd124124a class: RegressionTests::ExceptionTest
Stefan Vogel <sv@exept.de>
parents: 1168
diff changeset
    14
	classVariableNames:''
0c5dd124124a class: RegressionTests::ExceptionTest
Stefan Vogel <sv@exept.de>
parents: 1168
diff changeset
    15
	poolDictionaries:''
0c5dd124124a class: RegressionTests::ExceptionTest
Stefan Vogel <sv@exept.de>
parents: 1168
diff changeset
    16
	privateIn:ExceptionTest
0c5dd124124a class: RegressionTests::ExceptionTest
Stefan Vogel <sv@exept.de>
parents: 1168
diff changeset
    17
!
0c5dd124124a class: RegressionTests::ExceptionTest
Stefan Vogel <sv@exept.de>
parents: 1168
diff changeset
    18
1168
289bb5e55e18 Added tests for ANSI-compatible exception handling (thanks to Martin McClure)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 944
diff changeset
    19
Exception subclass:#MyResumableTestError
289bb5e55e18 Added tests for ANSI-compatible exception handling (thanks to Martin McClure)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 944
diff changeset
    20
	instanceVariableNames:''
289bb5e55e18 Added tests for ANSI-compatible exception handling (thanks to Martin McClure)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 944
diff changeset
    21
	classVariableNames:''
289bb5e55e18 Added tests for ANSI-compatible exception handling (thanks to Martin McClure)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 944
diff changeset
    22
	poolDictionaries:''
289bb5e55e18 Added tests for ANSI-compatible exception handling (thanks to Martin McClure)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 944
diff changeset
    23
	privateIn:ExceptionTest
289bb5e55e18 Added tests for ANSI-compatible exception handling (thanks to Martin McClure)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 944
diff changeset
    24
!
289bb5e55e18 Added tests for ANSI-compatible exception handling (thanks to Martin McClure)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 944
diff changeset
    25
289bb5e55e18 Added tests for ANSI-compatible exception handling (thanks to Martin McClure)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 944
diff changeset
    26
Exception subclass:#MyTestError
289bb5e55e18 Added tests for ANSI-compatible exception handling (thanks to Martin McClure)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 944
diff changeset
    27
	instanceVariableNames:''
289bb5e55e18 Added tests for ANSI-compatible exception handling (thanks to Martin McClure)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 944
diff changeset
    28
	classVariableNames:''
289bb5e55e18 Added tests for ANSI-compatible exception handling (thanks to Martin McClure)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 944
diff changeset
    29
	poolDictionaries:''
289bb5e55e18 Added tests for ANSI-compatible exception handling (thanks to Martin McClure)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 944
diff changeset
    30
	privateIn:ExceptionTest
289bb5e55e18 Added tests for ANSI-compatible exception handling (thanks to Martin McClure)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 944
diff changeset
    31
!
289bb5e55e18 Added tests for ANSI-compatible exception handling (thanks to Martin McClure)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 944
diff changeset
    32
241
5b8a5dd10628 initial checkin
Stefan Vogel <sv@exept.de>
parents:
diff changeset
    33
!ExceptionTest class methodsFor:'documentation'!
5b8a5dd10628 initial checkin
Stefan Vogel <sv@exept.de>
parents:
diff changeset
    34
5b8a5dd10628 initial checkin
Stefan Vogel <sv@exept.de>
parents:
diff changeset
    35
documentation
5b8a5dd10628 initial checkin
Stefan Vogel <sv@exept.de>
parents:
diff changeset
    36
"
5b8a5dd10628 initial checkin
Stefan Vogel <sv@exept.de>
parents:
diff changeset
    37
    documentation to be added.
5b8a5dd10628 initial checkin
Stefan Vogel <sv@exept.de>
parents:
diff changeset
    38
5b8a5dd10628 initial checkin
Stefan Vogel <sv@exept.de>
parents:
diff changeset
    39
    [author:]
5b8a5dd10628 initial checkin
Stefan Vogel <sv@exept.de>
parents:
diff changeset
    40
        Stefan Vogel (stefan@zwerg)
5b8a5dd10628 initial checkin
Stefan Vogel <sv@exept.de>
parents:
diff changeset
    41
5b8a5dd10628 initial checkin
Stefan Vogel <sv@exept.de>
parents:
diff changeset
    42
    [instance variables:]
5b8a5dd10628 initial checkin
Stefan Vogel <sv@exept.de>
parents:
diff changeset
    43
5b8a5dd10628 initial checkin
Stefan Vogel <sv@exept.de>
parents:
diff changeset
    44
    [class variables:]
5b8a5dd10628 initial checkin
Stefan Vogel <sv@exept.de>
parents:
diff changeset
    45
5b8a5dd10628 initial checkin
Stefan Vogel <sv@exept.de>
parents:
diff changeset
    46
    [see also:]
5b8a5dd10628 initial checkin
Stefan Vogel <sv@exept.de>
parents:
diff changeset
    47
5b8a5dd10628 initial checkin
Stefan Vogel <sv@exept.de>
parents:
diff changeset
    48
"
5b8a5dd10628 initial checkin
Stefan Vogel <sv@exept.de>
parents:
diff changeset
    49
! !
5b8a5dd10628 initial checkin
Stefan Vogel <sv@exept.de>
parents:
diff changeset
    50
5b8a5dd10628 initial checkin
Stefan Vogel <sv@exept.de>
parents:
diff changeset
    51
!ExceptionTest methodsFor:'tests'!
5b8a5dd10628 initial checkin
Stefan Vogel <sv@exept.de>
parents:
diff changeset
    52
916
6d9ff4af7d5c class: RegressionTests::ExceptionTest
Claus Gittinger <cg@exept.de>
parents: 641
diff changeset
    53
test01
241
5b8a5dd10628 initial checkin
Stefan Vogel <sv@exept.de>
parents:
diff changeset
    54
5b8a5dd10628 initial checkin
Stefan Vogel <sv@exept.de>
parents:
diff changeset
    55
    |result zero|
5b8a5dd10628 initial checkin
Stefan Vogel <sv@exept.de>
parents:
diff changeset
    56
5b8a5dd10628 initial checkin
Stefan Vogel <sv@exept.de>
parents:
diff changeset
    57
    result := OrderedCollection new.
5b8a5dd10628 initial checkin
Stefan Vogel <sv@exept.de>
parents:
diff changeset
    58
    zero := 0.
5b8a5dd10628 initial checkin
Stefan Vogel <sv@exept.de>
parents:
diff changeset
    59
349
8aeec57e44db *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 241
diff changeset
    60
    [ 0 // zero ] 
8aeec57e44db *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 241
diff changeset
    61
        on:ZeroDivide 
8aeec57e44db *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 241
diff changeset
    62
        do:[:ex|
916
6d9ff4af7d5c class: RegressionTests::ExceptionTest
Claus Gittinger <cg@exept.de>
parents: 641
diff changeset
    63
            self assert:(ex creator == ZeroDivide).
349
8aeec57e44db *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 241
diff changeset
    64
            self assert:(ex originator == 0).
8aeec57e44db *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 241
diff changeset
    65
            result add:#Error 
8aeec57e44db *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 241
diff changeset
    66
        ].
241
5b8a5dd10628 initial checkin
Stefan Vogel <sv@exept.de>
parents:
diff changeset
    67
    self assert:(result size == 1).
5b8a5dd10628 initial checkin
Stefan Vogel <sv@exept.de>
parents:
diff changeset
    68
    self assert:(result first == #Error).
916
6d9ff4af7d5c class: RegressionTests::ExceptionTest
Claus Gittinger <cg@exept.de>
parents: 641
diff changeset
    69
!
6d9ff4af7d5c class: RegressionTests::ExceptionTest
Claus Gittinger <cg@exept.de>
parents: 641
diff changeset
    70
6d9ff4af7d5c class: RegressionTests::ExceptionTest
Claus Gittinger <cg@exept.de>
parents: 641
diff changeset
    71
test02
6d9ff4af7d5c class: RegressionTests::ExceptionTest
Claus Gittinger <cg@exept.de>
parents: 641
diff changeset
    72
6d9ff4af7d5c class: RegressionTests::ExceptionTest
Claus Gittinger <cg@exept.de>
parents: 641
diff changeset
    73
    |result zero|
6d9ff4af7d5c class: RegressionTests::ExceptionTest
Claus Gittinger <cg@exept.de>
parents: 641
diff changeset
    74
6d9ff4af7d5c class: RegressionTests::ExceptionTest
Claus Gittinger <cg@exept.de>
parents: 641
diff changeset
    75
    result := OrderedCollection new.
6d9ff4af7d5c class: RegressionTests::ExceptionTest
Claus Gittinger <cg@exept.de>
parents: 641
diff changeset
    76
    zero := 0.
6d9ff4af7d5c class: RegressionTests::ExceptionTest
Claus Gittinger <cg@exept.de>
parents: 641
diff changeset
    77
6d9ff4af7d5c class: RegressionTests::ExceptionTest
Claus Gittinger <cg@exept.de>
parents: 641
diff changeset
    78
    self should:[
6d9ff4af7d5c class: RegressionTests::ExceptionTest
Claus Gittinger <cg@exept.de>
parents: 641
diff changeset
    79
        [ 0 // zero ] on:ZeroDivide do:[:ex|
6d9ff4af7d5c class: RegressionTests::ExceptionTest
Claus Gittinger <cg@exept.de>
parents: 641
diff changeset
    80
            result add:#Error.
6d9ff4af7d5c class: RegressionTests::ExceptionTest
Claus Gittinger <cg@exept.de>
parents: 641
diff changeset
    81
            0 // zero
6d9ff4af7d5c class: RegressionTests::ExceptionTest
Claus Gittinger <cg@exept.de>
parents: 641
diff changeset
    82
        ].
6d9ff4af7d5c class: RegressionTests::ExceptionTest
Claus Gittinger <cg@exept.de>
parents: 641
diff changeset
    83
    ] raise:ZeroDivide.
6d9ff4af7d5c class: RegressionTests::ExceptionTest
Claus Gittinger <cg@exept.de>
parents: 641
diff changeset
    84
    self assert:(result size == 1).
6d9ff4af7d5c class: RegressionTests::ExceptionTest
Claus Gittinger <cg@exept.de>
parents: 641
diff changeset
    85
    self assert:(result first == #Error).
6d9ff4af7d5c class: RegressionTests::ExceptionTest
Claus Gittinger <cg@exept.de>
parents: 641
diff changeset
    86
!
6d9ff4af7d5c class: RegressionTests::ExceptionTest
Claus Gittinger <cg@exept.de>
parents: 641
diff changeset
    87
6d9ff4af7d5c class: RegressionTests::ExceptionTest
Claus Gittinger <cg@exept.de>
parents: 641
diff changeset
    88
test03
6d9ff4af7d5c class: RegressionTests::ExceptionTest
Claus Gittinger <cg@exept.de>
parents: 641
diff changeset
    89
6d9ff4af7d5c class: RegressionTests::ExceptionTest
Claus Gittinger <cg@exept.de>
parents: 641
diff changeset
    90
    |result zero|
6d9ff4af7d5c class: RegressionTests::ExceptionTest
Claus Gittinger <cg@exept.de>
parents: 641
diff changeset
    91
6d9ff4af7d5c class: RegressionTests::ExceptionTest
Claus Gittinger <cg@exept.de>
parents: 641
diff changeset
    92
    result := OrderedCollection new.
6d9ff4af7d5c class: RegressionTests::ExceptionTest
Claus Gittinger <cg@exept.de>
parents: 641
diff changeset
    93
    zero := 0.
6d9ff4af7d5c class: RegressionTests::ExceptionTest
Claus Gittinger <cg@exept.de>
parents: 641
diff changeset
    94
6d9ff4af7d5c class: RegressionTests::ExceptionTest
Claus Gittinger <cg@exept.de>
parents: 641
diff changeset
    95
    self should:[
6d9ff4af7d5c class: RegressionTests::ExceptionTest
Claus Gittinger <cg@exept.de>
parents: 641
diff changeset
    96
        [ 0 // zero ] on:ZeroDivide do:[:ex|
6d9ff4af7d5c class: RegressionTests::ExceptionTest
Claus Gittinger <cg@exept.de>
parents: 641
diff changeset
    97
            result add:#Error.
6d9ff4af7d5c class: RegressionTests::ExceptionTest
Claus Gittinger <cg@exept.de>
parents: 641
diff changeset
    98
            [ 0 // zero ] on:ZeroDivide do:[:ex|
6d9ff4af7d5c class: RegressionTests::ExceptionTest
Claus Gittinger <cg@exept.de>
parents: 641
diff changeset
    99
                result add:#Error1.
6d9ff4af7d5c class: RegressionTests::ExceptionTest
Claus Gittinger <cg@exept.de>
parents: 641
diff changeset
   100
                ex reject.
6d9ff4af7d5c class: RegressionTests::ExceptionTest
Claus Gittinger <cg@exept.de>
parents: 641
diff changeset
   101
            ].
6d9ff4af7d5c class: RegressionTests::ExceptionTest
Claus Gittinger <cg@exept.de>
parents: 641
diff changeset
   102
        ].
6d9ff4af7d5c class: RegressionTests::ExceptionTest
Claus Gittinger <cg@exept.de>
parents: 641
diff changeset
   103
    ] raise:ZeroDivide.
6d9ff4af7d5c class: RegressionTests::ExceptionTest
Claus Gittinger <cg@exept.de>
parents: 641
diff changeset
   104
    self assert:(result size == 2).
6d9ff4af7d5c class: RegressionTests::ExceptionTest
Claus Gittinger <cg@exept.de>
parents: 641
diff changeset
   105
    self assert:(result first == #Error).
6d9ff4af7d5c class: RegressionTests::ExceptionTest
Claus Gittinger <cg@exept.de>
parents: 641
diff changeset
   106
    self assert:(result second == #Error1).
6d9ff4af7d5c class: RegressionTests::ExceptionTest
Claus Gittinger <cg@exept.de>
parents: 641
diff changeset
   107
!
6d9ff4af7d5c class: RegressionTests::ExceptionTest
Claus Gittinger <cg@exept.de>
parents: 641
diff changeset
   108
6d9ff4af7d5c class: RegressionTests::ExceptionTest
Claus Gittinger <cg@exept.de>
parents: 641
diff changeset
   109
test04_on_do
6d9ff4af7d5c class: RegressionTests::ExceptionTest
Claus Gittinger <cg@exept.de>
parents: 641
diff changeset
   110
6d9ff4af7d5c class: RegressionTests::ExceptionTest
Claus Gittinger <cg@exept.de>
parents: 641
diff changeset
   111
    |exceptionHappened zero|
6d9ff4af7d5c class: RegressionTests::ExceptionTest
Claus Gittinger <cg@exept.de>
parents: 641
diff changeset
   112
6d9ff4af7d5c class: RegressionTests::ExceptionTest
Claus Gittinger <cg@exept.de>
parents: 641
diff changeset
   113
    zero := 0.
6d9ff4af7d5c class: RegressionTests::ExceptionTest
Claus Gittinger <cg@exept.de>
parents: 641
diff changeset
   114
    exceptionHappened := false.
6d9ff4af7d5c class: RegressionTests::ExceptionTest
Claus Gittinger <cg@exept.de>
parents: 641
diff changeset
   115
6d9ff4af7d5c class: RegressionTests::ExceptionTest
Claus Gittinger <cg@exept.de>
parents: 641
diff changeset
   116
    [0 // zero] 
6d9ff4af7d5c class: RegressionTests::ExceptionTest
Claus Gittinger <cg@exept.de>
parents: 641
diff changeset
   117
        on:ZeroDivide 
6d9ff4af7d5c class: RegressionTests::ExceptionTest
Claus Gittinger <cg@exept.de>
parents: 641
diff changeset
   118
        do:[:ex|
6d9ff4af7d5c class: RegressionTests::ExceptionTest
Claus Gittinger <cg@exept.de>
parents: 641
diff changeset
   119
            exceptionHappened := true
6d9ff4af7d5c class: RegressionTests::ExceptionTest
Claus Gittinger <cg@exept.de>
parents: 641
diff changeset
   120
        ].
6d9ff4af7d5c class: RegressionTests::ExceptionTest
Claus Gittinger <cg@exept.de>
parents: 641
diff changeset
   121
6d9ff4af7d5c class: RegressionTests::ExceptionTest
Claus Gittinger <cg@exept.de>
parents: 641
diff changeset
   122
    self assert:(exceptionHappened).
6d9ff4af7d5c class: RegressionTests::ExceptionTest
Claus Gittinger <cg@exept.de>
parents: 641
diff changeset
   123
!
6d9ff4af7d5c class: RegressionTests::ExceptionTest
Claus Gittinger <cg@exept.de>
parents: 641
diff changeset
   124
6d9ff4af7d5c class: RegressionTests::ExceptionTest
Claus Gittinger <cg@exept.de>
parents: 641
diff changeset
   125
test05_on_do_ensure
6d9ff4af7d5c class: RegressionTests::ExceptionTest
Claus Gittinger <cg@exept.de>
parents: 641
diff changeset
   126
6d9ff4af7d5c class: RegressionTests::ExceptionTest
Claus Gittinger <cg@exept.de>
parents: 641
diff changeset
   127
    |exceptionHappened ensureCalled zero|
6d9ff4af7d5c class: RegressionTests::ExceptionTest
Claus Gittinger <cg@exept.de>
parents: 641
diff changeset
   128
6d9ff4af7d5c class: RegressionTests::ExceptionTest
Claus Gittinger <cg@exept.de>
parents: 641
diff changeset
   129
    zero := 0.
6d9ff4af7d5c class: RegressionTests::ExceptionTest
Claus Gittinger <cg@exept.de>
parents: 641
diff changeset
   130
    exceptionHappened := ensureCalled := false.
6d9ff4af7d5c class: RegressionTests::ExceptionTest
Claus Gittinger <cg@exept.de>
parents: 641
diff changeset
   131
6d9ff4af7d5c class: RegressionTests::ExceptionTest
Claus Gittinger <cg@exept.de>
parents: 641
diff changeset
   132
    [0 // zero] 
6d9ff4af7d5c class: RegressionTests::ExceptionTest
Claus Gittinger <cg@exept.de>
parents: 641
diff changeset
   133
        on:ZeroDivide 
6d9ff4af7d5c class: RegressionTests::ExceptionTest
Claus Gittinger <cg@exept.de>
parents: 641
diff changeset
   134
        do:[:ex| exceptionHappened := true]
6d9ff4af7d5c class: RegressionTests::ExceptionTest
Claus Gittinger <cg@exept.de>
parents: 641
diff changeset
   135
        ensure:[ ensureCalled := true ].
6d9ff4af7d5c class: RegressionTests::ExceptionTest
Claus Gittinger <cg@exept.de>
parents: 641
diff changeset
   136
6d9ff4af7d5c class: RegressionTests::ExceptionTest
Claus Gittinger <cg@exept.de>
parents: 641
diff changeset
   137
    self assert:(exceptionHappened).
6d9ff4af7d5c class: RegressionTests::ExceptionTest
Claus Gittinger <cg@exept.de>
parents: 641
diff changeset
   138
    self assert:(ensureCalled).
6d9ff4af7d5c class: RegressionTests::ExceptionTest
Claus Gittinger <cg@exept.de>
parents: 641
diff changeset
   139
!
6d9ff4af7d5c class: RegressionTests::ExceptionTest
Claus Gittinger <cg@exept.de>
parents: 641
diff changeset
   140
6d9ff4af7d5c class: RegressionTests::ExceptionTest
Claus Gittinger <cg@exept.de>
parents: 641
diff changeset
   141
test06_on_do_ensure
6d9ff4af7d5c class: RegressionTests::ExceptionTest
Claus Gittinger <cg@exept.de>
parents: 641
diff changeset
   142
6d9ff4af7d5c class: RegressionTests::ExceptionTest
Claus Gittinger <cg@exept.de>
parents: 641
diff changeset
   143
    |exceptionHappened ensureCalled zero|
6d9ff4af7d5c class: RegressionTests::ExceptionTest
Claus Gittinger <cg@exept.de>
parents: 641
diff changeset
   144
6d9ff4af7d5c class: RegressionTests::ExceptionTest
Claus Gittinger <cg@exept.de>
parents: 641
diff changeset
   145
    zero := 0.
6d9ff4af7d5c class: RegressionTests::ExceptionTest
Claus Gittinger <cg@exept.de>
parents: 641
diff changeset
   146
    exceptionHappened := ensureCalled := false.
6d9ff4af7d5c class: RegressionTests::ExceptionTest
Claus Gittinger <cg@exept.de>
parents: 641
diff changeset
   147
6d9ff4af7d5c class: RegressionTests::ExceptionTest
Claus Gittinger <cg@exept.de>
parents: 641
diff changeset
   148
    [zero // 1] 
6d9ff4af7d5c class: RegressionTests::ExceptionTest
Claus Gittinger <cg@exept.de>
parents: 641
diff changeset
   149
        on:ZeroDivide 
6d9ff4af7d5c class: RegressionTests::ExceptionTest
Claus Gittinger <cg@exept.de>
parents: 641
diff changeset
   150
        do:[:ex| exceptionHappened := true]
6d9ff4af7d5c class: RegressionTests::ExceptionTest
Claus Gittinger <cg@exept.de>
parents: 641
diff changeset
   151
        ensure:[ ensureCalled := true ].
6d9ff4af7d5c class: RegressionTests::ExceptionTest
Claus Gittinger <cg@exept.de>
parents: 641
diff changeset
   152
6d9ff4af7d5c class: RegressionTests::ExceptionTest
Claus Gittinger <cg@exept.de>
parents: 641
diff changeset
   153
    self assert:(exceptionHappened not).
6d9ff4af7d5c class: RegressionTests::ExceptionTest
Claus Gittinger <cg@exept.de>
parents: 641
diff changeset
   154
    self assert:(ensureCalled).
6d9ff4af7d5c class: RegressionTests::ExceptionTest
Claus Gittinger <cg@exept.de>
parents: 641
diff changeset
   155
!
6d9ff4af7d5c class: RegressionTests::ExceptionTest
Claus Gittinger <cg@exept.de>
parents: 641
diff changeset
   156
6d9ff4af7d5c class: RegressionTests::ExceptionTest
Claus Gittinger <cg@exept.de>
parents: 641
diff changeset
   157
test07_error_in_unwind
6d9ff4af7d5c class: RegressionTests::ExceptionTest
Claus Gittinger <cg@exept.de>
parents: 641
diff changeset
   158
    "think about this - not sure, how to react on an error happening in the unwind..."
6d9ff4af7d5c class: RegressionTests::ExceptionTest
Claus Gittinger <cg@exept.de>
parents: 641
diff changeset
   159
6d9ff4af7d5c class: RegressionTests::ExceptionTest
Claus Gittinger <cg@exept.de>
parents: 641
diff changeset
   160
    |zero trace|
6d9ff4af7d5c class: RegressionTests::ExceptionTest
Claus Gittinger <cg@exept.de>
parents: 641
diff changeset
   161
6d9ff4af7d5c class: RegressionTests::ExceptionTest
Claus Gittinger <cg@exept.de>
parents: 641
diff changeset
   162
    zero := 0.
6d9ff4af7d5c class: RegressionTests::ExceptionTest
Claus Gittinger <cg@exept.de>
parents: 641
diff changeset
   163
6d9ff4af7d5c class: RegressionTests::ExceptionTest
Claus Gittinger <cg@exept.de>
parents: 641
diff changeset
   164
    trace := OrderedCollection new.
943
ca26d59e7f3c class: RegressionTests::ExceptionTest
Claus Gittinger <cg@exept.de>
parents: 917
diff changeset
   165
    self shouldnt:[
916
6d9ff4af7d5c class: RegressionTests::ExceptionTest
Claus Gittinger <cg@exept.de>
parents: 641
diff changeset
   166
        Error handle:[:ex |
6d9ff4af7d5c class: RegressionTests::ExceptionTest
Claus Gittinger <cg@exept.de>
parents: 641
diff changeset
   167
            trace add:5.
6d9ff4af7d5c class: RegressionTests::ExceptionTest
Claus Gittinger <cg@exept.de>
parents: 641
diff changeset
   168
        ] do:[
6d9ff4af7d5c class: RegressionTests::ExceptionTest
Claus Gittinger <cg@exept.de>
parents: 641
diff changeset
   169
            [
6d9ff4af7d5c class: RegressionTests::ExceptionTest
Claus Gittinger <cg@exept.de>
parents: 641
diff changeset
   170
                trace add:1.
6d9ff4af7d5c class: RegressionTests::ExceptionTest
Claus Gittinger <cg@exept.de>
parents: 641
diff changeset
   171
                1 // zero.
6d9ff4af7d5c class: RegressionTests::ExceptionTest
Claus Gittinger <cg@exept.de>
parents: 641
diff changeset
   172
                trace add:2.
6d9ff4af7d5c class: RegressionTests::ExceptionTest
Claus Gittinger <cg@exept.de>
parents: 641
diff changeset
   173
            ] ensure:[
6d9ff4af7d5c class: RegressionTests::ExceptionTest
Claus Gittinger <cg@exept.de>
parents: 641
diff changeset
   174
                trace add:3.
6d9ff4af7d5c class: RegressionTests::ExceptionTest
Claus Gittinger <cg@exept.de>
parents: 641
diff changeset
   175
                1 // zero.
6d9ff4af7d5c class: RegressionTests::ExceptionTest
Claus Gittinger <cg@exept.de>
parents: 641
diff changeset
   176
                trace add:4.
6d9ff4af7d5c class: RegressionTests::ExceptionTest
Claus Gittinger <cg@exept.de>
parents: 641
diff changeset
   177
            ].
6d9ff4af7d5c class: RegressionTests::ExceptionTest
Claus Gittinger <cg@exept.de>
parents: 641
diff changeset
   178
        ].
6d9ff4af7d5c class: RegressionTests::ExceptionTest
Claus Gittinger <cg@exept.de>
parents: 641
diff changeset
   179
    ] raise:Error.
6d9ff4af7d5c class: RegressionTests::ExceptionTest
Claus Gittinger <cg@exept.de>
parents: 641
diff changeset
   180
943
ca26d59e7f3c class: RegressionTests::ExceptionTest
Claus Gittinger <cg@exept.de>
parents: 917
diff changeset
   181
    self assert:(trace asArray = #(1 5 3 5)).
916
6d9ff4af7d5c class: RegressionTests::ExceptionTest
Claus Gittinger <cg@exept.de>
parents: 641
diff changeset
   182
!
6d9ff4af7d5c class: RegressionTests::ExceptionTest
Claus Gittinger <cg@exept.de>
parents: 641
diff changeset
   183
6d9ff4af7d5c class: RegressionTests::ExceptionTest
Claus Gittinger <cg@exept.de>
parents: 641
diff changeset
   184
test08_error_in_unwind2
6d9ff4af7d5c class: RegressionTests::ExceptionTest
Claus Gittinger <cg@exept.de>
parents: 641
diff changeset
   185
    "no matter what happens in test7 - this one should work !!"
6d9ff4af7d5c class: RegressionTests::ExceptionTest
Claus Gittinger <cg@exept.de>
parents: 641
diff changeset
   186
6d9ff4af7d5c class: RegressionTests::ExceptionTest
Claus Gittinger <cg@exept.de>
parents: 641
diff changeset
   187
    |zero trace|
6d9ff4af7d5c class: RegressionTests::ExceptionTest
Claus Gittinger <cg@exept.de>
parents: 641
diff changeset
   188
6d9ff4af7d5c class: RegressionTests::ExceptionTest
Claus Gittinger <cg@exept.de>
parents: 641
diff changeset
   189
    zero := 0.
6d9ff4af7d5c class: RegressionTests::ExceptionTest
Claus Gittinger <cg@exept.de>
parents: 641
diff changeset
   190
6d9ff4af7d5c class: RegressionTests::ExceptionTest
Claus Gittinger <cg@exept.de>
parents: 641
diff changeset
   191
    trace := OrderedCollection new.
6d9ff4af7d5c class: RegressionTests::ExceptionTest
Claus Gittinger <cg@exept.de>
parents: 641
diff changeset
   192
    self shouldnt:[
6d9ff4af7d5c class: RegressionTests::ExceptionTest
Claus Gittinger <cg@exept.de>
parents: 641
diff changeset
   193
        Error handle:[:ex |
6d9ff4af7d5c class: RegressionTests::ExceptionTest
Claus Gittinger <cg@exept.de>
parents: 641
diff changeset
   194
            trace add:6.
6d9ff4af7d5c class: RegressionTests::ExceptionTest
Claus Gittinger <cg@exept.de>
parents: 641
diff changeset
   195
        ] do:[
6d9ff4af7d5c class: RegressionTests::ExceptionTest
Claus Gittinger <cg@exept.de>
parents: 641
diff changeset
   196
            Error handle:[:ex |
6d9ff4af7d5c class: RegressionTests::ExceptionTest
Claus Gittinger <cg@exept.de>
parents: 641
diff changeset
   197
                trace add:5.
6d9ff4af7d5c class: RegressionTests::ExceptionTest
Claus Gittinger <cg@exept.de>
parents: 641
diff changeset
   198
            ] do:[
6d9ff4af7d5c class: RegressionTests::ExceptionTest
Claus Gittinger <cg@exept.de>
parents: 641
diff changeset
   199
                [
6d9ff4af7d5c class: RegressionTests::ExceptionTest
Claus Gittinger <cg@exept.de>
parents: 641
diff changeset
   200
                    trace add:1.
6d9ff4af7d5c class: RegressionTests::ExceptionTest
Claus Gittinger <cg@exept.de>
parents: 641
diff changeset
   201
                    1 // zero.
6d9ff4af7d5c class: RegressionTests::ExceptionTest
Claus Gittinger <cg@exept.de>
parents: 641
diff changeset
   202
                    trace add:2.
6d9ff4af7d5c class: RegressionTests::ExceptionTest
Claus Gittinger <cg@exept.de>
parents: 641
diff changeset
   203
                ] ensure:[
6d9ff4af7d5c class: RegressionTests::ExceptionTest
Claus Gittinger <cg@exept.de>
parents: 641
diff changeset
   204
                    trace add:3.
6d9ff4af7d5c class: RegressionTests::ExceptionTest
Claus Gittinger <cg@exept.de>
parents: 641
diff changeset
   205
                    1 // zero.
6d9ff4af7d5c class: RegressionTests::ExceptionTest
Claus Gittinger <cg@exept.de>
parents: 641
diff changeset
   206
                    trace add:4.
6d9ff4af7d5c class: RegressionTests::ExceptionTest
Claus Gittinger <cg@exept.de>
parents: 641
diff changeset
   207
                ].
6d9ff4af7d5c class: RegressionTests::ExceptionTest
Claus Gittinger <cg@exept.de>
parents: 641
diff changeset
   208
            ].
6d9ff4af7d5c class: RegressionTests::ExceptionTest
Claus Gittinger <cg@exept.de>
parents: 641
diff changeset
   209
        ].
6d9ff4af7d5c class: RegressionTests::ExceptionTest
Claus Gittinger <cg@exept.de>
parents: 641
diff changeset
   210
    ] raise:Error.
6d9ff4af7d5c class: RegressionTests::ExceptionTest
Claus Gittinger <cg@exept.de>
parents: 641
diff changeset
   211
943
ca26d59e7f3c class: RegressionTests::ExceptionTest
Claus Gittinger <cg@exept.de>
parents: 917
diff changeset
   212
    self assert:(trace asArray = #(1 5 3 5)).
241
5b8a5dd10628 initial checkin
Stefan Vogel <sv@exept.de>
parents:
diff changeset
   213
5b8a5dd10628 initial checkin
Stefan Vogel <sv@exept.de>
parents:
diff changeset
   214
916
6d9ff4af7d5c class: RegressionTests::ExceptionTest
Claus Gittinger <cg@exept.de>
parents: 641
diff changeset
   215
    "Created: / 24-08-2011 / 14:02:01 / cg"
241
5b8a5dd10628 initial checkin
Stefan Vogel <sv@exept.de>
parents:
diff changeset
   216
!
5b8a5dd10628 initial checkin
Stefan Vogel <sv@exept.de>
parents:
diff changeset
   217
916
6d9ff4af7d5c class: RegressionTests::ExceptionTest
Claus Gittinger <cg@exept.de>
parents: 641
diff changeset
   218
test09_reraiseOuterHandlerWithEnsure
6d9ff4af7d5c class: RegressionTests::ExceptionTest
Claus Gittinger <cg@exept.de>
parents: 641
diff changeset
   219
    |trace|
6d9ff4af7d5c class: RegressionTests::ExceptionTest
Claus Gittinger <cg@exept.de>
parents: 641
diff changeset
   220
6d9ff4af7d5c class: RegressionTests::ExceptionTest
Claus Gittinger <cg@exept.de>
parents: 641
diff changeset
   221
    trace := OrderedCollection new.
6d9ff4af7d5c class: RegressionTests::ExceptionTest
Claus Gittinger <cg@exept.de>
parents: 641
diff changeset
   222
6d9ff4af7d5c class: RegressionTests::ExceptionTest
Claus Gittinger <cg@exept.de>
parents: 641
diff changeset
   223
    AbortSignal handle:[:ex |
6d9ff4af7d5c class: RegressionTests::ExceptionTest
Claus Gittinger <cg@exept.de>
parents: 641
diff changeset
   224
        trace add:1.
6d9ff4af7d5c class: RegressionTests::ExceptionTest
Claus Gittinger <cg@exept.de>
parents: 641
diff changeset
   225
    ] do:[
6d9ff4af7d5c class: RegressionTests::ExceptionTest
Claus Gittinger <cg@exept.de>
parents: 641
diff changeset
   226
        [
6d9ff4af7d5c class: RegressionTests::ExceptionTest
Claus Gittinger <cg@exept.de>
parents: 641
diff changeset
   227
            AbortSignal handle:[:ex |
6d9ff4af7d5c class: RegressionTests::ExceptionTest
Claus Gittinger <cg@exept.de>
parents: 641
diff changeset
   228
                trace add:2.
6d9ff4af7d5c class: RegressionTests::ExceptionTest
Claus Gittinger <cg@exept.de>
parents: 641
diff changeset
   229
                AbortSignal raise.
6d9ff4af7d5c class: RegressionTests::ExceptionTest
Claus Gittinger <cg@exept.de>
parents: 641
diff changeset
   230
                trace add:3.
6d9ff4af7d5c class: RegressionTests::ExceptionTest
Claus Gittinger <cg@exept.de>
parents: 641
diff changeset
   231
            ] do:[
6d9ff4af7d5c class: RegressionTests::ExceptionTest
Claus Gittinger <cg@exept.de>
parents: 641
diff changeset
   232
                trace add:4.
6d9ff4af7d5c class: RegressionTests::ExceptionTest
Claus Gittinger <cg@exept.de>
parents: 641
diff changeset
   233
                AbortSignal raise.
6d9ff4af7d5c class: RegressionTests::ExceptionTest
Claus Gittinger <cg@exept.de>
parents: 641
diff changeset
   234
                trace add:5.
6d9ff4af7d5c class: RegressionTests::ExceptionTest
Claus Gittinger <cg@exept.de>
parents: 641
diff changeset
   235
            ].
6d9ff4af7d5c class: RegressionTests::ExceptionTest
Claus Gittinger <cg@exept.de>
parents: 641
diff changeset
   236
            trace add:6.
6d9ff4af7d5c class: RegressionTests::ExceptionTest
Claus Gittinger <cg@exept.de>
parents: 641
diff changeset
   237
        ] ensure:[
6d9ff4af7d5c class: RegressionTests::ExceptionTest
Claus Gittinger <cg@exept.de>
parents: 641
diff changeset
   238
            trace add:9
6d9ff4af7d5c class: RegressionTests::ExceptionTest
Claus Gittinger <cg@exept.de>
parents: 641
diff changeset
   239
        ].
6d9ff4af7d5c class: RegressionTests::ExceptionTest
Claus Gittinger <cg@exept.de>
parents: 641
diff changeset
   240
    ].
6d9ff4af7d5c class: RegressionTests::ExceptionTest
Claus Gittinger <cg@exept.de>
parents: 641
diff changeset
   241
    trace add:7.
6d9ff4af7d5c class: RegressionTests::ExceptionTest
Claus Gittinger <cg@exept.de>
parents: 641
diff changeset
   242
6d9ff4af7d5c class: RegressionTests::ExceptionTest
Claus Gittinger <cg@exept.de>
parents: 641
diff changeset
   243
    self assert:(trace asArray = #(4 2 1 9 7)).
6d9ff4af7d5c class: RegressionTests::ExceptionTest
Claus Gittinger <cg@exept.de>
parents: 641
diff changeset
   244
!
6d9ff4af7d5c class: RegressionTests::ExceptionTest
Claus Gittinger <cg@exept.de>
parents: 641
diff changeset
   245
6d9ff4af7d5c class: RegressionTests::ExceptionTest
Claus Gittinger <cg@exept.de>
parents: 641
diff changeset
   246
test10_reraiseOuterHandlerWithEnsure
6d9ff4af7d5c class: RegressionTests::ExceptionTest
Claus Gittinger <cg@exept.de>
parents: 641
diff changeset
   247
    |trace|
6d9ff4af7d5c class: RegressionTests::ExceptionTest
Claus Gittinger <cg@exept.de>
parents: 641
diff changeset
   248
6d9ff4af7d5c class: RegressionTests::ExceptionTest
Claus Gittinger <cg@exept.de>
parents: 641
diff changeset
   249
    trace := OrderedCollection new.
6d9ff4af7d5c class: RegressionTests::ExceptionTest
Claus Gittinger <cg@exept.de>
parents: 641
diff changeset
   250
6d9ff4af7d5c class: RegressionTests::ExceptionTest
Claus Gittinger <cg@exept.de>
parents: 641
diff changeset
   251
    AbortSignal handle:[:ex |
6d9ff4af7d5c class: RegressionTests::ExceptionTest
Claus Gittinger <cg@exept.de>
parents: 641
diff changeset
   252
        trace add:1.
6d9ff4af7d5c class: RegressionTests::ExceptionTest
Claus Gittinger <cg@exept.de>
parents: 641
diff changeset
   253
    ] do:[
6d9ff4af7d5c class: RegressionTests::ExceptionTest
Claus Gittinger <cg@exept.de>
parents: 641
diff changeset
   254
        [
6d9ff4af7d5c class: RegressionTests::ExceptionTest
Claus Gittinger <cg@exept.de>
parents: 641
diff changeset
   255
            AbortSignal handle:[:ex |
6d9ff4af7d5c class: RegressionTests::ExceptionTest
Claus Gittinger <cg@exept.de>
parents: 641
diff changeset
   256
                trace add:2.
6d9ff4af7d5c class: RegressionTests::ExceptionTest
Claus Gittinger <cg@exept.de>
parents: 641
diff changeset
   257
                AbortSignal raise.
6d9ff4af7d5c class: RegressionTests::ExceptionTest
Claus Gittinger <cg@exept.de>
parents: 641
diff changeset
   258
                trace add:3.
6d9ff4af7d5c class: RegressionTests::ExceptionTest
Claus Gittinger <cg@exept.de>
parents: 641
diff changeset
   259
            ] do:[
6d9ff4af7d5c class: RegressionTests::ExceptionTest
Claus Gittinger <cg@exept.de>
parents: 641
diff changeset
   260
                trace add:4.
6d9ff4af7d5c class: RegressionTests::ExceptionTest
Claus Gittinger <cg@exept.de>
parents: 641
diff changeset
   261
                AbortSignal raise.
6d9ff4af7d5c class: RegressionTests::ExceptionTest
Claus Gittinger <cg@exept.de>
parents: 641
diff changeset
   262
                trace add:5.
6d9ff4af7d5c class: RegressionTests::ExceptionTest
Claus Gittinger <cg@exept.de>
parents: 641
diff changeset
   263
            ].
6d9ff4af7d5c class: RegressionTests::ExceptionTest
Claus Gittinger <cg@exept.de>
parents: 641
diff changeset
   264
            trace add:6.
6d9ff4af7d5c class: RegressionTests::ExceptionTest
Claus Gittinger <cg@exept.de>
parents: 641
diff changeset
   265
        ] ensure:[
6d9ff4af7d5c class: RegressionTests::ExceptionTest
Claus Gittinger <cg@exept.de>
parents: 641
diff changeset
   266
            trace add:9
6d9ff4af7d5c class: RegressionTests::ExceptionTest
Claus Gittinger <cg@exept.de>
parents: 641
diff changeset
   267
        ].
6d9ff4af7d5c class: RegressionTests::ExceptionTest
Claus Gittinger <cg@exept.de>
parents: 641
diff changeset
   268
    ].
6d9ff4af7d5c class: RegressionTests::ExceptionTest
Claus Gittinger <cg@exept.de>
parents: 641
diff changeset
   269
    trace add:7.
6d9ff4af7d5c class: RegressionTests::ExceptionTest
Claus Gittinger <cg@exept.de>
parents: 641
diff changeset
   270
6d9ff4af7d5c class: RegressionTests::ExceptionTest
Claus Gittinger <cg@exept.de>
parents: 641
diff changeset
   271
    self assert:(trace asArray = #(4 2 1 9 7)).
6d9ff4af7d5c class: RegressionTests::ExceptionTest
Claus Gittinger <cg@exept.de>
parents: 641
diff changeset
   272
!
6d9ff4af7d5c class: RegressionTests::ExceptionTest
Claus Gittinger <cg@exept.de>
parents: 641
diff changeset
   273
6d9ff4af7d5c class: RegressionTests::ExceptionTest
Claus Gittinger <cg@exept.de>
parents: 641
diff changeset
   274
test11
241
5b8a5dd10628 initial checkin
Stefan Vogel <sv@exept.de>
parents:
diff changeset
   275
5b8a5dd10628 initial checkin
Stefan Vogel <sv@exept.de>
parents:
diff changeset
   276
    |result zero|
5b8a5dd10628 initial checkin
Stefan Vogel <sv@exept.de>
parents:
diff changeset
   277
5b8a5dd10628 initial checkin
Stefan Vogel <sv@exept.de>
parents:
diff changeset
   278
    result := OrderedCollection new.
5b8a5dd10628 initial checkin
Stefan Vogel <sv@exept.de>
parents:
diff changeset
   279
    zero := 0.
5b8a5dd10628 initial checkin
Stefan Vogel <sv@exept.de>
parents:
diff changeset
   280
5b8a5dd10628 initial checkin
Stefan Vogel <sv@exept.de>
parents:
diff changeset
   281
    [
5b8a5dd10628 initial checkin
Stefan Vogel <sv@exept.de>
parents:
diff changeset
   282
        [
5b8a5dd10628 initial checkin
Stefan Vogel <sv@exept.de>
parents:
diff changeset
   283
            Warning handle:[:ex | result add:#Warning ] do:[ 2 // zero ].
5b8a5dd10628 initial checkin
Stefan Vogel <sv@exept.de>
parents:
diff changeset
   284
        ] on:ZeroDivide do:[:ex |
5b8a5dd10628 initial checkin
Stefan Vogel <sv@exept.de>
parents:
diff changeset
   285
            result add:#Error.
5b8a5dd10628 initial checkin
Stefan Vogel <sv@exept.de>
parents:
diff changeset
   286
            ex reject.
5b8a5dd10628 initial checkin
Stefan Vogel <sv@exept.de>
parents:
diff changeset
   287
            [
5b8a5dd10628 initial checkin
Stefan Vogel <sv@exept.de>
parents:
diff changeset
   288
                self warn:ex description.
5b8a5dd10628 initial checkin
Stefan Vogel <sv@exept.de>
parents:
diff changeset
   289
            ] on:Warning do:[:ex| result add:#Warning2]
5b8a5dd10628 initial checkin
Stefan Vogel <sv@exept.de>
parents:
diff changeset
   290
        ]
5b8a5dd10628 initial checkin
Stefan Vogel <sv@exept.de>
parents:
diff changeset
   291
    ] on:ZeroDivide do:[:ex |
5b8a5dd10628 initial checkin
Stefan Vogel <sv@exept.de>
parents:
diff changeset
   292
        result add:#Error2
5b8a5dd10628 initial checkin
Stefan Vogel <sv@exept.de>
parents:
diff changeset
   293
    ].
5b8a5dd10628 initial checkin
Stefan Vogel <sv@exept.de>
parents:
diff changeset
   294
5b8a5dd10628 initial checkin
Stefan Vogel <sv@exept.de>
parents:
diff changeset
   295
    self assert:(result size == 2).
5b8a5dd10628 initial checkin
Stefan Vogel <sv@exept.de>
parents:
diff changeset
   296
    self assert:(result first == #Error).
5b8a5dd10628 initial checkin
Stefan Vogel <sv@exept.de>
parents:
diff changeset
   297
    self assert:(result second == #Error2)
5b8a5dd10628 initial checkin
Stefan Vogel <sv@exept.de>
parents:
diff changeset
   298
5b8a5dd10628 initial checkin
Stefan Vogel <sv@exept.de>
parents:
diff changeset
   299
    "
5b8a5dd10628 initial checkin
Stefan Vogel <sv@exept.de>
parents:
diff changeset
   300
     self run:#test10
5b8a5dd10628 initial checkin
Stefan Vogel <sv@exept.de>
parents:
diff changeset
   301
     self new test10
5b8a5dd10628 initial checkin
Stefan Vogel <sv@exept.de>
parents:
diff changeset
   302
    "
5b8a5dd10628 initial checkin
Stefan Vogel <sv@exept.de>
parents:
diff changeset
   303
!
5b8a5dd10628 initial checkin
Stefan Vogel <sv@exept.de>
parents:
diff changeset
   304
916
6d9ff4af7d5c class: RegressionTests::ExceptionTest
Claus Gittinger <cg@exept.de>
parents: 641
diff changeset
   305
test12_abortInEnsure
6d9ff4af7d5c class: RegressionTests::ExceptionTest
Claus Gittinger <cg@exept.de>
parents: 641
diff changeset
   306
    |trace setUp tearDown action|
6d9ff4af7d5c class: RegressionTests::ExceptionTest
Claus Gittinger <cg@exept.de>
parents: 641
diff changeset
   307
6d9ff4af7d5c class: RegressionTests::ExceptionTest
Claus Gittinger <cg@exept.de>
parents: 641
diff changeset
   308
    trace := OrderedCollection new.
6d9ff4af7d5c class: RegressionTests::ExceptionTest
Claus Gittinger <cg@exept.de>
parents: 641
diff changeset
   309
6d9ff4af7d5c class: RegressionTests::ExceptionTest
Claus Gittinger <cg@exept.de>
parents: 641
diff changeset
   310
    setUp :=
6d9ff4af7d5c class: RegressionTests::ExceptionTest
Claus Gittinger <cg@exept.de>
parents: 641
diff changeset
   311
        [
6d9ff4af7d5c class: RegressionTests::ExceptionTest
Claus Gittinger <cg@exept.de>
parents: 641
diff changeset
   312
            trace add:1. 
1363
806bd20a7e59 #BUGFIX
Claus Gittinger <cg@exept.de>
parents: 1275
diff changeset
   313
            "/ Transcript showCR:'1'.
916
6d9ff4af7d5c class: RegressionTests::ExceptionTest
Claus Gittinger <cg@exept.de>
parents: 641
diff changeset
   314
            AbortSignal raise.
6d9ff4af7d5c class: RegressionTests::ExceptionTest
Claus Gittinger <cg@exept.de>
parents: 641
diff changeset
   315
        ].
241
5b8a5dd10628 initial checkin
Stefan Vogel <sv@exept.de>
parents:
diff changeset
   316
916
6d9ff4af7d5c class: RegressionTests::ExceptionTest
Claus Gittinger <cg@exept.de>
parents: 641
diff changeset
   317
    tearDown :=
6d9ff4af7d5c class: RegressionTests::ExceptionTest
Claus Gittinger <cg@exept.de>
parents: 641
diff changeset
   318
        [
6d9ff4af7d5c class: RegressionTests::ExceptionTest
Claus Gittinger <cg@exept.de>
parents: 641
diff changeset
   319
            trace add:2.
1363
806bd20a7e59 #BUGFIX
Claus Gittinger <cg@exept.de>
parents: 1275
diff changeset
   320
            "/ Transcript showCR:'2'.
916
6d9ff4af7d5c class: RegressionTests::ExceptionTest
Claus Gittinger <cg@exept.de>
parents: 641
diff changeset
   321
            AbortSignal raise.
6d9ff4af7d5c class: RegressionTests::ExceptionTest
Claus Gittinger <cg@exept.de>
parents: 641
diff changeset
   322
        ].
241
5b8a5dd10628 initial checkin
Stefan Vogel <sv@exept.de>
parents:
diff changeset
   323
916
6d9ff4af7d5c class: RegressionTests::ExceptionTest
Claus Gittinger <cg@exept.de>
parents: 641
diff changeset
   324
    action :=
6d9ff4af7d5c class: RegressionTests::ExceptionTest
Claus Gittinger <cg@exept.de>
parents: 641
diff changeset
   325
        [
6d9ff4af7d5c class: RegressionTests::ExceptionTest
Claus Gittinger <cg@exept.de>
parents: 641
diff changeset
   326
            trace add:3.
1363
806bd20a7e59 #BUGFIX
Claus Gittinger <cg@exept.de>
parents: 1275
diff changeset
   327
            "/ Transcript showCR:'3'.
916
6d9ff4af7d5c class: RegressionTests::ExceptionTest
Claus Gittinger <cg@exept.de>
parents: 641
diff changeset
   328
        ].
241
5b8a5dd10628 initial checkin
Stefan Vogel <sv@exept.de>
parents:
diff changeset
   329
916
6d9ff4af7d5c class: RegressionTests::ExceptionTest
Claus Gittinger <cg@exept.de>
parents: 641
diff changeset
   330
    AbortSignal handle:[:ex |
6d9ff4af7d5c class: RegressionTests::ExceptionTest
Claus Gittinger <cg@exept.de>
parents: 641
diff changeset
   331
        trace add:44.
1363
806bd20a7e59 #BUGFIX
Claus Gittinger <cg@exept.de>
parents: 1275
diff changeset
   332
        "/ Transcript showCR:'44'.
916
6d9ff4af7d5c class: RegressionTests::ExceptionTest
Claus Gittinger <cg@exept.de>
parents: 641
diff changeset
   333
    ] do:[
6d9ff4af7d5c class: RegressionTests::ExceptionTest
Claus Gittinger <cg@exept.de>
parents: 641
diff changeset
   334
        AbortSignal handle:[:ex |
6d9ff4af7d5c class: RegressionTests::ExceptionTest
Claus Gittinger <cg@exept.de>
parents: 641
diff changeset
   335
            trace add:4.
1363
806bd20a7e59 #BUGFIX
Claus Gittinger <cg@exept.de>
parents: 1275
diff changeset
   336
            "/ Transcript showCR:'4'.
916
6d9ff4af7d5c class: RegressionTests::ExceptionTest
Claus Gittinger <cg@exept.de>
parents: 641
diff changeset
   337
        ] do:[
6d9ff4af7d5c class: RegressionTests::ExceptionTest
Claus Gittinger <cg@exept.de>
parents: 641
diff changeset
   338
            [
6d9ff4af7d5c class: RegressionTests::ExceptionTest
Claus Gittinger <cg@exept.de>
parents: 641
diff changeset
   339
                trace add:5.
1363
806bd20a7e59 #BUGFIX
Claus Gittinger <cg@exept.de>
parents: 1275
diff changeset
   340
                "/ Transcript showCR:'5'.
916
6d9ff4af7d5c class: RegressionTests::ExceptionTest
Claus Gittinger <cg@exept.de>
parents: 641
diff changeset
   341
                setUp value.
6d9ff4af7d5c class: RegressionTests::ExceptionTest
Claus Gittinger <cg@exept.de>
parents: 641
diff changeset
   342
                trace add:6.
1363
806bd20a7e59 #BUGFIX
Claus Gittinger <cg@exept.de>
parents: 1275
diff changeset
   343
                "/ Transcript showCR:'6'.
916
6d9ff4af7d5c class: RegressionTests::ExceptionTest
Claus Gittinger <cg@exept.de>
parents: 641
diff changeset
   344
                action value.
6d9ff4af7d5c class: RegressionTests::ExceptionTest
Claus Gittinger <cg@exept.de>
parents: 641
diff changeset
   345
                trace add:7.
1363
806bd20a7e59 #BUGFIX
Claus Gittinger <cg@exept.de>
parents: 1275
diff changeset
   346
                "/ Transcript showCR:'7'.
917
4c48bc5be61c class: RegressionTests::ExceptionTest
Stefan Vogel <sv@exept.de>
parents: 916
diff changeset
   347
            ] ensure: [
916
6d9ff4af7d5c class: RegressionTests::ExceptionTest
Claus Gittinger <cg@exept.de>
parents: 641
diff changeset
   348
                trace add:8.
1363
806bd20a7e59 #BUGFIX
Claus Gittinger <cg@exept.de>
parents: 1275
diff changeset
   349
                "/ Transcript showCR:'8'.
916
6d9ff4af7d5c class: RegressionTests::ExceptionTest
Claus Gittinger <cg@exept.de>
parents: 641
diff changeset
   350
                tearDown value
6d9ff4af7d5c class: RegressionTests::ExceptionTest
Claus Gittinger <cg@exept.de>
parents: 641
diff changeset
   351
                trace add:9.
1363
806bd20a7e59 #BUGFIX
Claus Gittinger <cg@exept.de>
parents: 1275
diff changeset
   352
                "/ Transcript showCR:'9'.
916
6d9ff4af7d5c class: RegressionTests::ExceptionTest
Claus Gittinger <cg@exept.de>
parents: 641
diff changeset
   353
            ].
241
5b8a5dd10628 initial checkin
Stefan Vogel <sv@exept.de>
parents:
diff changeset
   354
        ].
916
6d9ff4af7d5c class: RegressionTests::ExceptionTest
Claus Gittinger <cg@exept.de>
parents: 641
diff changeset
   355
    ].
917
4c48bc5be61c class: RegressionTests::ExceptionTest
Stefan Vogel <sv@exept.de>
parents: 916
diff changeset
   356
    trace add:10.
1363
806bd20a7e59 #BUGFIX
Claus Gittinger <cg@exept.de>
parents: 1275
diff changeset
   357
    "/ Transcript showCR:'10'.
944
815bbd31a33c class: RegressionTests::ExceptionTest
Claus Gittinger <cg@exept.de>
parents: 943
diff changeset
   358
    self assert:(trace asArray = #(5 1 4 8 2 4 10)).
241
5b8a5dd10628 initial checkin
Stefan Vogel <sv@exept.de>
parents:
diff changeset
   359
5b8a5dd10628 initial checkin
Stefan Vogel <sv@exept.de>
parents:
diff changeset
   360
    "
916
6d9ff4af7d5c class: RegressionTests::ExceptionTest
Claus Gittinger <cg@exept.de>
parents: 641
diff changeset
   361
     self new test12_reraiseOuterHandlerWithEnsure
349
8aeec57e44db *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 241
diff changeset
   362
    "
8aeec57e44db *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 241
diff changeset
   363
!
8aeec57e44db *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 241
diff changeset
   364
916
6d9ff4af7d5c class: RegressionTests::ExceptionTest
Claus Gittinger <cg@exept.de>
parents: 641
diff changeset
   365
test13_abortInEnsureInProcess
6d9ff4af7d5c class: RegressionTests::ExceptionTest
Claus Gittinger <cg@exept.de>
parents: 641
diff changeset
   366
    |trace setUp tearDown action p|
634
Claus Gittinger <cg@exept.de>
parents: 349
diff changeset
   367
Claus Gittinger <cg@exept.de>
parents: 349
diff changeset
   368
    trace := OrderedCollection new.
916
6d9ff4af7d5c class: RegressionTests::ExceptionTest
Claus Gittinger <cg@exept.de>
parents: 641
diff changeset
   369
6d9ff4af7d5c class: RegressionTests::ExceptionTest
Claus Gittinger <cg@exept.de>
parents: 641
diff changeset
   370
    setUp :=
6d9ff4af7d5c class: RegressionTests::ExceptionTest
Claus Gittinger <cg@exept.de>
parents: 641
diff changeset
   371
        [
6d9ff4af7d5c class: RegressionTests::ExceptionTest
Claus Gittinger <cg@exept.de>
parents: 641
diff changeset
   372
            trace add:1. 
1363
806bd20a7e59 #BUGFIX
Claus Gittinger <cg@exept.de>
parents: 1275
diff changeset
   373
            "/ Transcript showCR:'1'.
916
6d9ff4af7d5c class: RegressionTests::ExceptionTest
Claus Gittinger <cg@exept.de>
parents: 641
diff changeset
   374
            AbortSignal raise.
6d9ff4af7d5c class: RegressionTests::ExceptionTest
Claus Gittinger <cg@exept.de>
parents: 641
diff changeset
   375
        ].
6d9ff4af7d5c class: RegressionTests::ExceptionTest
Claus Gittinger <cg@exept.de>
parents: 641
diff changeset
   376
6d9ff4af7d5c class: RegressionTests::ExceptionTest
Claus Gittinger <cg@exept.de>
parents: 641
diff changeset
   377
    tearDown :=
6d9ff4af7d5c class: RegressionTests::ExceptionTest
Claus Gittinger <cg@exept.de>
parents: 641
diff changeset
   378
        [
6d9ff4af7d5c class: RegressionTests::ExceptionTest
Claus Gittinger <cg@exept.de>
parents: 641
diff changeset
   379
            trace add:2.
1363
806bd20a7e59 #BUGFIX
Claus Gittinger <cg@exept.de>
parents: 1275
diff changeset
   380
            "/ Transcript showCR:'2'.
916
6d9ff4af7d5c class: RegressionTests::ExceptionTest
Claus Gittinger <cg@exept.de>
parents: 641
diff changeset
   381
            AbortSignal raise.
6d9ff4af7d5c class: RegressionTests::ExceptionTest
Claus Gittinger <cg@exept.de>
parents: 641
diff changeset
   382
        ].
6d9ff4af7d5c class: RegressionTests::ExceptionTest
Claus Gittinger <cg@exept.de>
parents: 641
diff changeset
   383
6d9ff4af7d5c class: RegressionTests::ExceptionTest
Claus Gittinger <cg@exept.de>
parents: 641
diff changeset
   384
    action :=
6d9ff4af7d5c class: RegressionTests::ExceptionTest
Claus Gittinger <cg@exept.de>
parents: 641
diff changeset
   385
        [
6d9ff4af7d5c class: RegressionTests::ExceptionTest
Claus Gittinger <cg@exept.de>
parents: 641
diff changeset
   386
            trace add:3.
1363
806bd20a7e59 #BUGFIX
Claus Gittinger <cg@exept.de>
parents: 1275
diff changeset
   387
            "/ Transcript showCR:'3'.
916
6d9ff4af7d5c class: RegressionTests::ExceptionTest
Claus Gittinger <cg@exept.de>
parents: 641
diff changeset
   388
        ].
6d9ff4af7d5c class: RegressionTests::ExceptionTest
Claus Gittinger <cg@exept.de>
parents: 641
diff changeset
   389
6d9ff4af7d5c class: RegressionTests::ExceptionTest
Claus Gittinger <cg@exept.de>
parents: 641
diff changeset
   390
    p := 
6d9ff4af7d5c class: RegressionTests::ExceptionTest
Claus Gittinger <cg@exept.de>
parents: 641
diff changeset
   391
        [
6d9ff4af7d5c class: RegressionTests::ExceptionTest
Claus Gittinger <cg@exept.de>
parents: 641
diff changeset
   392
            AbortSignal handle:[:ex |
6d9ff4af7d5c class: RegressionTests::ExceptionTest
Claus Gittinger <cg@exept.de>
parents: 641
diff changeset
   393
                trace add:44.
1363
806bd20a7e59 #BUGFIX
Claus Gittinger <cg@exept.de>
parents: 1275
diff changeset
   394
                "/ Transcript showCR:'44'.
916
6d9ff4af7d5c class: RegressionTests::ExceptionTest
Claus Gittinger <cg@exept.de>
parents: 641
diff changeset
   395
            ] do:[
6d9ff4af7d5c class: RegressionTests::ExceptionTest
Claus Gittinger <cg@exept.de>
parents: 641
diff changeset
   396
                AbortSignal handle:[:ex |
6d9ff4af7d5c class: RegressionTests::ExceptionTest
Claus Gittinger <cg@exept.de>
parents: 641
diff changeset
   397
                    trace add:4.
1363
806bd20a7e59 #BUGFIX
Claus Gittinger <cg@exept.de>
parents: 1275
diff changeset
   398
                    "/ Transcript showCR:'4'.
916
6d9ff4af7d5c class: RegressionTests::ExceptionTest
Claus Gittinger <cg@exept.de>
parents: 641
diff changeset
   399
                ] do:[
6d9ff4af7d5c class: RegressionTests::ExceptionTest
Claus Gittinger <cg@exept.de>
parents: 641
diff changeset
   400
                    [
6d9ff4af7d5c class: RegressionTests::ExceptionTest
Claus Gittinger <cg@exept.de>
parents: 641
diff changeset
   401
                        trace add:5.
1363
806bd20a7e59 #BUGFIX
Claus Gittinger <cg@exept.de>
parents: 1275
diff changeset
   402
                        "/ Transcript showCR:'5'.
916
6d9ff4af7d5c class: RegressionTests::ExceptionTest
Claus Gittinger <cg@exept.de>
parents: 641
diff changeset
   403
                        setUp value.
6d9ff4af7d5c class: RegressionTests::ExceptionTest
Claus Gittinger <cg@exept.de>
parents: 641
diff changeset
   404
                        trace add:6.
1363
806bd20a7e59 #BUGFIX
Claus Gittinger <cg@exept.de>
parents: 1275
diff changeset
   405
                        "/ Transcript showCR:'6'.
916
6d9ff4af7d5c class: RegressionTests::ExceptionTest
Claus Gittinger <cg@exept.de>
parents: 641
diff changeset
   406
                        action value.
6d9ff4af7d5c class: RegressionTests::ExceptionTest
Claus Gittinger <cg@exept.de>
parents: 641
diff changeset
   407
                        trace add:7.
1363
806bd20a7e59 #BUGFIX
Claus Gittinger <cg@exept.de>
parents: 1275
diff changeset
   408
                        "/ Transcript showCR:'7'.
916
6d9ff4af7d5c class: RegressionTests::ExceptionTest
Claus Gittinger <cg@exept.de>
parents: 641
diff changeset
   409
                    ] sunitEnsure: [
6d9ff4af7d5c class: RegressionTests::ExceptionTest
Claus Gittinger <cg@exept.de>
parents: 641
diff changeset
   410
                        trace add:8.
1363
806bd20a7e59 #BUGFIX
Claus Gittinger <cg@exept.de>
parents: 1275
diff changeset
   411
                        "/ Transcript showCR:'8'.
916
6d9ff4af7d5c class: RegressionTests::ExceptionTest
Claus Gittinger <cg@exept.de>
parents: 641
diff changeset
   412
                        tearDown value
6d9ff4af7d5c class: RegressionTests::ExceptionTest
Claus Gittinger <cg@exept.de>
parents: 641
diff changeset
   413
                        trace add:9.
1363
806bd20a7e59 #BUGFIX
Claus Gittinger <cg@exept.de>
parents: 1275
diff changeset
   414
                        "/ Transcript showCR:'9'.
916
6d9ff4af7d5c class: RegressionTests::ExceptionTest
Claus Gittinger <cg@exept.de>
parents: 641
diff changeset
   415
                    ].
6d9ff4af7d5c class: RegressionTests::ExceptionTest
Claus Gittinger <cg@exept.de>
parents: 641
diff changeset
   416
                ].
641
0c1a14671aee changed:
Claus Gittinger <cg@exept.de>
parents: 634
diff changeset
   417
            ].
916
6d9ff4af7d5c class: RegressionTests::ExceptionTest
Claus Gittinger <cg@exept.de>
parents: 641
diff changeset
   418
            trace add:10.
1363
806bd20a7e59 #BUGFIX
Claus Gittinger <cg@exept.de>
parents: 1275
diff changeset
   419
            "/ Transcript showCR:'10'.
916
6d9ff4af7d5c class: RegressionTests::ExceptionTest
Claus Gittinger <cg@exept.de>
parents: 641
diff changeset
   420
        ] newProcess.
6d9ff4af7d5c class: RegressionTests::ExceptionTest
Claus Gittinger <cg@exept.de>
parents: 641
diff changeset
   421
    "/ p addExitAction:[ self halt].
6d9ff4af7d5c class: RegressionTests::ExceptionTest
Claus Gittinger <cg@exept.de>
parents: 641
diff changeset
   422
    p resume.
641
0c1a14671aee changed:
Claus Gittinger <cg@exept.de>
parents: 634
diff changeset
   423
916
6d9ff4af7d5c class: RegressionTests::ExceptionTest
Claus Gittinger <cg@exept.de>
parents: 641
diff changeset
   424
    p waitUntilTerminated.
944
815bbd31a33c class: RegressionTests::ExceptionTest
Claus Gittinger <cg@exept.de>
parents: 943
diff changeset
   425
    self assert:(trace asArray = #(5 1 4 8 2 4 10)).
634
Claus Gittinger <cg@exept.de>
parents: 349
diff changeset
   426
Claus Gittinger <cg@exept.de>
parents: 349
diff changeset
   427
    "
916
6d9ff4af7d5c class: RegressionTests::ExceptionTest
Claus Gittinger <cg@exept.de>
parents: 641
diff changeset
   428
     self new test12_reraiseOuterHandlerWithEnsure
634
Claus Gittinger <cg@exept.de>
parents: 349
diff changeset
   429
    "
1168
289bb5e55e18 Added tests for ANSI-compatible exception handling (thanks to Martin McClure)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 944
diff changeset
   430
!
289bb5e55e18 Added tests for ANSI-compatible exception handling (thanks to Martin McClure)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 944
diff changeset
   431
1275
0c5dd124124a class: RegressionTests::ExceptionTest
Stefan Vogel <sv@exept.de>
parents: 1168
diff changeset
   432
test14_queryDefaultAnswer
0c5dd124124a class: RegressionTests::ExceptionTest
Stefan Vogel <sv@exept.de>
parents: 1168
diff changeset
   433
    |answer|
0c5dd124124a class: RegressionTests::ExceptionTest
Stefan Vogel <sv@exept.de>
parents: 1168
diff changeset
   434
0c5dd124124a class: RegressionTests::ExceptionTest
Stefan Vogel <sv@exept.de>
parents: 1168
diff changeset
   435
    answer := MyQuery query.
0c5dd124124a class: RegressionTests::ExceptionTest
Stefan Vogel <sv@exept.de>
parents: 1168
diff changeset
   436
    self assert:(answer == #defaultAnswer).
0c5dd124124a class: RegressionTests::ExceptionTest
Stefan Vogel <sv@exept.de>
parents: 1168
diff changeset
   437
!
0c5dd124124a class: RegressionTests::ExceptionTest
Stefan Vogel <sv@exept.de>
parents: 1168
diff changeset
   438
0c5dd124124a class: RegressionTests::ExceptionTest
Stefan Vogel <sv@exept.de>
parents: 1168
diff changeset
   439
test15_queryWithHandler
0c5dd124124a class: RegressionTests::ExceptionTest
Stefan Vogel <sv@exept.de>
parents: 1168
diff changeset
   440
    |answer|
0c5dd124124a class: RegressionTests::ExceptionTest
Stefan Vogel <sv@exept.de>
parents: 1168
diff changeset
   441
0c5dd124124a class: RegressionTests::ExceptionTest
Stefan Vogel <sv@exept.de>
parents: 1168
diff changeset
   442
    MyQuery answer:#ok do:[
0c5dd124124a class: RegressionTests::ExceptionTest
Stefan Vogel <sv@exept.de>
parents: 1168
diff changeset
   443
        answer := MyQuery query.
0c5dd124124a class: RegressionTests::ExceptionTest
Stefan Vogel <sv@exept.de>
parents: 1168
diff changeset
   444
        self assert:(answer == #ok).
0c5dd124124a class: RegressionTests::ExceptionTest
Stefan Vogel <sv@exept.de>
parents: 1168
diff changeset
   445
    ].
0c5dd124124a class: RegressionTests::ExceptionTest
Stefan Vogel <sv@exept.de>
parents: 1168
diff changeset
   446
!
0c5dd124124a class: RegressionTests::ExceptionTest
Stefan Vogel <sv@exept.de>
parents: 1168
diff changeset
   447
0c5dd124124a class: RegressionTests::ExceptionTest
Stefan Vogel <sv@exept.de>
parents: 1168
diff changeset
   448
test16_queryWithHandler2DefaultAnswer
0c5dd124124a class: RegressionTests::ExceptionTest
Stefan Vogel <sv@exept.de>
parents: 1168
diff changeset
   449
    |answer|
0c5dd124124a class: RegressionTests::ExceptionTest
Stefan Vogel <sv@exept.de>
parents: 1168
diff changeset
   450
0c5dd124124a class: RegressionTests::ExceptionTest
Stefan Vogel <sv@exept.de>
parents: 1168
diff changeset
   451
    MyQuery answer:#ok
0c5dd124124a class: RegressionTests::ExceptionTest
Stefan Vogel <sv@exept.de>
parents: 1168
diff changeset
   452
        do:[
0c5dd124124a class: RegressionTests::ExceptionTest
Stefan Vogel <sv@exept.de>
parents: 1168
diff changeset
   453
            [
0c5dd124124a class: RegressionTests::ExceptionTest
Stefan Vogel <sv@exept.de>
parents: 1168
diff changeset
   454
                answer := MyQuery query.
0c5dd124124a class: RegressionTests::ExceptionTest
Stefan Vogel <sv@exept.de>
parents: 1168
diff changeset
   455
                self assert:(answer == #ok2).
0c5dd124124a class: RegressionTests::ExceptionTest
Stefan Vogel <sv@exept.de>
parents: 1168
diff changeset
   456
            ] on:MyQuery do:[:ex | ex return:#ok2 ].
0c5dd124124a class: RegressionTests::ExceptionTest
Stefan Vogel <sv@exept.de>
parents: 1168
diff changeset
   457
        ].
0c5dd124124a class: RegressionTests::ExceptionTest
Stefan Vogel <sv@exept.de>
parents: 1168
diff changeset
   458
!
0c5dd124124a class: RegressionTests::ExceptionTest
Stefan Vogel <sv@exept.de>
parents: 1168
diff changeset
   459
0c5dd124124a class: RegressionTests::ExceptionTest
Stefan Vogel <sv@exept.de>
parents: 1168
diff changeset
   460
test17_queryWithHandler3
0c5dd124124a class: RegressionTests::ExceptionTest
Stefan Vogel <sv@exept.de>
parents: 1168
diff changeset
   461
    |answer|
0c5dd124124a class: RegressionTests::ExceptionTest
Stefan Vogel <sv@exept.de>
parents: 1168
diff changeset
   462
0c5dd124124a class: RegressionTests::ExceptionTest
Stefan Vogel <sv@exept.de>
parents: 1168
diff changeset
   463
    MyQuery answer:#ok
0c5dd124124a class: RegressionTests::ExceptionTest
Stefan Vogel <sv@exept.de>
parents: 1168
diff changeset
   464
        do:[
0c5dd124124a class: RegressionTests::ExceptionTest
Stefan Vogel <sv@exept.de>
parents: 1168
diff changeset
   465
            [
0c5dd124124a class: RegressionTests::ExceptionTest
Stefan Vogel <sv@exept.de>
parents: 1168
diff changeset
   466
                answer := MyQuery query.
0c5dd124124a class: RegressionTests::ExceptionTest
Stefan Vogel <sv@exept.de>
parents: 1168
diff changeset
   467
                self assert:(answer == #ok).
0c5dd124124a class: RegressionTests::ExceptionTest
Stefan Vogel <sv@exept.de>
parents: 1168
diff changeset
   468
            ] on:AbortAllOperationWantedQuery do:[:ex | ex return:#ok2 ].
0c5dd124124a class: RegressionTests::ExceptionTest
Stefan Vogel <sv@exept.de>
parents: 1168
diff changeset
   469
        ].
0c5dd124124a class: RegressionTests::ExceptionTest
Stefan Vogel <sv@exept.de>
parents: 1168
diff changeset
   470
!
0c5dd124124a class: RegressionTests::ExceptionTest
Stefan Vogel <sv@exept.de>
parents: 1168
diff changeset
   471
1168
289bb5e55e18 Added tests for ANSI-compatible exception handling (thanks to Martin McClure)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 944
diff changeset
   472
testHandlerContext
289bb5e55e18 Added tests for ANSI-compatible exception handling (thanks to Martin McClure)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 944
diff changeset
   473
    "A test ensuring that when evaluating the action block the exception environment is set to the handler context."
289bb5e55e18 Added tests for ANSI-compatible exception handling (thanks to Martin McClure)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 944
diff changeset
   474
289bb5e55e18 Added tests for ANSI-compatible exception handling (thanks to Martin McClure)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 944
diff changeset
   475
    | result |
289bb5e55e18 Added tests for ANSI-compatible exception handling (thanks to Martin McClure)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 944
diff changeset
   476
    result := [
289bb5e55e18 Added tests for ANSI-compatible exception handling (thanks to Martin McClure)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 944
diff changeset
   477
    [
289bb5e55e18 Added tests for ANSI-compatible exception handling (thanks to Martin McClure)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 944
diff changeset
   478
    [ MyResumableTestError signal ]
289bb5e55e18 Added tests for ANSI-compatible exception handling (thanks to Martin McClure)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 944
diff changeset
   479
        on: MyTestError
289bb5e55e18 Added tests for ANSI-compatible exception handling (thanks to Martin McClure)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 944
diff changeset
   480
        do: [ 'handler 2' ] ]
289bb5e55e18 Added tests for ANSI-compatible exception handling (thanks to Martin McClure)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 944
diff changeset
   481
        on: MyResumableTestError
289bb5e55e18 Added tests for ANSI-compatible exception handling (thanks to Martin McClure)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 944
diff changeset
   482
        do: [ MyTestError signal ] ]
289bb5e55e18 Added tests for ANSI-compatible exception handling (thanks to Martin McClure)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 944
diff changeset
   483
        on: MyTestError
289bb5e55e18 Added tests for ANSI-compatible exception handling (thanks to Martin McClure)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 944
diff changeset
   484
        do: [ 'handler 1' ].
289bb5e55e18 Added tests for ANSI-compatible exception handling (thanks to Martin McClure)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 944
diff changeset
   485
    self assert: 'handler 1' = result description: 'Incorrect handler'
289bb5e55e18 Added tests for ANSI-compatible exception handling (thanks to Martin McClure)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 944
diff changeset
   486
289bb5e55e18 Added tests for ANSI-compatible exception handling (thanks to Martin McClure)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 944
diff changeset
   487
    "Created: / 20-08-2014 / 17:05:51 / Jan Vrany <jan.vrany@fit.cvut.cz>"
289bb5e55e18 Added tests for ANSI-compatible exception handling (thanks to Martin McClure)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 944
diff changeset
   488
!
289bb5e55e18 Added tests for ANSI-compatible exception handling (thanks to Martin McClure)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 944
diff changeset
   489
289bb5e55e18 Added tests for ANSI-compatible exception handling (thanks to Martin McClure)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 944
diff changeset
   490
testHandlerFromAction
289bb5e55e18 Added tests for ANSI-compatible exception handling (thanks to Martin McClure)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 944
diff changeset
   491
    "A test ensuring that nested exceptions work as expected."
289bb5e55e18 Added tests for ANSI-compatible exception handling (thanks to Martin McClure)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 944
diff changeset
   492
289bb5e55e18 Added tests for ANSI-compatible exception handling (thanks to Martin McClure)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 944
diff changeset
   493
    | result |
289bb5e55e18 Added tests for ANSI-compatible exception handling (thanks to Martin McClure)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 944
diff changeset
   494
    result := [
289bb5e55e18 Added tests for ANSI-compatible exception handling (thanks to Martin McClure)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 944
diff changeset
   495
    [
289bb5e55e18 Added tests for ANSI-compatible exception handling (thanks to Martin McClure)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 944
diff changeset
   496
    [ self error: 'trigger error' ]
289bb5e55e18 Added tests for ANSI-compatible exception handling (thanks to Martin McClure)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 944
diff changeset
   497
        on: ZeroDivide
289bb5e55e18 Added tests for ANSI-compatible exception handling (thanks to Martin McClure)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 944
diff changeset
   498
        do: [ :ex | 'inner' ] ]
289bb5e55e18 Added tests for ANSI-compatible exception handling (thanks to Martin McClure)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 944
diff changeset
   499
        on: Error
289bb5e55e18 Added tests for ANSI-compatible exception handling (thanks to Martin McClure)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 944
diff changeset
   500
        do: [ :ex | 3 perform: ('', '/') asSymbol with: 0 ] ]
289bb5e55e18 Added tests for ANSI-compatible exception handling (thanks to Martin McClure)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 944
diff changeset
   501
        on: ZeroDivide
289bb5e55e18 Added tests for ANSI-compatible exception handling (thanks to Martin McClure)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 944
diff changeset
   502
        do: [ :ex | 'outer' ].
289bb5e55e18 Added tests for ANSI-compatible exception handling (thanks to Martin McClure)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 944
diff changeset
   503
    self assert: 'outer' = result description: 'Incorrect handler'
289bb5e55e18 Added tests for ANSI-compatible exception handling (thanks to Martin McClure)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 944
diff changeset
   504
289bb5e55e18 Added tests for ANSI-compatible exception handling (thanks to Martin McClure)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 944
diff changeset
   505
    "Created: / 20-08-2014 / 17:07:37 / Jan Vrany <jan.vrany@fit.cvut.cz>"
241
5b8a5dd10628 initial checkin
Stefan Vogel <sv@exept.de>
parents:
diff changeset
   506
! !
5b8a5dd10628 initial checkin
Stefan Vogel <sv@exept.de>
parents:
diff changeset
   507
1275
0c5dd124124a class: RegressionTests::ExceptionTest
Stefan Vogel <sv@exept.de>
parents: 1168
diff changeset
   508
!ExceptionTest::MyQuery class methodsFor:'default actions'!
0c5dd124124a class: RegressionTests::ExceptionTest
Stefan Vogel <sv@exept.de>
parents: 1168
diff changeset
   509
0c5dd124124a class: RegressionTests::ExceptionTest
Stefan Vogel <sv@exept.de>
parents: 1168
diff changeset
   510
defaultAnswer
0c5dd124124a class: RegressionTests::ExceptionTest
Stefan Vogel <sv@exept.de>
parents: 1168
diff changeset
   511
    ^ #defaultAnswer
0c5dd124124a class: RegressionTests::ExceptionTest
Stefan Vogel <sv@exept.de>
parents: 1168
diff changeset
   512
! !
0c5dd124124a class: RegressionTests::ExceptionTest
Stefan Vogel <sv@exept.de>
parents: 1168
diff changeset
   513
241
5b8a5dd10628 initial checkin
Stefan Vogel <sv@exept.de>
parents:
diff changeset
   514
!ExceptionTest class methodsFor:'documentation'!
5b8a5dd10628 initial checkin
Stefan Vogel <sv@exept.de>
parents:
diff changeset
   515
5b8a5dd10628 initial checkin
Stefan Vogel <sv@exept.de>
parents:
diff changeset
   516
version
5b8a5dd10628 initial checkin
Stefan Vogel <sv@exept.de>
parents:
diff changeset
   517
    ^ '$Header$'
944
815bbd31a33c class: RegressionTests::ExceptionTest
Claus Gittinger <cg@exept.de>
parents: 943
diff changeset
   518
!
815bbd31a33c class: RegressionTests::ExceptionTest
Claus Gittinger <cg@exept.de>
parents: 943
diff changeset
   519
815bbd31a33c class: RegressionTests::ExceptionTest
Claus Gittinger <cg@exept.de>
parents: 943
diff changeset
   520
version_CVS
815bbd31a33c class: RegressionTests::ExceptionTest
Claus Gittinger <cg@exept.de>
parents: 943
diff changeset
   521
    ^ '$Header$'
241
5b8a5dd10628 initial checkin
Stefan Vogel <sv@exept.de>
parents:
diff changeset
   522
! !
916
6d9ff4af7d5c class: RegressionTests::ExceptionTest
Claus Gittinger <cg@exept.de>
parents: 641
diff changeset
   523