RegressionTests__ExceptionTest.st
author Claus Gittinger <cg@exept.de>
Tue, 09 Jul 2019 18:53:03 +0200
changeset 2327 bf482d49aeaf
parent 2050 7801bc11580d
permissions -rw-r--r--
#QUALITY by exept class: RegressionTests::StringTests added: #test82c_expanding
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
1447
2351db93aa5b package changes
Claus Gittinger <cg@exept.de>
parents: 1363
diff changeset
     1
"{ Package: 'stx:goodies/regression' }"
241
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:''
2050
7801bc11580d #OTHER by cg
Claus Gittinger <cg@exept.de>
parents: 1447
diff changeset
     9
	category:'tests-Regression-Processes'
241
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:]
1447
2351db93aa5b package changes
Claus Gittinger <cg@exept.de>
parents: 1363
diff changeset
    40
	Stefan Vogel (stefan@zwerg)
241
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
1447
2351db93aa5b package changes
Claus Gittinger <cg@exept.de>
parents: 1363
diff changeset
    60
    [ 0 // zero ]
2351db93aa5b package changes
Claus Gittinger <cg@exept.de>
parents: 1363
diff changeset
    61
	on:ZeroDivide
2351db93aa5b package changes
Claus Gittinger <cg@exept.de>
parents: 1363
diff changeset
    62
	do:[:ex|
2351db93aa5b package changes
Claus Gittinger <cg@exept.de>
parents: 1363
diff changeset
    63
	    self assert:(ex creator == ZeroDivide).
2351db93aa5b package changes
Claus Gittinger <cg@exept.de>
parents: 1363
diff changeset
    64
	    self assert:(ex originator == 0).
2351db93aa5b package changes
Claus Gittinger <cg@exept.de>
parents: 1363
diff changeset
    65
	    result add:#Error
2351db93aa5b package changes
Claus Gittinger <cg@exept.de>
parents: 1363
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:[
1447
2351db93aa5b package changes
Claus Gittinger <cg@exept.de>
parents: 1363
diff changeset
    79
	[ 0 // zero ] on:ZeroDivide do:[:ex|
2351db93aa5b package changes
Claus Gittinger <cg@exept.de>
parents: 1363
diff changeset
    80
	    result add:#Error.
2351db93aa5b package changes
Claus Gittinger <cg@exept.de>
parents: 1363
diff changeset
    81
	    0 // zero
2351db93aa5b package changes
Claus Gittinger <cg@exept.de>
parents: 1363
diff changeset
    82
	].
916
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:[
1447
2351db93aa5b package changes
Claus Gittinger <cg@exept.de>
parents: 1363
diff changeset
    96
	[ 0 // zero ] on:ZeroDivide do:[:ex|
2351db93aa5b package changes
Claus Gittinger <cg@exept.de>
parents: 1363
diff changeset
    97
	    result add:#Error.
2351db93aa5b package changes
Claus Gittinger <cg@exept.de>
parents: 1363
diff changeset
    98
	    [ 0 // zero ] on:ZeroDivide do:[:ex|
2351db93aa5b package changes
Claus Gittinger <cg@exept.de>
parents: 1363
diff changeset
    99
		result add:#Error1.
2351db93aa5b package changes
Claus Gittinger <cg@exept.de>
parents: 1363
diff changeset
   100
		ex reject.
2351db93aa5b package changes
Claus Gittinger <cg@exept.de>
parents: 1363
diff changeset
   101
	    ].
2351db93aa5b package changes
Claus Gittinger <cg@exept.de>
parents: 1363
diff changeset
   102
	].
916
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
1447
2351db93aa5b package changes
Claus Gittinger <cg@exept.de>
parents: 1363
diff changeset
   116
    [0 // zero]
2351db93aa5b package changes
Claus Gittinger <cg@exept.de>
parents: 1363
diff changeset
   117
	on:ZeroDivide
2351db93aa5b package changes
Claus Gittinger <cg@exept.de>
parents: 1363
diff changeset
   118
	do:[:ex|
2351db93aa5b package changes
Claus Gittinger <cg@exept.de>
parents: 1363
diff changeset
   119
	    exceptionHappened := true
2351db93aa5b package changes
Claus Gittinger <cg@exept.de>
parents: 1363
diff changeset
   120
	].
916
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
1447
2351db93aa5b package changes
Claus Gittinger <cg@exept.de>
parents: 1363
diff changeset
   132
    [0 // zero]
2351db93aa5b package changes
Claus Gittinger <cg@exept.de>
parents: 1363
diff changeset
   133
	on:ZeroDivide
2351db93aa5b package changes
Claus Gittinger <cg@exept.de>
parents: 1363
diff changeset
   134
	do:[:ex| exceptionHappened := true]
2351db93aa5b package changes
Claus Gittinger <cg@exept.de>
parents: 1363
diff changeset
   135
	ensure:[ ensureCalled := true ].
916
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
1447
2351db93aa5b package changes
Claus Gittinger <cg@exept.de>
parents: 1363
diff changeset
   148
    [zero // 1]
2351db93aa5b package changes
Claus Gittinger <cg@exept.de>
parents: 1363
diff changeset
   149
	on:ZeroDivide
2351db93aa5b package changes
Claus Gittinger <cg@exept.de>
parents: 1363
diff changeset
   150
	do:[:ex| exceptionHappened := true]
2351db93aa5b package changes
Claus Gittinger <cg@exept.de>
parents: 1363
diff changeset
   151
	ensure:[ ensureCalled := true ].
916
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:[
1447
2351db93aa5b package changes
Claus Gittinger <cg@exept.de>
parents: 1363
diff changeset
   166
	Error handle:[:ex |
2351db93aa5b package changes
Claus Gittinger <cg@exept.de>
parents: 1363
diff changeset
   167
	    trace add:5.
2351db93aa5b package changes
Claus Gittinger <cg@exept.de>
parents: 1363
diff changeset
   168
	] do:[
2351db93aa5b package changes
Claus Gittinger <cg@exept.de>
parents: 1363
diff changeset
   169
	    [
2351db93aa5b package changes
Claus Gittinger <cg@exept.de>
parents: 1363
diff changeset
   170
		trace add:1.
2351db93aa5b package changes
Claus Gittinger <cg@exept.de>
parents: 1363
diff changeset
   171
		1 // zero.
2351db93aa5b package changes
Claus Gittinger <cg@exept.de>
parents: 1363
diff changeset
   172
		trace add:2.
2351db93aa5b package changes
Claus Gittinger <cg@exept.de>
parents: 1363
diff changeset
   173
	    ] ensure:[
2351db93aa5b package changes
Claus Gittinger <cg@exept.de>
parents: 1363
diff changeset
   174
		trace add:3.
2351db93aa5b package changes
Claus Gittinger <cg@exept.de>
parents: 1363
diff changeset
   175
		1 // zero.
2351db93aa5b package changes
Claus Gittinger <cg@exept.de>
parents: 1363
diff changeset
   176
		trace add:4.
2351db93aa5b package changes
Claus Gittinger <cg@exept.de>
parents: 1363
diff changeset
   177
	    ].
2351db93aa5b package changes
Claus Gittinger <cg@exept.de>
parents: 1363
diff changeset
   178
	].
916
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:[
1447
2351db93aa5b package changes
Claus Gittinger <cg@exept.de>
parents: 1363
diff changeset
   193
	Error handle:[:ex |
2351db93aa5b package changes
Claus Gittinger <cg@exept.de>
parents: 1363
diff changeset
   194
	    trace add:6.
2351db93aa5b package changes
Claus Gittinger <cg@exept.de>
parents: 1363
diff changeset
   195
	] do:[
2351db93aa5b package changes
Claus Gittinger <cg@exept.de>
parents: 1363
diff changeset
   196
	    Error handle:[:ex |
2351db93aa5b package changes
Claus Gittinger <cg@exept.de>
parents: 1363
diff changeset
   197
		trace add:5.
2351db93aa5b package changes
Claus Gittinger <cg@exept.de>
parents: 1363
diff changeset
   198
	    ] do:[
2351db93aa5b package changes
Claus Gittinger <cg@exept.de>
parents: 1363
diff changeset
   199
		[
2351db93aa5b package changes
Claus Gittinger <cg@exept.de>
parents: 1363
diff changeset
   200
		    trace add:1.
2351db93aa5b package changes
Claus Gittinger <cg@exept.de>
parents: 1363
diff changeset
   201
		    1 // zero.
2351db93aa5b package changes
Claus Gittinger <cg@exept.de>
parents: 1363
diff changeset
   202
		    trace add:2.
2351db93aa5b package changes
Claus Gittinger <cg@exept.de>
parents: 1363
diff changeset
   203
		] ensure:[
2351db93aa5b package changes
Claus Gittinger <cg@exept.de>
parents: 1363
diff changeset
   204
		    trace add:3.
2351db93aa5b package changes
Claus Gittinger <cg@exept.de>
parents: 1363
diff changeset
   205
		    1 // zero.
2351db93aa5b package changes
Claus Gittinger <cg@exept.de>
parents: 1363
diff changeset
   206
		    trace add:4.
2351db93aa5b package changes
Claus Gittinger <cg@exept.de>
parents: 1363
diff changeset
   207
		].
2351db93aa5b package changes
Claus Gittinger <cg@exept.de>
parents: 1363
diff changeset
   208
	    ].
2351db93aa5b package changes
Claus Gittinger <cg@exept.de>
parents: 1363
diff changeset
   209
	].
916
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 |
1447
2351db93aa5b package changes
Claus Gittinger <cg@exept.de>
parents: 1363
diff changeset
   224
	trace add:1.
916
6d9ff4af7d5c class: RegressionTests::ExceptionTest
Claus Gittinger <cg@exept.de>
parents: 641
diff changeset
   225
    ] do:[
1447
2351db93aa5b package changes
Claus Gittinger <cg@exept.de>
parents: 1363
diff changeset
   226
	[
2351db93aa5b package changes
Claus Gittinger <cg@exept.de>
parents: 1363
diff changeset
   227
	    AbortSignal handle:[:ex |
2351db93aa5b package changes
Claus Gittinger <cg@exept.de>
parents: 1363
diff changeset
   228
		trace add:2.
2351db93aa5b package changes
Claus Gittinger <cg@exept.de>
parents: 1363
diff changeset
   229
		AbortSignal raise.
2351db93aa5b package changes
Claus Gittinger <cg@exept.de>
parents: 1363
diff changeset
   230
		trace add:3.
2351db93aa5b package changes
Claus Gittinger <cg@exept.de>
parents: 1363
diff changeset
   231
	    ] do:[
2351db93aa5b package changes
Claus Gittinger <cg@exept.de>
parents: 1363
diff changeset
   232
		trace add:4.
2351db93aa5b package changes
Claus Gittinger <cg@exept.de>
parents: 1363
diff changeset
   233
		AbortSignal raise.
2351db93aa5b package changes
Claus Gittinger <cg@exept.de>
parents: 1363
diff changeset
   234
		trace add:5.
2351db93aa5b package changes
Claus Gittinger <cg@exept.de>
parents: 1363
diff changeset
   235
	    ].
2351db93aa5b package changes
Claus Gittinger <cg@exept.de>
parents: 1363
diff changeset
   236
	    trace add:6.
2351db93aa5b package changes
Claus Gittinger <cg@exept.de>
parents: 1363
diff changeset
   237
	] ensure:[
2351db93aa5b package changes
Claus Gittinger <cg@exept.de>
parents: 1363
diff changeset
   238
	    trace add:9
2351db93aa5b package changes
Claus Gittinger <cg@exept.de>
parents: 1363
diff changeset
   239
	].
916
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 |
1447
2351db93aa5b package changes
Claus Gittinger <cg@exept.de>
parents: 1363
diff changeset
   252
	trace add:1.
916
6d9ff4af7d5c class: RegressionTests::ExceptionTest
Claus Gittinger <cg@exept.de>
parents: 641
diff changeset
   253
    ] do:[
1447
2351db93aa5b package changes
Claus Gittinger <cg@exept.de>
parents: 1363
diff changeset
   254
	[
2351db93aa5b package changes
Claus Gittinger <cg@exept.de>
parents: 1363
diff changeset
   255
	    AbortSignal handle:[:ex |
2351db93aa5b package changes
Claus Gittinger <cg@exept.de>
parents: 1363
diff changeset
   256
		trace add:2.
2351db93aa5b package changes
Claus Gittinger <cg@exept.de>
parents: 1363
diff changeset
   257
		AbortSignal raise.
2351db93aa5b package changes
Claus Gittinger <cg@exept.de>
parents: 1363
diff changeset
   258
		trace add:3.
2351db93aa5b package changes
Claus Gittinger <cg@exept.de>
parents: 1363
diff changeset
   259
	    ] do:[
2351db93aa5b package changes
Claus Gittinger <cg@exept.de>
parents: 1363
diff changeset
   260
		trace add:4.
2351db93aa5b package changes
Claus Gittinger <cg@exept.de>
parents: 1363
diff changeset
   261
		AbortSignal raise.
2351db93aa5b package changes
Claus Gittinger <cg@exept.de>
parents: 1363
diff changeset
   262
		trace add:5.
2351db93aa5b package changes
Claus Gittinger <cg@exept.de>
parents: 1363
diff changeset
   263
	    ].
2351db93aa5b package changes
Claus Gittinger <cg@exept.de>
parents: 1363
diff changeset
   264
	    trace add:6.
2351db93aa5b package changes
Claus Gittinger <cg@exept.de>
parents: 1363
diff changeset
   265
	] ensure:[
2351db93aa5b package changes
Claus Gittinger <cg@exept.de>
parents: 1363
diff changeset
   266
	    trace add:9
2351db93aa5b package changes
Claus Gittinger <cg@exept.de>
parents: 1363
diff changeset
   267
	].
916
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
    [
1447
2351db93aa5b package changes
Claus Gittinger <cg@exept.de>
parents: 1363
diff changeset
   282
	[
2351db93aa5b package changes
Claus Gittinger <cg@exept.de>
parents: 1363
diff changeset
   283
	    Warning handle:[:ex | result add:#Warning ] do:[ 2 // zero ].
2351db93aa5b package changes
Claus Gittinger <cg@exept.de>
parents: 1363
diff changeset
   284
	] on:ZeroDivide do:[:ex |
2351db93aa5b package changes
Claus Gittinger <cg@exept.de>
parents: 1363
diff changeset
   285
	    result add:#Error.
2351db93aa5b package changes
Claus Gittinger <cg@exept.de>
parents: 1363
diff changeset
   286
	    ex reject.
2351db93aa5b package changes
Claus Gittinger <cg@exept.de>
parents: 1363
diff changeset
   287
	    [
2351db93aa5b package changes
Claus Gittinger <cg@exept.de>
parents: 1363
diff changeset
   288
		self warn:ex description.
2351db93aa5b package changes
Claus Gittinger <cg@exept.de>
parents: 1363
diff changeset
   289
	    ] on:Warning do:[:ex| result add:#Warning2]
2351db93aa5b package changes
Claus Gittinger <cg@exept.de>
parents: 1363
diff changeset
   290
	]
241
5b8a5dd10628 initial checkin
Stefan Vogel <sv@exept.de>
parents:
diff changeset
   291
    ] on:ZeroDivide do:[:ex |
1447
2351db93aa5b package changes
Claus Gittinger <cg@exept.de>
parents: 1363
diff changeset
   292
	result add:#Error2
241
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 :=
1447
2351db93aa5b package changes
Claus Gittinger <cg@exept.de>
parents: 1363
diff changeset
   311
	[
2351db93aa5b package changes
Claus Gittinger <cg@exept.de>
parents: 1363
diff changeset
   312
	    trace add:1.
2351db93aa5b package changes
Claus Gittinger <cg@exept.de>
parents: 1363
diff changeset
   313
	    "/ Transcript showCR:'1'.
2351db93aa5b package changes
Claus Gittinger <cg@exept.de>
parents: 1363
diff changeset
   314
	    AbortSignal raise.
2351db93aa5b package changes
Claus Gittinger <cg@exept.de>
parents: 1363
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 :=
1447
2351db93aa5b package changes
Claus Gittinger <cg@exept.de>
parents: 1363
diff changeset
   318
	[
2351db93aa5b package changes
Claus Gittinger <cg@exept.de>
parents: 1363
diff changeset
   319
	    trace add:2.
2351db93aa5b package changes
Claus Gittinger <cg@exept.de>
parents: 1363
diff changeset
   320
	    "/ Transcript showCR:'2'.
2351db93aa5b package changes
Claus Gittinger <cg@exept.de>
parents: 1363
diff changeset
   321
	    AbortSignal raise.
2351db93aa5b package changes
Claus Gittinger <cg@exept.de>
parents: 1363
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 :=
1447
2351db93aa5b package changes
Claus Gittinger <cg@exept.de>
parents: 1363
diff changeset
   325
	[
2351db93aa5b package changes
Claus Gittinger <cg@exept.de>
parents: 1363
diff changeset
   326
	    trace add:3.
2351db93aa5b package changes
Claus Gittinger <cg@exept.de>
parents: 1363
diff changeset
   327
	    "/ Transcript showCR:'3'.
2351db93aa5b package changes
Claus Gittinger <cg@exept.de>
parents: 1363
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 |
1447
2351db93aa5b package changes
Claus Gittinger <cg@exept.de>
parents: 1363
diff changeset
   331
	trace add:44.
2351db93aa5b package changes
Claus Gittinger <cg@exept.de>
parents: 1363
diff changeset
   332
	"/ Transcript showCR:'44'.
916
6d9ff4af7d5c class: RegressionTests::ExceptionTest
Claus Gittinger <cg@exept.de>
parents: 641
diff changeset
   333
    ] do:[
1447
2351db93aa5b package changes
Claus Gittinger <cg@exept.de>
parents: 1363
diff changeset
   334
	AbortSignal handle:[:ex |
2351db93aa5b package changes
Claus Gittinger <cg@exept.de>
parents: 1363
diff changeset
   335
	    trace add:4.
2351db93aa5b package changes
Claus Gittinger <cg@exept.de>
parents: 1363
diff changeset
   336
	    "/ Transcript showCR:'4'.
2351db93aa5b package changes
Claus Gittinger <cg@exept.de>
parents: 1363
diff changeset
   337
	] do:[
2351db93aa5b package changes
Claus Gittinger <cg@exept.de>
parents: 1363
diff changeset
   338
	    [
2351db93aa5b package changes
Claus Gittinger <cg@exept.de>
parents: 1363
diff changeset
   339
		trace add:5.
2351db93aa5b package changes
Claus Gittinger <cg@exept.de>
parents: 1363
diff changeset
   340
		"/ Transcript showCR:'5'.
2351db93aa5b package changes
Claus Gittinger <cg@exept.de>
parents: 1363
diff changeset
   341
		setUp value.
2351db93aa5b package changes
Claus Gittinger <cg@exept.de>
parents: 1363
diff changeset
   342
		trace add:6.
2351db93aa5b package changes
Claus Gittinger <cg@exept.de>
parents: 1363
diff changeset
   343
		"/ Transcript showCR:'6'.
2351db93aa5b package changes
Claus Gittinger <cg@exept.de>
parents: 1363
diff changeset
   344
		action value.
2351db93aa5b package changes
Claus Gittinger <cg@exept.de>
parents: 1363
diff changeset
   345
		trace add:7.
2351db93aa5b package changes
Claus Gittinger <cg@exept.de>
parents: 1363
diff changeset
   346
		"/ Transcript showCR:'7'.
2351db93aa5b package changes
Claus Gittinger <cg@exept.de>
parents: 1363
diff changeset
   347
	    ] ensure: [
2351db93aa5b package changes
Claus Gittinger <cg@exept.de>
parents: 1363
diff changeset
   348
		trace add:8.
2351db93aa5b package changes
Claus Gittinger <cg@exept.de>
parents: 1363
diff changeset
   349
		"/ Transcript showCR:'8'.
2351db93aa5b package changes
Claus Gittinger <cg@exept.de>
parents: 1363
diff changeset
   350
		tearDown value
2351db93aa5b package changes
Claus Gittinger <cg@exept.de>
parents: 1363
diff changeset
   351
		trace add:9.
2351db93aa5b package changes
Claus Gittinger <cg@exept.de>
parents: 1363
diff changeset
   352
		"/ Transcript showCR:'9'.
2351db93aa5b package changes
Claus Gittinger <cg@exept.de>
parents: 1363
diff changeset
   353
	    ].
2351db93aa5b package changes
Claus Gittinger <cg@exept.de>
parents: 1363
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 :=
1447
2351db93aa5b package changes
Claus Gittinger <cg@exept.de>
parents: 1363
diff changeset
   371
	[
2351db93aa5b package changes
Claus Gittinger <cg@exept.de>
parents: 1363
diff changeset
   372
	    trace add:1.
2351db93aa5b package changes
Claus Gittinger <cg@exept.de>
parents: 1363
diff changeset
   373
	    "/ Transcript showCR:'1'.
2351db93aa5b package changes
Claus Gittinger <cg@exept.de>
parents: 1363
diff changeset
   374
	    AbortSignal raise.
2351db93aa5b package changes
Claus Gittinger <cg@exept.de>
parents: 1363
diff changeset
   375
	].
916
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 :=
1447
2351db93aa5b package changes
Claus Gittinger <cg@exept.de>
parents: 1363
diff changeset
   378
	[
2351db93aa5b package changes
Claus Gittinger <cg@exept.de>
parents: 1363
diff changeset
   379
	    trace add:2.
2351db93aa5b package changes
Claus Gittinger <cg@exept.de>
parents: 1363
diff changeset
   380
	    "/ Transcript showCR:'2'.
2351db93aa5b package changes
Claus Gittinger <cg@exept.de>
parents: 1363
diff changeset
   381
	    AbortSignal raise.
2351db93aa5b package changes
Claus Gittinger <cg@exept.de>
parents: 1363
diff changeset
   382
	].
916
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 :=
1447
2351db93aa5b package changes
Claus Gittinger <cg@exept.de>
parents: 1363
diff changeset
   385
	[
2351db93aa5b package changes
Claus Gittinger <cg@exept.de>
parents: 1363
diff changeset
   386
	    trace add:3.
2351db93aa5b package changes
Claus Gittinger <cg@exept.de>
parents: 1363
diff changeset
   387
	    "/ Transcript showCR:'3'.
2351db93aa5b package changes
Claus Gittinger <cg@exept.de>
parents: 1363
diff changeset
   388
	].
916
6d9ff4af7d5c class: RegressionTests::ExceptionTest
Claus Gittinger <cg@exept.de>
parents: 641
diff changeset
   389
1447
2351db93aa5b package changes
Claus Gittinger <cg@exept.de>
parents: 1363
diff changeset
   390
    p :=
2351db93aa5b package changes
Claus Gittinger <cg@exept.de>
parents: 1363
diff changeset
   391
	[
2351db93aa5b package changes
Claus Gittinger <cg@exept.de>
parents: 1363
diff changeset
   392
	    AbortSignal handle:[:ex |
2351db93aa5b package changes
Claus Gittinger <cg@exept.de>
parents: 1363
diff changeset
   393
		trace add:44.
2351db93aa5b package changes
Claus Gittinger <cg@exept.de>
parents: 1363
diff changeset
   394
		"/ Transcript showCR:'44'.
2351db93aa5b package changes
Claus Gittinger <cg@exept.de>
parents: 1363
diff changeset
   395
	    ] do:[
2351db93aa5b package changes
Claus Gittinger <cg@exept.de>
parents: 1363
diff changeset
   396
		AbortSignal handle:[:ex |
2351db93aa5b package changes
Claus Gittinger <cg@exept.de>
parents: 1363
diff changeset
   397
		    trace add:4.
2351db93aa5b package changes
Claus Gittinger <cg@exept.de>
parents: 1363
diff changeset
   398
		    "/ Transcript showCR:'4'.
2351db93aa5b package changes
Claus Gittinger <cg@exept.de>
parents: 1363
diff changeset
   399
		] do:[
2351db93aa5b package changes
Claus Gittinger <cg@exept.de>
parents: 1363
diff changeset
   400
		    [
2351db93aa5b package changes
Claus Gittinger <cg@exept.de>
parents: 1363
diff changeset
   401
			trace add:5.
2351db93aa5b package changes
Claus Gittinger <cg@exept.de>
parents: 1363
diff changeset
   402
			"/ Transcript showCR:'5'.
2351db93aa5b package changes
Claus Gittinger <cg@exept.de>
parents: 1363
diff changeset
   403
			setUp value.
2351db93aa5b package changes
Claus Gittinger <cg@exept.de>
parents: 1363
diff changeset
   404
			trace add:6.
2351db93aa5b package changes
Claus Gittinger <cg@exept.de>
parents: 1363
diff changeset
   405
			"/ Transcript showCR:'6'.
2351db93aa5b package changes
Claus Gittinger <cg@exept.de>
parents: 1363
diff changeset
   406
			action value.
2351db93aa5b package changes
Claus Gittinger <cg@exept.de>
parents: 1363
diff changeset
   407
			trace add:7.
2351db93aa5b package changes
Claus Gittinger <cg@exept.de>
parents: 1363
diff changeset
   408
			"/ Transcript showCR:'7'.
2351db93aa5b package changes
Claus Gittinger <cg@exept.de>
parents: 1363
diff changeset
   409
		    ] sunitEnsure: [
2351db93aa5b package changes
Claus Gittinger <cg@exept.de>
parents: 1363
diff changeset
   410
			trace add:8.
2351db93aa5b package changes
Claus Gittinger <cg@exept.de>
parents: 1363
diff changeset
   411
			"/ Transcript showCR:'8'.
2351db93aa5b package changes
Claus Gittinger <cg@exept.de>
parents: 1363
diff changeset
   412
			tearDown value
2351db93aa5b package changes
Claus Gittinger <cg@exept.de>
parents: 1363
diff changeset
   413
			trace add:9.
2351db93aa5b package changes
Claus Gittinger <cg@exept.de>
parents: 1363
diff changeset
   414
			"/ Transcript showCR:'9'.
2351db93aa5b package changes
Claus Gittinger <cg@exept.de>
parents: 1363
diff changeset
   415
		    ].
2351db93aa5b package changes
Claus Gittinger <cg@exept.de>
parents: 1363
diff changeset
   416
		].
2351db93aa5b package changes
Claus Gittinger <cg@exept.de>
parents: 1363
diff changeset
   417
	    ].
2351db93aa5b package changes
Claus Gittinger <cg@exept.de>
parents: 1363
diff changeset
   418
	    trace add:10.
2351db93aa5b package changes
Claus Gittinger <cg@exept.de>
parents: 1363
diff changeset
   419
	    "/ Transcript showCR:'10'.
2351db93aa5b package changes
Claus Gittinger <cg@exept.de>
parents: 1363
diff changeset
   420
	] newProcess.
916
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:[
1447
2351db93aa5b package changes
Claus Gittinger <cg@exept.de>
parents: 1363
diff changeset
   443
	answer := MyQuery query.
2351db93aa5b package changes
Claus Gittinger <cg@exept.de>
parents: 1363
diff changeset
   444
	self assert:(answer == #ok).
1275
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
1447
2351db93aa5b package changes
Claus Gittinger <cg@exept.de>
parents: 1363
diff changeset
   452
	do:[
2351db93aa5b package changes
Claus Gittinger <cg@exept.de>
parents: 1363
diff changeset
   453
	    [
2351db93aa5b package changes
Claus Gittinger <cg@exept.de>
parents: 1363
diff changeset
   454
		answer := MyQuery query.
2351db93aa5b package changes
Claus Gittinger <cg@exept.de>
parents: 1363
diff changeset
   455
		self assert:(answer == #ok2).
2351db93aa5b package changes
Claus Gittinger <cg@exept.de>
parents: 1363
diff changeset
   456
	    ] on:MyQuery do:[:ex | ex return:#ok2 ].
2351db93aa5b package changes
Claus Gittinger <cg@exept.de>
parents: 1363
diff changeset
   457
	].
1275
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
1447
2351db93aa5b package changes
Claus Gittinger <cg@exept.de>
parents: 1363
diff changeset
   464
	do:[
2351db93aa5b package changes
Claus Gittinger <cg@exept.de>
parents: 1363
diff changeset
   465
	    [
2351db93aa5b package changes
Claus Gittinger <cg@exept.de>
parents: 1363
diff changeset
   466
		answer := MyQuery query.
2351db93aa5b package changes
Claus Gittinger <cg@exept.de>
parents: 1363
diff changeset
   467
		self assert:(answer == #ok).
2351db93aa5b package changes
Claus Gittinger <cg@exept.de>
parents: 1363
diff changeset
   468
	    ] on:AbortAllOperationWantedQuery do:[:ex | ex return:#ok2 ].
2351db93aa5b package changes
Claus Gittinger <cg@exept.de>
parents: 1363
diff changeset
   469
	].
1275
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 ]
1447
2351db93aa5b package changes
Claus Gittinger <cg@exept.de>
parents: 1363
diff changeset
   479
	on: MyTestError
2351db93aa5b package changes
Claus Gittinger <cg@exept.de>
parents: 1363
diff changeset
   480
	do: [ 'handler 2' ] ]
2351db93aa5b package changes
Claus Gittinger <cg@exept.de>
parents: 1363
diff changeset
   481
	on: MyResumableTestError
2351db93aa5b package changes
Claus Gittinger <cg@exept.de>
parents: 1363
diff changeset
   482
	do: [ MyTestError signal ] ]
2351db93aa5b package changes
Claus Gittinger <cg@exept.de>
parents: 1363
diff changeset
   483
	on: MyTestError
2351db93aa5b package changes
Claus Gittinger <cg@exept.de>
parents: 1363
diff changeset
   484
	do: [ 'handler 1' ].
1168
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' ]
1447
2351db93aa5b package changes
Claus Gittinger <cg@exept.de>
parents: 1363
diff changeset
   497
	on: ZeroDivide
2351db93aa5b package changes
Claus Gittinger <cg@exept.de>
parents: 1363
diff changeset
   498
	do: [ :ex | 'inner' ] ]
2351db93aa5b package changes
Claus Gittinger <cg@exept.de>
parents: 1363
diff changeset
   499
	on: Error
2351db93aa5b package changes
Claus Gittinger <cg@exept.de>
parents: 1363
diff changeset
   500
	do: [ :ex | 3 perform: ('', '/') asSymbol with: 0 ] ]
2351db93aa5b package changes
Claus Gittinger <cg@exept.de>
parents: 1363
diff changeset
   501
	on: ZeroDivide
2351db93aa5b package changes
Claus Gittinger <cg@exept.de>
parents: 1363
diff changeset
   502
	do: [ :ex | 'outer' ].
1168
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