RegressionTests__ExceptionTest.st
author Jan Vrany <jan.vrany@fit.cvut.cz>
Wed, 20 Aug 2014 18:09:34 +0200
changeset 1168 289bb5e55e18
parent 944 815bbd31a33c
child 1275 0c5dd124124a
permissions -rw-r--r--
Added tests for ANSI-compatible exception handling (thanks to Martin McClure)
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
1168
289bb5e55e18 Added tests for ANSI-compatible exception handling (thanks to Martin McClure)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 944
diff changeset
    12
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
    13
	instanceVariableNames:''
289bb5e55e18 Added tests for ANSI-compatible exception handling (thanks to Martin McClure)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 944
diff changeset
    14
	classVariableNames:''
289bb5e55e18 Added tests for ANSI-compatible exception handling (thanks to Martin McClure)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 944
diff changeset
    15
	poolDictionaries:''
289bb5e55e18 Added tests for ANSI-compatible exception handling (thanks to Martin McClure)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 944
diff changeset
    16
	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
    17
!
289bb5e55e18 Added tests for ANSI-compatible exception handling (thanks to Martin McClure)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 944
diff changeset
    18
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:#MyTestError
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
241
5b8a5dd10628 initial checkin
Stefan Vogel <sv@exept.de>
parents:
diff changeset
    26
!ExceptionTest class methodsFor:'documentation'!
5b8a5dd10628 initial checkin
Stefan Vogel <sv@exept.de>
parents:
diff changeset
    27
5b8a5dd10628 initial checkin
Stefan Vogel <sv@exept.de>
parents:
diff changeset
    28
documentation
5b8a5dd10628 initial checkin
Stefan Vogel <sv@exept.de>
parents:
diff changeset
    29
"
5b8a5dd10628 initial checkin
Stefan Vogel <sv@exept.de>
parents:
diff changeset
    30
    documentation to be added.
5b8a5dd10628 initial checkin
Stefan Vogel <sv@exept.de>
parents:
diff changeset
    31
5b8a5dd10628 initial checkin
Stefan Vogel <sv@exept.de>
parents:
diff changeset
    32
    [author:]
5b8a5dd10628 initial checkin
Stefan Vogel <sv@exept.de>
parents:
diff changeset
    33
        Stefan Vogel (stefan@zwerg)
5b8a5dd10628 initial checkin
Stefan Vogel <sv@exept.de>
parents:
diff changeset
    34
5b8a5dd10628 initial checkin
Stefan Vogel <sv@exept.de>
parents:
diff changeset
    35
    [instance variables:]
5b8a5dd10628 initial checkin
Stefan Vogel <sv@exept.de>
parents:
diff changeset
    36
5b8a5dd10628 initial checkin
Stefan Vogel <sv@exept.de>
parents:
diff changeset
    37
    [class variables:]
5b8a5dd10628 initial checkin
Stefan Vogel <sv@exept.de>
parents:
diff changeset
    38
5b8a5dd10628 initial checkin
Stefan Vogel <sv@exept.de>
parents:
diff changeset
    39
    [see also:]
5b8a5dd10628 initial checkin
Stefan Vogel <sv@exept.de>
parents:
diff changeset
    40
5b8a5dd10628 initial checkin
Stefan Vogel <sv@exept.de>
parents:
diff changeset
    41
"
5b8a5dd10628 initial checkin
Stefan Vogel <sv@exept.de>
parents:
diff changeset
    42
! !
5b8a5dd10628 initial checkin
Stefan Vogel <sv@exept.de>
parents:
diff changeset
    43
5b8a5dd10628 initial checkin
Stefan Vogel <sv@exept.de>
parents:
diff changeset
    44
!ExceptionTest methodsFor:'tests'!
5b8a5dd10628 initial checkin
Stefan Vogel <sv@exept.de>
parents:
diff changeset
    45
916
6d9ff4af7d5c class: RegressionTests::ExceptionTest
Claus Gittinger <cg@exept.de>
parents: 641
diff changeset
    46
test01
241
5b8a5dd10628 initial checkin
Stefan Vogel <sv@exept.de>
parents:
diff changeset
    47
5b8a5dd10628 initial checkin
Stefan Vogel <sv@exept.de>
parents:
diff changeset
    48
    |result zero|
5b8a5dd10628 initial checkin
Stefan Vogel <sv@exept.de>
parents:
diff changeset
    49
5b8a5dd10628 initial checkin
Stefan Vogel <sv@exept.de>
parents:
diff changeset
    50
    result := OrderedCollection new.
5b8a5dd10628 initial checkin
Stefan Vogel <sv@exept.de>
parents:
diff changeset
    51
    zero := 0.
5b8a5dd10628 initial checkin
Stefan Vogel <sv@exept.de>
parents:
diff changeset
    52
349
8aeec57e44db *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 241
diff changeset
    53
    [ 0 // zero ] 
8aeec57e44db *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 241
diff changeset
    54
        on:ZeroDivide 
8aeec57e44db *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 241
diff changeset
    55
        do:[:ex|
916
6d9ff4af7d5c class: RegressionTests::ExceptionTest
Claus Gittinger <cg@exept.de>
parents: 641
diff changeset
    56
            self assert:(ex creator == ZeroDivide).
349
8aeec57e44db *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 241
diff changeset
    57
            self assert:(ex originator == 0).
8aeec57e44db *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 241
diff changeset
    58
            result add:#Error 
8aeec57e44db *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 241
diff changeset
    59
        ].
241
5b8a5dd10628 initial checkin
Stefan Vogel <sv@exept.de>
parents:
diff changeset
    60
    self assert:(result size == 1).
5b8a5dd10628 initial checkin
Stefan Vogel <sv@exept.de>
parents:
diff changeset
    61
    self assert:(result first == #Error).
916
6d9ff4af7d5c class: RegressionTests::ExceptionTest
Claus Gittinger <cg@exept.de>
parents: 641
diff changeset
    62
!
6d9ff4af7d5c class: RegressionTests::ExceptionTest
Claus Gittinger <cg@exept.de>
parents: 641
diff changeset
    63
6d9ff4af7d5c class: RegressionTests::ExceptionTest
Claus Gittinger <cg@exept.de>
parents: 641
diff changeset
    64
test02
6d9ff4af7d5c class: RegressionTests::ExceptionTest
Claus Gittinger <cg@exept.de>
parents: 641
diff changeset
    65
6d9ff4af7d5c class: RegressionTests::ExceptionTest
Claus Gittinger <cg@exept.de>
parents: 641
diff changeset
    66
    |result zero|
6d9ff4af7d5c class: RegressionTests::ExceptionTest
Claus Gittinger <cg@exept.de>
parents: 641
diff changeset
    67
6d9ff4af7d5c class: RegressionTests::ExceptionTest
Claus Gittinger <cg@exept.de>
parents: 641
diff changeset
    68
    result := OrderedCollection new.
6d9ff4af7d5c class: RegressionTests::ExceptionTest
Claus Gittinger <cg@exept.de>
parents: 641
diff changeset
    69
    zero := 0.
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
    self should:[
6d9ff4af7d5c class: RegressionTests::ExceptionTest
Claus Gittinger <cg@exept.de>
parents: 641
diff changeset
    72
        [ 0 // zero ] on:ZeroDivide do:[:ex|
6d9ff4af7d5c class: RegressionTests::ExceptionTest
Claus Gittinger <cg@exept.de>
parents: 641
diff changeset
    73
            result add:#Error.
6d9ff4af7d5c class: RegressionTests::ExceptionTest
Claus Gittinger <cg@exept.de>
parents: 641
diff changeset
    74
            0 // zero
6d9ff4af7d5c class: RegressionTests::ExceptionTest
Claus Gittinger <cg@exept.de>
parents: 641
diff changeset
    75
        ].
6d9ff4af7d5c class: RegressionTests::ExceptionTest
Claus Gittinger <cg@exept.de>
parents: 641
diff changeset
    76
    ] raise:ZeroDivide.
6d9ff4af7d5c class: RegressionTests::ExceptionTest
Claus Gittinger <cg@exept.de>
parents: 641
diff changeset
    77
    self assert:(result size == 1).
6d9ff4af7d5c class: RegressionTests::ExceptionTest
Claus Gittinger <cg@exept.de>
parents: 641
diff changeset
    78
    self assert:(result first == #Error).
6d9ff4af7d5c class: RegressionTests::ExceptionTest
Claus Gittinger <cg@exept.de>
parents: 641
diff changeset
    79
!
6d9ff4af7d5c class: RegressionTests::ExceptionTest
Claus Gittinger <cg@exept.de>
parents: 641
diff changeset
    80
6d9ff4af7d5c class: RegressionTests::ExceptionTest
Claus Gittinger <cg@exept.de>
parents: 641
diff changeset
    81
test03
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
    |result zero|
6d9ff4af7d5c class: RegressionTests::ExceptionTest
Claus Gittinger <cg@exept.de>
parents: 641
diff changeset
    84
6d9ff4af7d5c class: RegressionTests::ExceptionTest
Claus Gittinger <cg@exept.de>
parents: 641
diff changeset
    85
    result := OrderedCollection new.
6d9ff4af7d5c class: RegressionTests::ExceptionTest
Claus Gittinger <cg@exept.de>
parents: 641
diff changeset
    86
    zero := 0.
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
    self should:[
6d9ff4af7d5c class: RegressionTests::ExceptionTest
Claus Gittinger <cg@exept.de>
parents: 641
diff changeset
    89
        [ 0 // zero ] on:ZeroDivide do:[:ex|
6d9ff4af7d5c class: RegressionTests::ExceptionTest
Claus Gittinger <cg@exept.de>
parents: 641
diff changeset
    90
            result add:#Error.
6d9ff4af7d5c class: RegressionTests::ExceptionTest
Claus Gittinger <cg@exept.de>
parents: 641
diff changeset
    91
            [ 0 // zero ] on:ZeroDivide do:[:ex|
6d9ff4af7d5c class: RegressionTests::ExceptionTest
Claus Gittinger <cg@exept.de>
parents: 641
diff changeset
    92
                result add:#Error1.
6d9ff4af7d5c class: RegressionTests::ExceptionTest
Claus Gittinger <cg@exept.de>
parents: 641
diff changeset
    93
                ex reject.
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
        ].
6d9ff4af7d5c class: RegressionTests::ExceptionTest
Claus Gittinger <cg@exept.de>
parents: 641
diff changeset
    96
    ] raise:ZeroDivide.
6d9ff4af7d5c class: RegressionTests::ExceptionTest
Claus Gittinger <cg@exept.de>
parents: 641
diff changeset
    97
    self assert:(result size == 2).
6d9ff4af7d5c class: RegressionTests::ExceptionTest
Claus Gittinger <cg@exept.de>
parents: 641
diff changeset
    98
    self assert:(result first == #Error).
6d9ff4af7d5c class: RegressionTests::ExceptionTest
Claus Gittinger <cg@exept.de>
parents: 641
diff changeset
    99
    self assert:(result second == #Error1).
6d9ff4af7d5c class: RegressionTests::ExceptionTest
Claus Gittinger <cg@exept.de>
parents: 641
diff changeset
   100
!
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
test04_on_do
6d9ff4af7d5c class: RegressionTests::ExceptionTest
Claus Gittinger <cg@exept.de>
parents: 641
diff changeset
   103
6d9ff4af7d5c class: RegressionTests::ExceptionTest
Claus Gittinger <cg@exept.de>
parents: 641
diff changeset
   104
    |exceptionHappened zero|
6d9ff4af7d5c class: RegressionTests::ExceptionTest
Claus Gittinger <cg@exept.de>
parents: 641
diff changeset
   105
6d9ff4af7d5c class: RegressionTests::ExceptionTest
Claus Gittinger <cg@exept.de>
parents: 641
diff changeset
   106
    zero := 0.
6d9ff4af7d5c class: RegressionTests::ExceptionTest
Claus Gittinger <cg@exept.de>
parents: 641
diff changeset
   107
    exceptionHappened := false.
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
    [0 // zero] 
6d9ff4af7d5c class: RegressionTests::ExceptionTest
Claus Gittinger <cg@exept.de>
parents: 641
diff changeset
   110
        on:ZeroDivide 
6d9ff4af7d5c class: RegressionTests::ExceptionTest
Claus Gittinger <cg@exept.de>
parents: 641
diff changeset
   111
        do:[:ex|
6d9ff4af7d5c class: RegressionTests::ExceptionTest
Claus Gittinger <cg@exept.de>
parents: 641
diff changeset
   112
            exceptionHappened := true
6d9ff4af7d5c class: RegressionTests::ExceptionTest
Claus Gittinger <cg@exept.de>
parents: 641
diff changeset
   113
        ].
6d9ff4af7d5c class: RegressionTests::ExceptionTest
Claus Gittinger <cg@exept.de>
parents: 641
diff changeset
   114
6d9ff4af7d5c class: RegressionTests::ExceptionTest
Claus Gittinger <cg@exept.de>
parents: 641
diff changeset
   115
    self assert:(exceptionHappened).
6d9ff4af7d5c class: RegressionTests::ExceptionTest
Claus Gittinger <cg@exept.de>
parents: 641
diff changeset
   116
!
6d9ff4af7d5c class: RegressionTests::ExceptionTest
Claus Gittinger <cg@exept.de>
parents: 641
diff changeset
   117
6d9ff4af7d5c class: RegressionTests::ExceptionTest
Claus Gittinger <cg@exept.de>
parents: 641
diff changeset
   118
test05_on_do_ensure
6d9ff4af7d5c class: RegressionTests::ExceptionTest
Claus Gittinger <cg@exept.de>
parents: 641
diff changeset
   119
6d9ff4af7d5c class: RegressionTests::ExceptionTest
Claus Gittinger <cg@exept.de>
parents: 641
diff changeset
   120
    |exceptionHappened ensureCalled zero|
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
    zero := 0.
6d9ff4af7d5c class: RegressionTests::ExceptionTest
Claus Gittinger <cg@exept.de>
parents: 641
diff changeset
   123
    exceptionHappened := ensureCalled := false.
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
    [0 // zero] 
6d9ff4af7d5c class: RegressionTests::ExceptionTest
Claus Gittinger <cg@exept.de>
parents: 641
diff changeset
   126
        on:ZeroDivide 
6d9ff4af7d5c class: RegressionTests::ExceptionTest
Claus Gittinger <cg@exept.de>
parents: 641
diff changeset
   127
        do:[:ex| exceptionHappened := true]
6d9ff4af7d5c class: RegressionTests::ExceptionTest
Claus Gittinger <cg@exept.de>
parents: 641
diff changeset
   128
        ensure:[ ensureCalled := true ].
6d9ff4af7d5c class: RegressionTests::ExceptionTest
Claus Gittinger <cg@exept.de>
parents: 641
diff changeset
   129
6d9ff4af7d5c class: RegressionTests::ExceptionTest
Claus Gittinger <cg@exept.de>
parents: 641
diff changeset
   130
    self assert:(exceptionHappened).
6d9ff4af7d5c class: RegressionTests::ExceptionTest
Claus Gittinger <cg@exept.de>
parents: 641
diff changeset
   131
    self assert:(ensureCalled).
6d9ff4af7d5c class: RegressionTests::ExceptionTest
Claus Gittinger <cg@exept.de>
parents: 641
diff changeset
   132
!
6d9ff4af7d5c class: RegressionTests::ExceptionTest
Claus Gittinger <cg@exept.de>
parents: 641
diff changeset
   133
6d9ff4af7d5c class: RegressionTests::ExceptionTest
Claus Gittinger <cg@exept.de>
parents: 641
diff changeset
   134
test06_on_do_ensure
6d9ff4af7d5c class: RegressionTests::ExceptionTest
Claus Gittinger <cg@exept.de>
parents: 641
diff changeset
   135
6d9ff4af7d5c class: RegressionTests::ExceptionTest
Claus Gittinger <cg@exept.de>
parents: 641
diff changeset
   136
    |exceptionHappened ensureCalled zero|
6d9ff4af7d5c class: RegressionTests::ExceptionTest
Claus Gittinger <cg@exept.de>
parents: 641
diff changeset
   137
6d9ff4af7d5c class: RegressionTests::ExceptionTest
Claus Gittinger <cg@exept.de>
parents: 641
diff changeset
   138
    zero := 0.
6d9ff4af7d5c class: RegressionTests::ExceptionTest
Claus Gittinger <cg@exept.de>
parents: 641
diff changeset
   139
    exceptionHappened := ensureCalled := false.
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
    [zero // 1] 
6d9ff4af7d5c class: RegressionTests::ExceptionTest
Claus Gittinger <cg@exept.de>
parents: 641
diff changeset
   142
        on:ZeroDivide 
6d9ff4af7d5c class: RegressionTests::ExceptionTest
Claus Gittinger <cg@exept.de>
parents: 641
diff changeset
   143
        do:[:ex| exceptionHappened := true]
6d9ff4af7d5c class: RegressionTests::ExceptionTest
Claus Gittinger <cg@exept.de>
parents: 641
diff changeset
   144
        ensure:[ ensureCalled := true ].
6d9ff4af7d5c class: RegressionTests::ExceptionTest
Claus Gittinger <cg@exept.de>
parents: 641
diff changeset
   145
6d9ff4af7d5c class: RegressionTests::ExceptionTest
Claus Gittinger <cg@exept.de>
parents: 641
diff changeset
   146
    self assert:(exceptionHappened not).
6d9ff4af7d5c class: RegressionTests::ExceptionTest
Claus Gittinger <cg@exept.de>
parents: 641
diff changeset
   147
    self assert:(ensureCalled).
6d9ff4af7d5c class: RegressionTests::ExceptionTest
Claus Gittinger <cg@exept.de>
parents: 641
diff changeset
   148
!
6d9ff4af7d5c class: RegressionTests::ExceptionTest
Claus Gittinger <cg@exept.de>
parents: 641
diff changeset
   149
6d9ff4af7d5c class: RegressionTests::ExceptionTest
Claus Gittinger <cg@exept.de>
parents: 641
diff changeset
   150
test07_error_in_unwind
6d9ff4af7d5c class: RegressionTests::ExceptionTest
Claus Gittinger <cg@exept.de>
parents: 641
diff changeset
   151
    "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
   152
6d9ff4af7d5c class: RegressionTests::ExceptionTest
Claus Gittinger <cg@exept.de>
parents: 641
diff changeset
   153
    |zero trace|
6d9ff4af7d5c class: RegressionTests::ExceptionTest
Claus Gittinger <cg@exept.de>
parents: 641
diff changeset
   154
6d9ff4af7d5c class: RegressionTests::ExceptionTest
Claus Gittinger <cg@exept.de>
parents: 641
diff changeset
   155
    zero := 0.
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
    trace := OrderedCollection new.
943
ca26d59e7f3c class: RegressionTests::ExceptionTest
Claus Gittinger <cg@exept.de>
parents: 917
diff changeset
   158
    self shouldnt:[
916
6d9ff4af7d5c class: RegressionTests::ExceptionTest
Claus Gittinger <cg@exept.de>
parents: 641
diff changeset
   159
        Error handle:[:ex |
6d9ff4af7d5c class: RegressionTests::ExceptionTest
Claus Gittinger <cg@exept.de>
parents: 641
diff changeset
   160
            trace add:5.
6d9ff4af7d5c class: RegressionTests::ExceptionTest
Claus Gittinger <cg@exept.de>
parents: 641
diff changeset
   161
        ] do:[
6d9ff4af7d5c class: RegressionTests::ExceptionTest
Claus Gittinger <cg@exept.de>
parents: 641
diff changeset
   162
            [
6d9ff4af7d5c class: RegressionTests::ExceptionTest
Claus Gittinger <cg@exept.de>
parents: 641
diff changeset
   163
                trace add:1.
6d9ff4af7d5c class: RegressionTests::ExceptionTest
Claus Gittinger <cg@exept.de>
parents: 641
diff changeset
   164
                1 // zero.
6d9ff4af7d5c class: RegressionTests::ExceptionTest
Claus Gittinger <cg@exept.de>
parents: 641
diff changeset
   165
                trace add:2.
6d9ff4af7d5c class: RegressionTests::ExceptionTest
Claus Gittinger <cg@exept.de>
parents: 641
diff changeset
   166
            ] ensure:[
6d9ff4af7d5c class: RegressionTests::ExceptionTest
Claus Gittinger <cg@exept.de>
parents: 641
diff changeset
   167
                trace add:3.
6d9ff4af7d5c class: RegressionTests::ExceptionTest
Claus Gittinger <cg@exept.de>
parents: 641
diff changeset
   168
                1 // zero.
6d9ff4af7d5c class: RegressionTests::ExceptionTest
Claus Gittinger <cg@exept.de>
parents: 641
diff changeset
   169
                trace add:4.
6d9ff4af7d5c class: RegressionTests::ExceptionTest
Claus Gittinger <cg@exept.de>
parents: 641
diff changeset
   170
            ].
6d9ff4af7d5c class: RegressionTests::ExceptionTest
Claus Gittinger <cg@exept.de>
parents: 641
diff changeset
   171
        ].
6d9ff4af7d5c class: RegressionTests::ExceptionTest
Claus Gittinger <cg@exept.de>
parents: 641
diff changeset
   172
    ] raise:Error.
6d9ff4af7d5c class: RegressionTests::ExceptionTest
Claus Gittinger <cg@exept.de>
parents: 641
diff changeset
   173
943
ca26d59e7f3c class: RegressionTests::ExceptionTest
Claus Gittinger <cg@exept.de>
parents: 917
diff changeset
   174
    self assert:(trace asArray = #(1 5 3 5)).
916
6d9ff4af7d5c class: RegressionTests::ExceptionTest
Claus Gittinger <cg@exept.de>
parents: 641
diff changeset
   175
!
6d9ff4af7d5c class: RegressionTests::ExceptionTest
Claus Gittinger <cg@exept.de>
parents: 641
diff changeset
   176
6d9ff4af7d5c class: RegressionTests::ExceptionTest
Claus Gittinger <cg@exept.de>
parents: 641
diff changeset
   177
test08_error_in_unwind2
6d9ff4af7d5c class: RegressionTests::ExceptionTest
Claus Gittinger <cg@exept.de>
parents: 641
diff changeset
   178
    "no matter what happens in test7 - this one should work !!"
6d9ff4af7d5c class: RegressionTests::ExceptionTest
Claus Gittinger <cg@exept.de>
parents: 641
diff changeset
   179
6d9ff4af7d5c class: RegressionTests::ExceptionTest
Claus Gittinger <cg@exept.de>
parents: 641
diff changeset
   180
    |zero trace|
6d9ff4af7d5c class: RegressionTests::ExceptionTest
Claus Gittinger <cg@exept.de>
parents: 641
diff changeset
   181
6d9ff4af7d5c class: RegressionTests::ExceptionTest
Claus Gittinger <cg@exept.de>
parents: 641
diff changeset
   182
    zero := 0.
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
    trace := OrderedCollection new.
6d9ff4af7d5c class: RegressionTests::ExceptionTest
Claus Gittinger <cg@exept.de>
parents: 641
diff changeset
   185
    self shouldnt:[
6d9ff4af7d5c class: RegressionTests::ExceptionTest
Claus Gittinger <cg@exept.de>
parents: 641
diff changeset
   186
        Error handle:[:ex |
6d9ff4af7d5c class: RegressionTests::ExceptionTest
Claus Gittinger <cg@exept.de>
parents: 641
diff changeset
   187
            trace add:6.
6d9ff4af7d5c class: RegressionTests::ExceptionTest
Claus Gittinger <cg@exept.de>
parents: 641
diff changeset
   188
        ] do:[
6d9ff4af7d5c class: RegressionTests::ExceptionTest
Claus Gittinger <cg@exept.de>
parents: 641
diff changeset
   189
            Error handle:[:ex |
6d9ff4af7d5c class: RegressionTests::ExceptionTest
Claus Gittinger <cg@exept.de>
parents: 641
diff changeset
   190
                trace add:5.
6d9ff4af7d5c class: RegressionTests::ExceptionTest
Claus Gittinger <cg@exept.de>
parents: 641
diff changeset
   191
            ] do:[
6d9ff4af7d5c class: RegressionTests::ExceptionTest
Claus Gittinger <cg@exept.de>
parents: 641
diff changeset
   192
                [
6d9ff4af7d5c class: RegressionTests::ExceptionTest
Claus Gittinger <cg@exept.de>
parents: 641
diff changeset
   193
                    trace add:1.
6d9ff4af7d5c class: RegressionTests::ExceptionTest
Claus Gittinger <cg@exept.de>
parents: 641
diff changeset
   194
                    1 // zero.
6d9ff4af7d5c class: RegressionTests::ExceptionTest
Claus Gittinger <cg@exept.de>
parents: 641
diff changeset
   195
                    trace add:2.
6d9ff4af7d5c class: RegressionTests::ExceptionTest
Claus Gittinger <cg@exept.de>
parents: 641
diff changeset
   196
                ] ensure:[
6d9ff4af7d5c class: RegressionTests::ExceptionTest
Claus Gittinger <cg@exept.de>
parents: 641
diff changeset
   197
                    trace add:3.
6d9ff4af7d5c class: RegressionTests::ExceptionTest
Claus Gittinger <cg@exept.de>
parents: 641
diff changeset
   198
                    1 // zero.
6d9ff4af7d5c class: RegressionTests::ExceptionTest
Claus Gittinger <cg@exept.de>
parents: 641
diff changeset
   199
                    trace add:4.
6d9ff4af7d5c class: RegressionTests::ExceptionTest
Claus Gittinger <cg@exept.de>
parents: 641
diff changeset
   200
                ].
6d9ff4af7d5c class: RegressionTests::ExceptionTest
Claus Gittinger <cg@exept.de>
parents: 641
diff changeset
   201
            ].
6d9ff4af7d5c class: RegressionTests::ExceptionTest
Claus Gittinger <cg@exept.de>
parents: 641
diff changeset
   202
        ].
6d9ff4af7d5c class: RegressionTests::ExceptionTest
Claus Gittinger <cg@exept.de>
parents: 641
diff changeset
   203
    ] raise:Error.
6d9ff4af7d5c class: RegressionTests::ExceptionTest
Claus Gittinger <cg@exept.de>
parents: 641
diff changeset
   204
943
ca26d59e7f3c class: RegressionTests::ExceptionTest
Claus Gittinger <cg@exept.de>
parents: 917
diff changeset
   205
    self assert:(trace asArray = #(1 5 3 5)).
241
5b8a5dd10628 initial checkin
Stefan Vogel <sv@exept.de>
parents:
diff changeset
   206
5b8a5dd10628 initial checkin
Stefan Vogel <sv@exept.de>
parents:
diff changeset
   207
916
6d9ff4af7d5c class: RegressionTests::ExceptionTest
Claus Gittinger <cg@exept.de>
parents: 641
diff changeset
   208
    "Created: / 24-08-2011 / 14:02:01 / cg"
241
5b8a5dd10628 initial checkin
Stefan Vogel <sv@exept.de>
parents:
diff changeset
   209
!
5b8a5dd10628 initial checkin
Stefan Vogel <sv@exept.de>
parents:
diff changeset
   210
916
6d9ff4af7d5c class: RegressionTests::ExceptionTest
Claus Gittinger <cg@exept.de>
parents: 641
diff changeset
   211
test09_reraiseOuterHandlerWithEnsure
6d9ff4af7d5c class: RegressionTests::ExceptionTest
Claus Gittinger <cg@exept.de>
parents: 641
diff changeset
   212
    |trace|
6d9ff4af7d5c class: RegressionTests::ExceptionTest
Claus Gittinger <cg@exept.de>
parents: 641
diff changeset
   213
6d9ff4af7d5c class: RegressionTests::ExceptionTest
Claus Gittinger <cg@exept.de>
parents: 641
diff changeset
   214
    trace := OrderedCollection new.
6d9ff4af7d5c class: RegressionTests::ExceptionTest
Claus Gittinger <cg@exept.de>
parents: 641
diff changeset
   215
6d9ff4af7d5c class: RegressionTests::ExceptionTest
Claus Gittinger <cg@exept.de>
parents: 641
diff changeset
   216
    AbortSignal handle:[:ex |
6d9ff4af7d5c class: RegressionTests::ExceptionTest
Claus Gittinger <cg@exept.de>
parents: 641
diff changeset
   217
        trace add:1.
6d9ff4af7d5c class: RegressionTests::ExceptionTest
Claus Gittinger <cg@exept.de>
parents: 641
diff changeset
   218
    ] do:[
6d9ff4af7d5c class: RegressionTests::ExceptionTest
Claus Gittinger <cg@exept.de>
parents: 641
diff changeset
   219
        [
6d9ff4af7d5c class: RegressionTests::ExceptionTest
Claus Gittinger <cg@exept.de>
parents: 641
diff changeset
   220
            AbortSignal handle:[:ex |
6d9ff4af7d5c class: RegressionTests::ExceptionTest
Claus Gittinger <cg@exept.de>
parents: 641
diff changeset
   221
                trace add:2.
6d9ff4af7d5c class: RegressionTests::ExceptionTest
Claus Gittinger <cg@exept.de>
parents: 641
diff changeset
   222
                AbortSignal raise.
6d9ff4af7d5c class: RegressionTests::ExceptionTest
Claus Gittinger <cg@exept.de>
parents: 641
diff changeset
   223
                trace add:3.
6d9ff4af7d5c class: RegressionTests::ExceptionTest
Claus Gittinger <cg@exept.de>
parents: 641
diff changeset
   224
            ] do:[
6d9ff4af7d5c class: RegressionTests::ExceptionTest
Claus Gittinger <cg@exept.de>
parents: 641
diff changeset
   225
                trace add:4.
6d9ff4af7d5c class: RegressionTests::ExceptionTest
Claus Gittinger <cg@exept.de>
parents: 641
diff changeset
   226
                AbortSignal raise.
6d9ff4af7d5c class: RegressionTests::ExceptionTest
Claus Gittinger <cg@exept.de>
parents: 641
diff changeset
   227
                trace add:5.
6d9ff4af7d5c class: RegressionTests::ExceptionTest
Claus Gittinger <cg@exept.de>
parents: 641
diff changeset
   228
            ].
6d9ff4af7d5c class: RegressionTests::ExceptionTest
Claus Gittinger <cg@exept.de>
parents: 641
diff changeset
   229
            trace add:6.
6d9ff4af7d5c class: RegressionTests::ExceptionTest
Claus Gittinger <cg@exept.de>
parents: 641
diff changeset
   230
        ] ensure:[
6d9ff4af7d5c class: RegressionTests::ExceptionTest
Claus Gittinger <cg@exept.de>
parents: 641
diff changeset
   231
            trace add:9
6d9ff4af7d5c class: RegressionTests::ExceptionTest
Claus Gittinger <cg@exept.de>
parents: 641
diff changeset
   232
        ].
6d9ff4af7d5c class: RegressionTests::ExceptionTest
Claus Gittinger <cg@exept.de>
parents: 641
diff changeset
   233
    ].
6d9ff4af7d5c class: RegressionTests::ExceptionTest
Claus Gittinger <cg@exept.de>
parents: 641
diff changeset
   234
    trace add:7.
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
    self assert:(trace asArray = #(4 2 1 9 7)).
6d9ff4af7d5c class: RegressionTests::ExceptionTest
Claus Gittinger <cg@exept.de>
parents: 641
diff changeset
   237
!
6d9ff4af7d5c class: RegressionTests::ExceptionTest
Claus Gittinger <cg@exept.de>
parents: 641
diff changeset
   238
6d9ff4af7d5c class: RegressionTests::ExceptionTest
Claus Gittinger <cg@exept.de>
parents: 641
diff changeset
   239
test10_reraiseOuterHandlerWithEnsure
6d9ff4af7d5c class: RegressionTests::ExceptionTest
Claus Gittinger <cg@exept.de>
parents: 641
diff changeset
   240
    |trace|
6d9ff4af7d5c class: RegressionTests::ExceptionTest
Claus Gittinger <cg@exept.de>
parents: 641
diff changeset
   241
6d9ff4af7d5c class: RegressionTests::ExceptionTest
Claus Gittinger <cg@exept.de>
parents: 641
diff changeset
   242
    trace := OrderedCollection new.
6d9ff4af7d5c class: RegressionTests::ExceptionTest
Claus Gittinger <cg@exept.de>
parents: 641
diff changeset
   243
6d9ff4af7d5c class: RegressionTests::ExceptionTest
Claus Gittinger <cg@exept.de>
parents: 641
diff changeset
   244
    AbortSignal handle:[:ex |
6d9ff4af7d5c class: RegressionTests::ExceptionTest
Claus Gittinger <cg@exept.de>
parents: 641
diff changeset
   245
        trace add:1.
6d9ff4af7d5c class: RegressionTests::ExceptionTest
Claus Gittinger <cg@exept.de>
parents: 641
diff changeset
   246
    ] do:[
6d9ff4af7d5c class: RegressionTests::ExceptionTest
Claus Gittinger <cg@exept.de>
parents: 641
diff changeset
   247
        [
6d9ff4af7d5c class: RegressionTests::ExceptionTest
Claus Gittinger <cg@exept.de>
parents: 641
diff changeset
   248
            AbortSignal handle:[:ex |
6d9ff4af7d5c class: RegressionTests::ExceptionTest
Claus Gittinger <cg@exept.de>
parents: 641
diff changeset
   249
                trace add:2.
6d9ff4af7d5c class: RegressionTests::ExceptionTest
Claus Gittinger <cg@exept.de>
parents: 641
diff changeset
   250
                AbortSignal raise.
6d9ff4af7d5c class: RegressionTests::ExceptionTest
Claus Gittinger <cg@exept.de>
parents: 641
diff changeset
   251
                trace add:3.
6d9ff4af7d5c class: RegressionTests::ExceptionTest
Claus Gittinger <cg@exept.de>
parents: 641
diff changeset
   252
            ] do:[
6d9ff4af7d5c class: RegressionTests::ExceptionTest
Claus Gittinger <cg@exept.de>
parents: 641
diff changeset
   253
                trace add:4.
6d9ff4af7d5c class: RegressionTests::ExceptionTest
Claus Gittinger <cg@exept.de>
parents: 641
diff changeset
   254
                AbortSignal raise.
6d9ff4af7d5c class: RegressionTests::ExceptionTest
Claus Gittinger <cg@exept.de>
parents: 641
diff changeset
   255
                trace add:5.
6d9ff4af7d5c class: RegressionTests::ExceptionTest
Claus Gittinger <cg@exept.de>
parents: 641
diff changeset
   256
            ].
6d9ff4af7d5c class: RegressionTests::ExceptionTest
Claus Gittinger <cg@exept.de>
parents: 641
diff changeset
   257
            trace add:6.
6d9ff4af7d5c class: RegressionTests::ExceptionTest
Claus Gittinger <cg@exept.de>
parents: 641
diff changeset
   258
        ] ensure:[
6d9ff4af7d5c class: RegressionTests::ExceptionTest
Claus Gittinger <cg@exept.de>
parents: 641
diff changeset
   259
            trace add:9
6d9ff4af7d5c class: RegressionTests::ExceptionTest
Claus Gittinger <cg@exept.de>
parents: 641
diff changeset
   260
        ].
6d9ff4af7d5c class: RegressionTests::ExceptionTest
Claus Gittinger <cg@exept.de>
parents: 641
diff changeset
   261
    ].
6d9ff4af7d5c class: RegressionTests::ExceptionTest
Claus Gittinger <cg@exept.de>
parents: 641
diff changeset
   262
    trace add:7.
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
    self assert:(trace asArray = #(4 2 1 9 7)).
6d9ff4af7d5c class: RegressionTests::ExceptionTest
Claus Gittinger <cg@exept.de>
parents: 641
diff changeset
   265
!
6d9ff4af7d5c class: RegressionTests::ExceptionTest
Claus Gittinger <cg@exept.de>
parents: 641
diff changeset
   266
6d9ff4af7d5c class: RegressionTests::ExceptionTest
Claus Gittinger <cg@exept.de>
parents: 641
diff changeset
   267
test11
241
5b8a5dd10628 initial checkin
Stefan Vogel <sv@exept.de>
parents:
diff changeset
   268
5b8a5dd10628 initial checkin
Stefan Vogel <sv@exept.de>
parents:
diff changeset
   269
    |result zero|
5b8a5dd10628 initial checkin
Stefan Vogel <sv@exept.de>
parents:
diff changeset
   270
5b8a5dd10628 initial checkin
Stefan Vogel <sv@exept.de>
parents:
diff changeset
   271
    result := OrderedCollection new.
5b8a5dd10628 initial checkin
Stefan Vogel <sv@exept.de>
parents:
diff changeset
   272
    zero := 0.
5b8a5dd10628 initial checkin
Stefan Vogel <sv@exept.de>
parents:
diff changeset
   273
5b8a5dd10628 initial checkin
Stefan Vogel <sv@exept.de>
parents:
diff changeset
   274
    [
5b8a5dd10628 initial checkin
Stefan Vogel <sv@exept.de>
parents:
diff changeset
   275
        [
5b8a5dd10628 initial checkin
Stefan Vogel <sv@exept.de>
parents:
diff changeset
   276
            Warning handle:[:ex | result add:#Warning ] do:[ 2 // zero ].
5b8a5dd10628 initial checkin
Stefan Vogel <sv@exept.de>
parents:
diff changeset
   277
        ] on:ZeroDivide do:[:ex |
5b8a5dd10628 initial checkin
Stefan Vogel <sv@exept.de>
parents:
diff changeset
   278
            result add:#Error.
5b8a5dd10628 initial checkin
Stefan Vogel <sv@exept.de>
parents:
diff changeset
   279
            ex reject.
5b8a5dd10628 initial checkin
Stefan Vogel <sv@exept.de>
parents:
diff changeset
   280
            [
5b8a5dd10628 initial checkin
Stefan Vogel <sv@exept.de>
parents:
diff changeset
   281
                self warn:ex description.
5b8a5dd10628 initial checkin
Stefan Vogel <sv@exept.de>
parents:
diff changeset
   282
            ] on:Warning do:[:ex| result add:#Warning2]
5b8a5dd10628 initial checkin
Stefan Vogel <sv@exept.de>
parents:
diff changeset
   283
        ]
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:#Error2
5b8a5dd10628 initial checkin
Stefan Vogel <sv@exept.de>
parents:
diff changeset
   286
    ].
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 assert:(result size == 2).
5b8a5dd10628 initial checkin
Stefan Vogel <sv@exept.de>
parents:
diff changeset
   289
    self assert:(result first == #Error).
5b8a5dd10628 initial checkin
Stefan Vogel <sv@exept.de>
parents:
diff changeset
   290
    self assert:(result second == #Error2)
5b8a5dd10628 initial checkin
Stefan Vogel <sv@exept.de>
parents:
diff changeset
   291
5b8a5dd10628 initial checkin
Stefan Vogel <sv@exept.de>
parents:
diff changeset
   292
    "
5b8a5dd10628 initial checkin
Stefan Vogel <sv@exept.de>
parents:
diff changeset
   293
     self run:#test10
5b8a5dd10628 initial checkin
Stefan Vogel <sv@exept.de>
parents:
diff changeset
   294
     self new test10
5b8a5dd10628 initial checkin
Stefan Vogel <sv@exept.de>
parents:
diff changeset
   295
    "
5b8a5dd10628 initial checkin
Stefan Vogel <sv@exept.de>
parents:
diff changeset
   296
!
5b8a5dd10628 initial checkin
Stefan Vogel <sv@exept.de>
parents:
diff changeset
   297
916
6d9ff4af7d5c class: RegressionTests::ExceptionTest
Claus Gittinger <cg@exept.de>
parents: 641
diff changeset
   298
test12_abortInEnsure
6d9ff4af7d5c class: RegressionTests::ExceptionTest
Claus Gittinger <cg@exept.de>
parents: 641
diff changeset
   299
    |trace setUp tearDown action|
6d9ff4af7d5c class: RegressionTests::ExceptionTest
Claus Gittinger <cg@exept.de>
parents: 641
diff changeset
   300
6d9ff4af7d5c class: RegressionTests::ExceptionTest
Claus Gittinger <cg@exept.de>
parents: 641
diff changeset
   301
    trace := OrderedCollection new.
6d9ff4af7d5c class: RegressionTests::ExceptionTest
Claus Gittinger <cg@exept.de>
parents: 641
diff changeset
   302
6d9ff4af7d5c class: RegressionTests::ExceptionTest
Claus Gittinger <cg@exept.de>
parents: 641
diff changeset
   303
    setUp :=
6d9ff4af7d5c class: RegressionTests::ExceptionTest
Claus Gittinger <cg@exept.de>
parents: 641
diff changeset
   304
        [
6d9ff4af7d5c class: RegressionTests::ExceptionTest
Claus Gittinger <cg@exept.de>
parents: 641
diff changeset
   305
            trace add:1. 
6d9ff4af7d5c class: RegressionTests::ExceptionTest
Claus Gittinger <cg@exept.de>
parents: 641
diff changeset
   306
            Transcript showCR:'1'.
6d9ff4af7d5c class: RegressionTests::ExceptionTest
Claus Gittinger <cg@exept.de>
parents: 641
diff changeset
   307
            AbortSignal raise.
6d9ff4af7d5c class: RegressionTests::ExceptionTest
Claus Gittinger <cg@exept.de>
parents: 641
diff changeset
   308
        ].
241
5b8a5dd10628 initial checkin
Stefan Vogel <sv@exept.de>
parents:
diff changeset
   309
916
6d9ff4af7d5c class: RegressionTests::ExceptionTest
Claus Gittinger <cg@exept.de>
parents: 641
diff changeset
   310
    tearDown :=
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:2.
6d9ff4af7d5c class: RegressionTests::ExceptionTest
Claus Gittinger <cg@exept.de>
parents: 641
diff changeset
   313
            Transcript showCR:'2'.
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
    action :=
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:3.
6d9ff4af7d5c class: RegressionTests::ExceptionTest
Claus Gittinger <cg@exept.de>
parents: 641
diff changeset
   320
            Transcript showCR:'3'.
6d9ff4af7d5c class: RegressionTests::ExceptionTest
Claus Gittinger <cg@exept.de>
parents: 641
diff changeset
   321
        ].
241
5b8a5dd10628 initial checkin
Stefan Vogel <sv@exept.de>
parents:
diff changeset
   322
916
6d9ff4af7d5c class: RegressionTests::ExceptionTest
Claus Gittinger <cg@exept.de>
parents: 641
diff changeset
   323
    AbortSignal handle:[:ex |
6d9ff4af7d5c class: RegressionTests::ExceptionTest
Claus Gittinger <cg@exept.de>
parents: 641
diff changeset
   324
        trace add:44.
6d9ff4af7d5c class: RegressionTests::ExceptionTest
Claus Gittinger <cg@exept.de>
parents: 641
diff changeset
   325
        Transcript showCR:'44'.
6d9ff4af7d5c class: RegressionTests::ExceptionTest
Claus Gittinger <cg@exept.de>
parents: 641
diff changeset
   326
    ] do:[
6d9ff4af7d5c class: RegressionTests::ExceptionTest
Claus Gittinger <cg@exept.de>
parents: 641
diff changeset
   327
        AbortSignal handle:[:ex |
6d9ff4af7d5c class: RegressionTests::ExceptionTest
Claus Gittinger <cg@exept.de>
parents: 641
diff changeset
   328
            trace add:4.
6d9ff4af7d5c class: RegressionTests::ExceptionTest
Claus Gittinger <cg@exept.de>
parents: 641
diff changeset
   329
            Transcript showCR:'4'.
6d9ff4af7d5c class: RegressionTests::ExceptionTest
Claus Gittinger <cg@exept.de>
parents: 641
diff changeset
   330
        ] do:[
6d9ff4af7d5c class: RegressionTests::ExceptionTest
Claus Gittinger <cg@exept.de>
parents: 641
diff changeset
   331
            [
6d9ff4af7d5c class: RegressionTests::ExceptionTest
Claus Gittinger <cg@exept.de>
parents: 641
diff changeset
   332
                trace add:5.
6d9ff4af7d5c class: RegressionTests::ExceptionTest
Claus Gittinger <cg@exept.de>
parents: 641
diff changeset
   333
                Transcript showCR:'5'.
6d9ff4af7d5c class: RegressionTests::ExceptionTest
Claus Gittinger <cg@exept.de>
parents: 641
diff changeset
   334
                setUp value.
6d9ff4af7d5c class: RegressionTests::ExceptionTest
Claus Gittinger <cg@exept.de>
parents: 641
diff changeset
   335
                trace add:6.
6d9ff4af7d5c class: RegressionTests::ExceptionTest
Claus Gittinger <cg@exept.de>
parents: 641
diff changeset
   336
                Transcript showCR:'6'.
6d9ff4af7d5c class: RegressionTests::ExceptionTest
Claus Gittinger <cg@exept.de>
parents: 641
diff changeset
   337
                action value.
6d9ff4af7d5c class: RegressionTests::ExceptionTest
Claus Gittinger <cg@exept.de>
parents: 641
diff changeset
   338
                trace add:7.
6d9ff4af7d5c class: RegressionTests::ExceptionTest
Claus Gittinger <cg@exept.de>
parents: 641
diff changeset
   339
                Transcript showCR:'7'.
917
4c48bc5be61c class: RegressionTests::ExceptionTest
Stefan Vogel <sv@exept.de>
parents: 916
diff changeset
   340
            ] ensure: [
916
6d9ff4af7d5c class: RegressionTests::ExceptionTest
Claus Gittinger <cg@exept.de>
parents: 641
diff changeset
   341
                trace add:8.
6d9ff4af7d5c class: RegressionTests::ExceptionTest
Claus Gittinger <cg@exept.de>
parents: 641
diff changeset
   342
                Transcript showCR:'8'.
6d9ff4af7d5c class: RegressionTests::ExceptionTest
Claus Gittinger <cg@exept.de>
parents: 641
diff changeset
   343
                tearDown value
6d9ff4af7d5c class: RegressionTests::ExceptionTest
Claus Gittinger <cg@exept.de>
parents: 641
diff changeset
   344
                trace add:9.
6d9ff4af7d5c class: RegressionTests::ExceptionTest
Claus Gittinger <cg@exept.de>
parents: 641
diff changeset
   345
                Transcript showCR:'9'.
6d9ff4af7d5c class: RegressionTests::ExceptionTest
Claus Gittinger <cg@exept.de>
parents: 641
diff changeset
   346
            ].
241
5b8a5dd10628 initial checkin
Stefan Vogel <sv@exept.de>
parents:
diff changeset
   347
        ].
916
6d9ff4af7d5c class: RegressionTests::ExceptionTest
Claus Gittinger <cg@exept.de>
parents: 641
diff changeset
   348
    ].
917
4c48bc5be61c class: RegressionTests::ExceptionTest
Stefan Vogel <sv@exept.de>
parents: 916
diff changeset
   349
    trace add:10.
4c48bc5be61c class: RegressionTests::ExceptionTest
Stefan Vogel <sv@exept.de>
parents: 916
diff changeset
   350
    Transcript showCR:'10'.
944
815bbd31a33c class: RegressionTests::ExceptionTest
Claus Gittinger <cg@exept.de>
parents: 943
diff changeset
   351
    self assert:(trace asArray = #(5 1 4 8 2 4 10)).
241
5b8a5dd10628 initial checkin
Stefan Vogel <sv@exept.de>
parents:
diff changeset
   352
5b8a5dd10628 initial checkin
Stefan Vogel <sv@exept.de>
parents:
diff changeset
   353
    "
916
6d9ff4af7d5c class: RegressionTests::ExceptionTest
Claus Gittinger <cg@exept.de>
parents: 641
diff changeset
   354
     self new test12_reraiseOuterHandlerWithEnsure
349
8aeec57e44db *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 241
diff changeset
   355
    "
8aeec57e44db *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 241
diff changeset
   356
!
8aeec57e44db *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 241
diff changeset
   357
916
6d9ff4af7d5c class: RegressionTests::ExceptionTest
Claus Gittinger <cg@exept.de>
parents: 641
diff changeset
   358
test13_abortInEnsureInProcess
6d9ff4af7d5c class: RegressionTests::ExceptionTest
Claus Gittinger <cg@exept.de>
parents: 641
diff changeset
   359
    |trace setUp tearDown action p|
634
Claus Gittinger <cg@exept.de>
parents: 349
diff changeset
   360
Claus Gittinger <cg@exept.de>
parents: 349
diff changeset
   361
    trace := OrderedCollection new.
916
6d9ff4af7d5c class: RegressionTests::ExceptionTest
Claus Gittinger <cg@exept.de>
parents: 641
diff changeset
   362
6d9ff4af7d5c class: RegressionTests::ExceptionTest
Claus Gittinger <cg@exept.de>
parents: 641
diff changeset
   363
    setUp :=
6d9ff4af7d5c class: RegressionTests::ExceptionTest
Claus Gittinger <cg@exept.de>
parents: 641
diff changeset
   364
        [
6d9ff4af7d5c class: RegressionTests::ExceptionTest
Claus Gittinger <cg@exept.de>
parents: 641
diff changeset
   365
            trace add:1. 
6d9ff4af7d5c class: RegressionTests::ExceptionTest
Claus Gittinger <cg@exept.de>
parents: 641
diff changeset
   366
            Transcript showCR:'1'.
6d9ff4af7d5c class: RegressionTests::ExceptionTest
Claus Gittinger <cg@exept.de>
parents: 641
diff changeset
   367
            AbortSignal raise.
6d9ff4af7d5c class: RegressionTests::ExceptionTest
Claus Gittinger <cg@exept.de>
parents: 641
diff changeset
   368
        ].
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
    tearDown :=
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:2.
6d9ff4af7d5c class: RegressionTests::ExceptionTest
Claus Gittinger <cg@exept.de>
parents: 641
diff changeset
   373
            Transcript showCR:'2'.
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
    action :=
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:3.
6d9ff4af7d5c class: RegressionTests::ExceptionTest
Claus Gittinger <cg@exept.de>
parents: 641
diff changeset
   380
            Transcript showCR:'3'.
6d9ff4af7d5c class: RegressionTests::ExceptionTest
Claus Gittinger <cg@exept.de>
parents: 641
diff changeset
   381
        ].
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
    p := 
6d9ff4af7d5c class: RegressionTests::ExceptionTest
Claus Gittinger <cg@exept.de>
parents: 641
diff changeset
   384
        [
6d9ff4af7d5c class: RegressionTests::ExceptionTest
Claus Gittinger <cg@exept.de>
parents: 641
diff changeset
   385
            AbortSignal handle:[:ex |
6d9ff4af7d5c class: RegressionTests::ExceptionTest
Claus Gittinger <cg@exept.de>
parents: 641
diff changeset
   386
                trace add:44.
6d9ff4af7d5c class: RegressionTests::ExceptionTest
Claus Gittinger <cg@exept.de>
parents: 641
diff changeset
   387
                Transcript showCR:'44'.
6d9ff4af7d5c class: RegressionTests::ExceptionTest
Claus Gittinger <cg@exept.de>
parents: 641
diff changeset
   388
            ] do:[
6d9ff4af7d5c class: RegressionTests::ExceptionTest
Claus Gittinger <cg@exept.de>
parents: 641
diff changeset
   389
                AbortSignal handle:[:ex |
6d9ff4af7d5c class: RegressionTests::ExceptionTest
Claus Gittinger <cg@exept.de>
parents: 641
diff changeset
   390
                    trace add:4.
6d9ff4af7d5c class: RegressionTests::ExceptionTest
Claus Gittinger <cg@exept.de>
parents: 641
diff changeset
   391
                    Transcript showCR:'4'.
6d9ff4af7d5c class: RegressionTests::ExceptionTest
Claus Gittinger <cg@exept.de>
parents: 641
diff changeset
   392
                ] do:[
6d9ff4af7d5c class: RegressionTests::ExceptionTest
Claus Gittinger <cg@exept.de>
parents: 641
diff changeset
   393
                    [
6d9ff4af7d5c class: RegressionTests::ExceptionTest
Claus Gittinger <cg@exept.de>
parents: 641
diff changeset
   394
                        trace add:5.
6d9ff4af7d5c class: RegressionTests::ExceptionTest
Claus Gittinger <cg@exept.de>
parents: 641
diff changeset
   395
                        Transcript showCR:'5'.
6d9ff4af7d5c class: RegressionTests::ExceptionTest
Claus Gittinger <cg@exept.de>
parents: 641
diff changeset
   396
                        setUp value.
6d9ff4af7d5c class: RegressionTests::ExceptionTest
Claus Gittinger <cg@exept.de>
parents: 641
diff changeset
   397
                        trace add:6.
6d9ff4af7d5c class: RegressionTests::ExceptionTest
Claus Gittinger <cg@exept.de>
parents: 641
diff changeset
   398
                        Transcript showCR:'6'.
6d9ff4af7d5c class: RegressionTests::ExceptionTest
Claus Gittinger <cg@exept.de>
parents: 641
diff changeset
   399
                        action value.
6d9ff4af7d5c class: RegressionTests::ExceptionTest
Claus Gittinger <cg@exept.de>
parents: 641
diff changeset
   400
                        trace add:7.
6d9ff4af7d5c class: RegressionTests::ExceptionTest
Claus Gittinger <cg@exept.de>
parents: 641
diff changeset
   401
                        Transcript showCR:'7'.
6d9ff4af7d5c class: RegressionTests::ExceptionTest
Claus Gittinger <cg@exept.de>
parents: 641
diff changeset
   402
                    ] sunitEnsure: [
6d9ff4af7d5c class: RegressionTests::ExceptionTest
Claus Gittinger <cg@exept.de>
parents: 641
diff changeset
   403
                        trace add:8.
6d9ff4af7d5c class: RegressionTests::ExceptionTest
Claus Gittinger <cg@exept.de>
parents: 641
diff changeset
   404
                        Transcript showCR:'8'.
6d9ff4af7d5c class: RegressionTests::ExceptionTest
Claus Gittinger <cg@exept.de>
parents: 641
diff changeset
   405
                        tearDown value
6d9ff4af7d5c class: RegressionTests::ExceptionTest
Claus Gittinger <cg@exept.de>
parents: 641
diff changeset
   406
                        trace add:9.
6d9ff4af7d5c class: RegressionTests::ExceptionTest
Claus Gittinger <cg@exept.de>
parents: 641
diff changeset
   407
                        Transcript showCR:'9'.
6d9ff4af7d5c class: RegressionTests::ExceptionTest
Claus Gittinger <cg@exept.de>
parents: 641
diff changeset
   408
                    ].
6d9ff4af7d5c class: RegressionTests::ExceptionTest
Claus Gittinger <cg@exept.de>
parents: 641
diff changeset
   409
                ].
641
0c1a14671aee changed:
Claus Gittinger <cg@exept.de>
parents: 634
diff changeset
   410
            ].
916
6d9ff4af7d5c class: RegressionTests::ExceptionTest
Claus Gittinger <cg@exept.de>
parents: 641
diff changeset
   411
            trace add:10.
6d9ff4af7d5c class: RegressionTests::ExceptionTest
Claus Gittinger <cg@exept.de>
parents: 641
diff changeset
   412
            Transcript showCR:'10'.
6d9ff4af7d5c class: RegressionTests::ExceptionTest
Claus Gittinger <cg@exept.de>
parents: 641
diff changeset
   413
        ] newProcess.
6d9ff4af7d5c class: RegressionTests::ExceptionTest
Claus Gittinger <cg@exept.de>
parents: 641
diff changeset
   414
    "/ p addExitAction:[ self halt].
6d9ff4af7d5c class: RegressionTests::ExceptionTest
Claus Gittinger <cg@exept.de>
parents: 641
diff changeset
   415
    p resume.
641
0c1a14671aee changed:
Claus Gittinger <cg@exept.de>
parents: 634
diff changeset
   416
916
6d9ff4af7d5c class: RegressionTests::ExceptionTest
Claus Gittinger <cg@exept.de>
parents: 641
diff changeset
   417
    p waitUntilTerminated.
944
815bbd31a33c class: RegressionTests::ExceptionTest
Claus Gittinger <cg@exept.de>
parents: 943
diff changeset
   418
    self assert:(trace asArray = #(5 1 4 8 2 4 10)).
634
Claus Gittinger <cg@exept.de>
parents: 349
diff changeset
   419
Claus Gittinger <cg@exept.de>
parents: 349
diff changeset
   420
    "
916
6d9ff4af7d5c class: RegressionTests::ExceptionTest
Claus Gittinger <cg@exept.de>
parents: 641
diff changeset
   421
     self new test12_reraiseOuterHandlerWithEnsure
634
Claus Gittinger <cg@exept.de>
parents: 349
diff changeset
   422
    "
1168
289bb5e55e18 Added tests for ANSI-compatible exception handling (thanks to Martin McClure)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 944
diff changeset
   423
!
289bb5e55e18 Added tests for ANSI-compatible exception handling (thanks to Martin McClure)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 944
diff changeset
   424
289bb5e55e18 Added tests for ANSI-compatible exception handling (thanks to Martin McClure)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 944
diff changeset
   425
testHandlerContext
289bb5e55e18 Added tests for ANSI-compatible exception handling (thanks to Martin McClure)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 944
diff changeset
   426
    "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
   427
289bb5e55e18 Added tests for ANSI-compatible exception handling (thanks to Martin McClure)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 944
diff changeset
   428
    | result |
289bb5e55e18 Added tests for ANSI-compatible exception handling (thanks to Martin McClure)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 944
diff changeset
   429
    result := [
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
    [ 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
   432
        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
   433
        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
   434
        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
   435
        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
   436
        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
   437
        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
   438
    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
   439
289bb5e55e18 Added tests for ANSI-compatible exception handling (thanks to Martin McClure)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 944
diff changeset
   440
    "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
   441
!
289bb5e55e18 Added tests for ANSI-compatible exception handling (thanks to Martin McClure)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 944
diff changeset
   442
289bb5e55e18 Added tests for ANSI-compatible exception handling (thanks to Martin McClure)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 944
diff changeset
   443
testHandlerFromAction
289bb5e55e18 Added tests for ANSI-compatible exception handling (thanks to Martin McClure)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 944
diff changeset
   444
    "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
   445
289bb5e55e18 Added tests for ANSI-compatible exception handling (thanks to Martin McClure)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 944
diff changeset
   446
    | result |
289bb5e55e18 Added tests for ANSI-compatible exception handling (thanks to Martin McClure)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 944
diff changeset
   447
    result := [
289bb5e55e18 Added tests for ANSI-compatible exception handling (thanks to Martin McClure)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 944
diff changeset
   448
    [
289bb5e55e18 Added tests for ANSI-compatible exception handling (thanks to Martin McClure)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 944
diff changeset
   449
    [ 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
   450
        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
   451
        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
   452
        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
   453
        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
   454
        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
   455
        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
   456
    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
   457
289bb5e55e18 Added tests for ANSI-compatible exception handling (thanks to Martin McClure)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 944
diff changeset
   458
    "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
   459
! !
5b8a5dd10628 initial checkin
Stefan Vogel <sv@exept.de>
parents:
diff changeset
   460
5b8a5dd10628 initial checkin
Stefan Vogel <sv@exept.de>
parents:
diff changeset
   461
!ExceptionTest class methodsFor:'documentation'!
5b8a5dd10628 initial checkin
Stefan Vogel <sv@exept.de>
parents:
diff changeset
   462
5b8a5dd10628 initial checkin
Stefan Vogel <sv@exept.de>
parents:
diff changeset
   463
version
5b8a5dd10628 initial checkin
Stefan Vogel <sv@exept.de>
parents:
diff changeset
   464
    ^ '$Header$'
944
815bbd31a33c class: RegressionTests::ExceptionTest
Claus Gittinger <cg@exept.de>
parents: 943
diff changeset
   465
!
815bbd31a33c class: RegressionTests::ExceptionTest
Claus Gittinger <cg@exept.de>
parents: 943
diff changeset
   466
815bbd31a33c class: RegressionTests::ExceptionTest
Claus Gittinger <cg@exept.de>
parents: 943
diff changeset
   467
version_CVS
815bbd31a33c class: RegressionTests::ExceptionTest
Claus Gittinger <cg@exept.de>
parents: 943
diff changeset
   468
    ^ '$Header$'
241
5b8a5dd10628 initial checkin
Stefan Vogel <sv@exept.de>
parents:
diff changeset
   469
! !
916
6d9ff4af7d5c class: RegressionTests::ExceptionTest
Claus Gittinger <cg@exept.de>
parents: 641
diff changeset
   470