RegressionTests__ContextTest2.st
author Claus Gittinger <cg@exept.de>
Tue, 09 Jul 2019 18:53:03 +0200
changeset 2327 bf482d49aeaf
parent 1671 b98bd06d8a91
child 2385 c4ce069d9cda
permissions -rw-r--r--
#QUALITY by exept class: RegressionTests::StringTests added: #test82c_expanding
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
1671
b98bd06d8a91 #BUGFIX by stefan
Stefan Vogel <sv@exept.de>
parents: 1447
diff changeset
     1
"{ Encoding: utf8 }"
b98bd06d8a91 #BUGFIX by stefan
Stefan Vogel <sv@exept.de>
parents: 1447
diff changeset
     2
1447
2351db93aa5b package changes
Claus Gittinger <cg@exept.de>
parents: 1157
diff changeset
     3
"{ Package: 'stx:goodies/regression' }"
100
34d87daf0f75 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
     4
34d87daf0f75 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
     5
"{ NameSpace: RegressionTests }"
34d87daf0f75 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
     6
249
883b35584076 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 240
diff changeset
     7
TestCase subclass:#ContextTest2
251
7bbc4aa977d5 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 250
diff changeset
     8
	instanceVariableNames:'exceptionObject ttt'
249
883b35584076 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 240
diff changeset
     9
	classVariableNames:''
883b35584076 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 240
diff changeset
    10
	poolDictionaries:''
1157
459cbf85d7f0 category changes
Claus Gittinger <cg@exept.de>
parents: 669
diff changeset
    11
	category:'tests-Regression-RuntimeSystem'
249
883b35584076 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 240
diff changeset
    12
!
883b35584076 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 240
diff changeset
    13
883b35584076 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 240
diff changeset
    14
Notification subclass:#MyNotification
100
34d87daf0f75 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    15
	instanceVariableNames:''
34d87daf0f75 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    16
	classVariableNames:''
34d87daf0f75 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    17
	poolDictionaries:''
249
883b35584076 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 240
diff changeset
    18
	privateIn:ContextTest2
100
34d87daf0f75 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    19
!
34d87daf0f75 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    20
34d87daf0f75 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    21
239
e5829ccc5a7a *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 180
diff changeset
    22
!ContextTest2 methodsFor:'helpers'!
100
34d87daf0f75 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    23
251
7bbc4aa977d5 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 250
diff changeset
    24
call10_1
7bbc4aa977d5 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 250
diff changeset
    25
    |local|
7bbc4aa977d5 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 250
diff changeset
    26
7bbc4aa977d5 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 250
diff changeset
    27
    ^ self call10_2:[:x | local := x].
7bbc4aa977d5 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 250
diff changeset
    28
!
7bbc4aa977d5 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 250
diff changeset
    29
7bbc4aa977d5 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 250
diff changeset
    30
call10_2:aBlock
1671
b98bd06d8a91 #BUGFIX by stefan
Stefan Vogel <sv@exept.de>
parents: 1447
diff changeset
    31
    |local|
b98bd06d8a91 #BUGFIX by stefan
Stefan Vogel <sv@exept.de>
parents: 1447
diff changeset
    32
b98bd06d8a91 #BUGFIX by stefan
Stefan Vogel <sv@exept.de>
parents: 1447
diff changeset
    33
    local := 2.
251
7bbc4aa977d5 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 250
diff changeset
    34
    ^ self call10_3:aBlock
1671
b98bd06d8a91 #BUGFIX by stefan
Stefan Vogel <sv@exept.de>
parents: 1447
diff changeset
    35
b98bd06d8a91 #BUGFIX by stefan
Stefan Vogel <sv@exept.de>
parents: 1447
diff changeset
    36
    "Modified: / 02-08-2017 / 14:03:32 / stefan"
250
619351b79902 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 249
diff changeset
    37
!
619351b79902 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 249
diff changeset
    38
251
7bbc4aa977d5 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 250
diff changeset
    39
call10_3:aBlock
1671
b98bd06d8a91 #BUGFIX by stefan
Stefan Vogel <sv@exept.de>
parents: 1447
diff changeset
    40
    |local|
b98bd06d8a91 #BUGFIX by stefan
Stefan Vogel <sv@exept.de>
parents: 1447
diff changeset
    41
b98bd06d8a91 #BUGFIX by stefan
Stefan Vogel <sv@exept.de>
parents: 1447
diff changeset
    42
    local := 3.
252
1005bdeab488 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 251
diff changeset
    43
    aBlock value:thisContext.
1005bdeab488 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 251
diff changeset
    44
    ^ thisContext sender sender
1671
b98bd06d8a91 #BUGFIX by stefan
Stefan Vogel <sv@exept.de>
parents: 1447
diff changeset
    45
b98bd06d8a91 #BUGFIX by stefan
Stefan Vogel <sv@exept.de>
parents: 1447
diff changeset
    46
    "Modified: / 02-08-2017 / 14:04:19 / stefan"
252
1005bdeab488 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 251
diff changeset
    47
!
1005bdeab488 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 251
diff changeset
    48
1005bdeab488 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 251
diff changeset
    49
call11_1
1005bdeab488 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 251
diff changeset
    50
    |local|
1005bdeab488 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 251
diff changeset
    51
1005bdeab488 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 251
diff changeset
    52
    self call11_2:[:x | local := x].
1005bdeab488 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 251
diff changeset
    53
    ^ local value.
1005bdeab488 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 251
diff changeset
    54
!
1005bdeab488 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 251
diff changeset
    55
1005bdeab488 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 251
diff changeset
    56
call11_2:aBlock
1005bdeab488 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 251
diff changeset
    57
    ^ self call11_3:aBlock
1005bdeab488 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 251
diff changeset
    58
!
1005bdeab488 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 251
diff changeset
    59
1005bdeab488 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 251
diff changeset
    60
call11_3:aBlock
1005bdeab488 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 251
diff changeset
    61
    aBlock value:[thisContext].
1005bdeab488 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 251
diff changeset
    62
    ^ thisContext sender sender
250
619351b79902 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 249
diff changeset
    63
!
619351b79902 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 249
diff changeset
    64
251
7bbc4aa977d5 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 250
diff changeset
    65
call9_1
7bbc4aa977d5 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 250
diff changeset
    66
    ^ self call9_2
7bbc4aa977d5 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 250
diff changeset
    67
!
250
619351b79902 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 249
diff changeset
    68
251
7bbc4aa977d5 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 250
diff changeset
    69
call9_2
7bbc4aa977d5 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 250
diff changeset
    70
    ^ self call9_3
7bbc4aa977d5 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 250
diff changeset
    71
!
7bbc4aa977d5 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 250
diff changeset
    72
7bbc4aa977d5 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 250
diff changeset
    73
call9_3
250
619351b79902 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 249
diff changeset
    74
    ttt := thisContext.
619351b79902 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 249
diff changeset
    75
    ^ ttt sender sender
619351b79902 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 249
diff changeset
    76
!
619351b79902 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 249
diff changeset
    77
654
Claus Gittinger <cg@exept.de>
parents: 252
diff changeset
    78
callRecursive: level withArg:argument thenDo:aBlock
Claus Gittinger <cg@exept.de>
parents: 252
diff changeset
    79
    level == 0 ifTrue:[
1447
2351db93aa5b package changes
Claus Gittinger <cg@exept.de>
parents: 1157
diff changeset
    80
	aBlock value:thisContext.
2351db93aa5b package changes
Claus Gittinger <cg@exept.de>
parents: 1157
diff changeset
    81
	^ self.
654
Claus Gittinger <cg@exept.de>
parents: 252
diff changeset
    82
    ].
Claus Gittinger <cg@exept.de>
parents: 252
diff changeset
    83
    self callRecursive:level-1 withArg:argument thenDo:aBlock
Claus Gittinger <cg@exept.de>
parents: 252
diff changeset
    84
Claus Gittinger <cg@exept.de>
parents: 252
diff changeset
    85
    "Created: / 07-03-2012 / 13:04:48 / cg"
Claus Gittinger <cg@exept.de>
parents: 252
diff changeset
    86
!
Claus Gittinger <cg@exept.de>
parents: 252
diff changeset
    87
147
ad483efa672a checkin from browser
Claus Gittinger <cg@exept.de>
parents: 102
diff changeset
    88
downToNextSegmentThenDo:aBlock
249
883b35584076 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 240
diff changeset
    89
    self
883b35584076 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 240
diff changeset
    90
	downToSegment:(Processor activeProcess numberOfStackSegments + 1)
883b35584076 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 240
diff changeset
    91
	thenDo:aBlock
147
ad483efa672a checkin from browser
Claus Gittinger <cg@exept.de>
parents: 102
diff changeset
    92
ad483efa672a checkin from browser
Claus Gittinger <cg@exept.de>
parents: 102
diff changeset
    93
    "
ad483efa672a checkin from browser
Claus Gittinger <cg@exept.de>
parents: 102
diff changeset
    94
     self new testUnwind1
ad483efa672a checkin from browser
Claus Gittinger <cg@exept.de>
parents: 102
diff changeset
    95
    "
ad483efa672a checkin from browser
Claus Gittinger <cg@exept.de>
parents: 102
diff changeset
    96
!
ad483efa672a checkin from browser
Claus Gittinger <cg@exept.de>
parents: 102
diff changeset
    97
ad483efa672a checkin from browser
Claus Gittinger <cg@exept.de>
parents: 102
diff changeset
    98
downToNextSegmentThenUnwindAndDo:aBlock
249
883b35584076 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 240
diff changeset
    99
    self
883b35584076 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 240
diff changeset
   100
	downToSegment:(Processor activeProcess numberOfStackSegments + 1)
883b35584076 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 240
diff changeset
   101
	thenUnwindAndDo:aBlock
147
ad483efa672a checkin from browser
Claus Gittinger <cg@exept.de>
parents: 102
diff changeset
   102
ad483efa672a checkin from browser
Claus Gittinger <cg@exept.de>
parents: 102
diff changeset
   103
    "
ad483efa672a checkin from browser
Claus Gittinger <cg@exept.de>
parents: 102
diff changeset
   104
     self new testUnwind2
ad483efa672a checkin from browser
Claus Gittinger <cg@exept.de>
parents: 102
diff changeset
   105
    "
ad483efa672a checkin from browser
Claus Gittinger <cg@exept.de>
parents: 102
diff changeset
   106
!
ad483efa672a checkin from browser
Claus Gittinger <cg@exept.de>
parents: 102
diff changeset
   107
ad483efa672a checkin from browser
Claus Gittinger <cg@exept.de>
parents: 102
diff changeset
   108
downToSegment:nr thenDo:aBlock
ad483efa672a checkin from browser
Claus Gittinger <cg@exept.de>
parents: 102
diff changeset
   109
    Processor activeProcess numberOfStackSegments >= nr ifTrue:[
249
883b35584076 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 240
diff changeset
   110
	^  aBlock value
147
ad483efa672a checkin from browser
Claus Gittinger <cg@exept.de>
parents: 102
diff changeset
   111
    ].
249
883b35584076 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 240
diff changeset
   112
    self
883b35584076 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 240
diff changeset
   113
	downToSegment:(Processor activeProcess numberOfStackSegments + 1)
883b35584076 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 240
diff changeset
   114
	thenDo:aBlock
147
ad483efa672a checkin from browser
Claus Gittinger <cg@exept.de>
parents: 102
diff changeset
   115
ad483efa672a checkin from browser
Claus Gittinger <cg@exept.de>
parents: 102
diff changeset
   116
    "
ad483efa672a checkin from browser
Claus Gittinger <cg@exept.de>
parents: 102
diff changeset
   117
     self new testUnwind1
ad483efa672a checkin from browser
Claus Gittinger <cg@exept.de>
parents: 102
diff changeset
   118
    "
ad483efa672a checkin from browser
Claus Gittinger <cg@exept.de>
parents: 102
diff changeset
   119
!
ad483efa672a checkin from browser
Claus Gittinger <cg@exept.de>
parents: 102
diff changeset
   120
ad483efa672a checkin from browser
Claus Gittinger <cg@exept.de>
parents: 102
diff changeset
   121
downToSegment:nr thenUnwindAndDo:aBlock
ad483efa672a checkin from browser
Claus Gittinger <cg@exept.de>
parents: 102
diff changeset
   122
    Processor activeProcess numberOfStackSegments >= nr ifTrue:[
249
883b35584076 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 240
diff changeset
   123
	aBlock home unwindThenDo: aBlock
147
ad483efa672a checkin from browser
Claus Gittinger <cg@exept.de>
parents: 102
diff changeset
   124
    ].
249
883b35584076 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 240
diff changeset
   125
    self
883b35584076 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 240
diff changeset
   126
	downToSegment:(Processor activeProcess numberOfStackSegments + 1)
883b35584076 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 240
diff changeset
   127
	thenUnwindAndDo:aBlock
147
ad483efa672a checkin from browser
Claus Gittinger <cg@exept.de>
parents: 102
diff changeset
   128
ad483efa672a checkin from browser
Claus Gittinger <cg@exept.de>
parents: 102
diff changeset
   129
    "
ad483efa672a checkin from browser
Claus Gittinger <cg@exept.de>
parents: 102
diff changeset
   130
     self new testUnwind2
ad483efa672a checkin from browser
Claus Gittinger <cg@exept.de>
parents: 102
diff changeset
   131
    "
ad483efa672a checkin from browser
Claus Gittinger <cg@exept.de>
parents: 102
diff changeset
   132
!
ad483efa672a checkin from browser
Claus Gittinger <cg@exept.de>
parents: 102
diff changeset
   133
249
883b35584076 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 240
diff changeset
   134
exceptionObjectIs:ex
883b35584076 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 240
diff changeset
   135
    exceptionObject := ex
883b35584076 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 240
diff changeset
   136
!
883b35584076 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 240
diff changeset
   137
239
e5829ccc5a7a *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 180
diff changeset
   138
getAssocWithContext
e5829ccc5a7a *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 180
diff changeset
   139
    ^ self getSendersContext -> #foo
e5829ccc5a7a *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 180
diff changeset
   140
!
e5829ccc5a7a *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 180
diff changeset
   141
e5829ccc5a7a *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 180
diff changeset
   142
getSendersContext
e5829ccc5a7a *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 180
diff changeset
   143
    ^ thisContext sender
e5829ccc5a7a *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 180
diff changeset
   144
!
e5829ccc5a7a *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 180
diff changeset
   145
249
883b35584076 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 240
diff changeset
   146
raiseNotification
883b35584076 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 240
diff changeset
   147
    NoHandlerError handle:[:ex |
1671
b98bd06d8a91 #BUGFIX by stefan
Stefan Vogel <sv@exept.de>
parents: 1447
diff changeset
   148
        ex return
249
883b35584076 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 240
diff changeset
   149
    ] do:[
1671
b98bd06d8a91 #BUGFIX by stefan
Stefan Vogel <sv@exept.de>
parents: 1447
diff changeset
   150
        |t|
249
883b35584076 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 240
diff changeset
   151
883b35584076 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 240
diff changeset
   152
%{
883b35584076 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 240
diff changeset
   153
  extern void *__contextToDebug__;
883b35584076 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 240
diff changeset
   154
  __contextToDebug__ = (void *)__thisContext;
883b35584076 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 240
diff changeset
   155
%}.
1671
b98bd06d8a91 #BUGFIX by stefan
Stefan Vogel <sv@exept.de>
parents: 1447
diff changeset
   156
        t := MyNotification raiseRequestFrom:self.
249
883b35584076 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 240
diff changeset
   157
%{
883b35584076 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 240
diff changeset
   158
  extern void *__contextToDebug__;
883b35584076 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 240
diff changeset
   159
  __contextToDebug__ = (void *)__thisContext;
883b35584076 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 240
diff changeset
   160
%}.
1671
b98bd06d8a91 #BUGFIX by stefan
Stefan Vogel <sv@exept.de>
parents: 1447
diff changeset
   161
        ^ t
249
883b35584076 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 240
diff changeset
   162
    ].
883b35584076 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 240
diff changeset
   163
    ^ nil.
883b35584076 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 240
diff changeset
   164
!
883b35584076 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 240
diff changeset
   165
239
e5829ccc5a7a *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 180
diff changeset
   166
raiseWithContext
e5829ccc5a7a *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 180
diff changeset
   167
    AbortOperationRequest raiseWith:self getSendersContext
240
159685fc785c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 239
diff changeset
   168
!
159685fc785c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 239
diff changeset
   169
159685fc785c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 239
diff changeset
   170
selfReferringContext
159685fc785c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 239
diff changeset
   171
    |ref|
159685fc785c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 239
diff changeset
   172
159685fc785c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 239
diff changeset
   173
    ref := thisContext.
159685fc785c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 239
diff changeset
   174
    ^ thisContext
159685fc785c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 239
diff changeset
   175
!
159685fc785c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 239
diff changeset
   176
159685fc785c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 239
diff changeset
   177
senderContext
159685fc785c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 239
diff changeset
   178
    ^ thisContext sender
159685fc785c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 239
diff changeset
   179
!
159685fc785c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 239
diff changeset
   180
159685fc785c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 239
diff changeset
   181
senderReferringContext1
159685fc785c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 239
diff changeset
   182
    ^ self senderReferringContext:thisContext
159685fc785c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 239
diff changeset
   183
!
159685fc785c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 239
diff changeset
   184
159685fc785c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 239
diff changeset
   185
senderReferringContext2
159685fc785c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 239
diff changeset
   186
    ^ self senderContext
159685fc785c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 239
diff changeset
   187
!
159685fc785c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 239
diff changeset
   188
159685fc785c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 239
diff changeset
   189
senderReferringContext:aContext
159685fc785c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 239
diff changeset
   190
    ^ aContext
239
e5829ccc5a7a *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 180
diff changeset
   191
! !
e5829ccc5a7a *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 180
diff changeset
   192
e5829ccc5a7a *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 180
diff changeset
   193
!ContextTest2 methodsFor:'tests'!
e5829ccc5a7a *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 180
diff changeset
   194
e5829ccc5a7a *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 180
diff changeset
   195
testContextRef1
e5829ccc5a7a *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 180
diff changeset
   196
    |assoc|
e5829ccc5a7a *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 180
diff changeset
   197
e5829ccc5a7a *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 180
diff changeset
   198
    assoc := self getAssocWithContext.
e5829ccc5a7a *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 180
diff changeset
   199
    ObjectMemory garbageCollect.
e5829ccc5a7a *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 180
diff changeset
   200
e5829ccc5a7a *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 180
diff changeset
   201
    "
e5829ccc5a7a *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 180
diff changeset
   202
     self new testContextRef1
e5829ccc5a7a *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 180
diff changeset
   203
    "
e5829ccc5a7a *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 180
diff changeset
   204
!
e5829ccc5a7a *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 180
diff changeset
   205
251
7bbc4aa977d5 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 250
diff changeset
   206
testContextRef10
7bbc4aa977d5 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 250
diff changeset
   207
    |val|
7bbc4aa977d5 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 250
diff changeset
   208
7bbc4aa977d5 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 250
diff changeset
   209
    val := self call10_1.
7bbc4aa977d5 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 250
diff changeset
   210
    ObjectMemory dumpObject:val.
252
1005bdeab488 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 251
diff changeset
   211
    ObjectMemory dumpObject:(val varAt:1).
1005bdeab488 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 251
diff changeset
   212
    ObjectMemory dumpObject:((val varAt:1) varAt:1).
251
7bbc4aa977d5 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 250
diff changeset
   213
7bbc4aa977d5 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 250
diff changeset
   214
    "
252
1005bdeab488 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 251
diff changeset
   215
     self new testContextRef10
1005bdeab488 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 251
diff changeset
   216
    "
1005bdeab488 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 251
diff changeset
   217
!
1005bdeab488 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 251
diff changeset
   218
1005bdeab488 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 251
diff changeset
   219
testContextRef11
1005bdeab488 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 251
diff changeset
   220
    |val|
1005bdeab488 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 251
diff changeset
   221
1005bdeab488 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 251
diff changeset
   222
    val := self call10_1.
1005bdeab488 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 251
diff changeset
   223
    ObjectMemory dumpObject:val.
1005bdeab488 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 251
diff changeset
   224
1005bdeab488 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 251
diff changeset
   225
    "
1005bdeab488 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 251
diff changeset
   226
     self new testContextRef11
251
7bbc4aa977d5 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 250
diff changeset
   227
    "
7bbc4aa977d5 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 250
diff changeset
   228
!
7bbc4aa977d5 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 250
diff changeset
   229
239
e5829ccc5a7a *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 180
diff changeset
   230
testContextRef2
e5829ccc5a7a *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 180
diff changeset
   231
e5829ccc5a7a *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 180
diff changeset
   232
    self getAssocWithContext.
e5829ccc5a7a *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 180
diff changeset
   233
    ObjectMemory garbageCollect.
e5829ccc5a7a *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 180
diff changeset
   234
e5829ccc5a7a *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 180
diff changeset
   235
    "
e5829ccc5a7a *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 180
diff changeset
   236
     self new testContextRef2
e5829ccc5a7a *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 180
diff changeset
   237
    "
e5829ccc5a7a *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 180
diff changeset
   238
!
e5829ccc5a7a *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 180
diff changeset
   239
e5829ccc5a7a *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 180
diff changeset
   240
testContextRef3
e5829ccc5a7a *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 180
diff changeset
   241
    AbortOperationRequest handle:[:ex |
e5829ccc5a7a *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 180
diff changeset
   242
    ] do:[
249
883b35584076 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 240
diff changeset
   243
	self raiseWithContext.
239
e5829ccc5a7a *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 180
diff changeset
   244
    ].
e5829ccc5a7a *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 180
diff changeset
   245
    ObjectMemory garbageCollect.
e5829ccc5a7a *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 180
diff changeset
   246
e5829ccc5a7a *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 180
diff changeset
   247
    "
e5829ccc5a7a *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 180
diff changeset
   248
     self new testContextRef3
e5829ccc5a7a *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 180
diff changeset
   249
    "
e5829ccc5a7a *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 180
diff changeset
   250
!
e5829ccc5a7a *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 180
diff changeset
   251
e5829ccc5a7a *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 180
diff changeset
   252
testContextRef4
e5829ccc5a7a *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 180
diff changeset
   253
    |con|
e5829ccc5a7a *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 180
diff changeset
   254
e5829ccc5a7a *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 180
diff changeset
   255
    AbortOperationRequest handle:[:ex |
249
883b35584076 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 240
diff changeset
   256
	ObjectMemory garbageCollect.
883b35584076 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 240
diff changeset
   257
	con := ex parameter.
883b35584076 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 240
diff changeset
   258
	ObjectMemory garbageCollect.
239
e5829ccc5a7a *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 180
diff changeset
   259
    ] do:[
249
883b35584076 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 240
diff changeset
   260
	self raiseWithContext.
239
e5829ccc5a7a *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 180
diff changeset
   261
    ].
e5829ccc5a7a *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 180
diff changeset
   262
    ObjectMemory garbageCollect.
e5829ccc5a7a *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 180
diff changeset
   263
e5829ccc5a7a *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 180
diff changeset
   264
    "
e5829ccc5a7a *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 180
diff changeset
   265
     self new testContextRef4
e5829ccc5a7a *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 180
diff changeset
   266
    "
e5829ccc5a7a *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 180
diff changeset
   267
!
e5829ccc5a7a *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 180
diff changeset
   268
240
159685fc785c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 239
diff changeset
   269
testContextRef5
159685fc785c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 239
diff changeset
   270
    self selfReferringContext.
159685fc785c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 239
diff changeset
   271
    ObjectMemory garbageCollect.
159685fc785c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 239
diff changeset
   272
159685fc785c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 239
diff changeset
   273
    "
159685fc785c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 239
diff changeset
   274
     self new testContextRef5
159685fc785c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 239
diff changeset
   275
    "
159685fc785c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 239
diff changeset
   276
!
159685fc785c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 239
diff changeset
   277
159685fc785c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 239
diff changeset
   278
testContextRef6
159685fc785c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 239
diff changeset
   279
    self senderReferringContext1.
159685fc785c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 239
diff changeset
   280
    ObjectMemory garbageCollect.
159685fc785c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 239
diff changeset
   281
159685fc785c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 239
diff changeset
   282
    "
159685fc785c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 239
diff changeset
   283
     self new testContextRef6
159685fc785c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 239
diff changeset
   284
    "
159685fc785c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 239
diff changeset
   285
!
159685fc785c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 239
diff changeset
   286
159685fc785c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 239
diff changeset
   287
testContextRef7
159685fc785c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 239
diff changeset
   288
    self senderReferringContext2.
159685fc785c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 239
diff changeset
   289
    ObjectMemory garbageCollect.
159685fc785c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 239
diff changeset
   290
159685fc785c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 239
diff changeset
   291
    "
159685fc785c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 239
diff changeset
   292
     self new testContextRef7
159685fc785c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 239
diff changeset
   293
    "
159685fc785c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 239
diff changeset
   294
!
159685fc785c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 239
diff changeset
   295
249
883b35584076 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 240
diff changeset
   296
testContextRef8
883b35584076 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 240
diff changeset
   297
    100000 timesRepeat:[
1447
2351db93aa5b package changes
Claus Gittinger <cg@exept.de>
parents: 1157
diff changeset
   298
	self raiseNotification.
2351db93aa5b package changes
Claus Gittinger <cg@exept.de>
parents: 1157
diff changeset
   299
	self assert:(ObjectMemory spaceOf:exceptionObject suspendedContext) < 4.
249
883b35584076 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 240
diff changeset
   300
    ].
883b35584076 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 240
diff changeset
   301
883b35584076 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 240
diff changeset
   302
    "
883b35584076 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 240
diff changeset
   303
     self new testContextRef8
883b35584076 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 240
diff changeset
   304
    "
883b35584076 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 240
diff changeset
   305
!
883b35584076 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 240
diff changeset
   306
250
619351b79902 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 249
diff changeset
   307
testContextRef9
619351b79902 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 249
diff changeset
   308
    |val|
619351b79902 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 249
diff changeset
   309
251
7bbc4aa977d5 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 250
diff changeset
   310
    val := self call9_1.
7bbc4aa977d5 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 250
diff changeset
   311
    ObjectMemory dumpObject:val.
7bbc4aa977d5 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 250
diff changeset
   312
    ObjectMemory dumpObject:ttt.
250
619351b79902 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 249
diff changeset
   313
619351b79902 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 249
diff changeset
   314
    "
619351b79902 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 249
diff changeset
   315
     self new testContextRef9
619351b79902 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 249
diff changeset
   316
    "
619351b79902 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 249
diff changeset
   317
!
619351b79902 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 249
diff changeset
   318
654
Claus Gittinger <cg@exept.de>
parents: 252
diff changeset
   319
testDisplayString1
Claus Gittinger <cg@exept.de>
parents: 252
diff changeset
   320
    "the generated displayString must be a string (even if one of the args or receiver
Claus Gittinger <cg@exept.de>
parents: 252
diff changeset
   321
     is a Twobytestring"
Claus Gittinger <cg@exept.de>
parents: 252
diff changeset
   322
Claus Gittinger <cg@exept.de>
parents: 252
diff changeset
   323
    Transcript showCR:'1'.
1447
2351db93aa5b package changes
Claus Gittinger <cg@exept.de>
parents: 1157
diff changeset
   324
    self
1671
b98bd06d8a91 #BUGFIX by stefan
Stefan Vogel <sv@exept.de>
parents: 1447
diff changeset
   325
        callRecursive:3
b98bd06d8a91 #BUGFIX by stefan
Stefan Vogel <sv@exept.de>
parents: 1447
diff changeset
   326
        withArg:((Unicode16String new:2)
b98bd06d8a91 #BUGFIX by stefan
Stefan Vogel <sv@exept.de>
parents: 1447
diff changeset
   327
                                at:1 put:(Character value:16r151);
b98bd06d8a91 #BUGFIX by stefan
Stefan Vogel <sv@exept.de>
parents: 1447
diff changeset
   328
                                at:2 put:(Character value:16rFF00);
b98bd06d8a91 #BUGFIX by stefan
Stefan Vogel <sv@exept.de>
parents: 1447
diff changeset
   329
                                yourself)
b98bd06d8a91 #BUGFIX by stefan
Stefan Vogel <sv@exept.de>
parents: 1447
diff changeset
   330
        thenDo:[:context |
b98bd06d8a91 #BUGFIX by stefan
Stefan Vogel <sv@exept.de>
parents: 1447
diff changeset
   331
                    self assert:(context displayString bitsPerCharacter == 8).
b98bd06d8a91 #BUGFIX by stefan
Stefan Vogel <sv@exept.de>
parents: 1447
diff changeset
   332
"/                    self assert:(context fullPrintString bitsPerCharacter == 8).
b98bd06d8a91 #BUGFIX by stefan
Stefan Vogel <sv@exept.de>
parents: 1447
diff changeset
   333
               ].
654
Claus Gittinger <cg@exept.de>
parents: 252
diff changeset
   334
Claus Gittinger <cg@exept.de>
parents: 252
diff changeset
   335
    "
Claus Gittinger <cg@exept.de>
parents: 252
diff changeset
   336
     self new testDisplayString1
Claus Gittinger <cg@exept.de>
parents: 252
diff changeset
   337
    "
Claus Gittinger <cg@exept.de>
parents: 252
diff changeset
   338
Claus Gittinger <cg@exept.de>
parents: 252
diff changeset
   339
    "Created: / 07-03-2012 / 13:03:32 / cg"
1671
b98bd06d8a91 #BUGFIX by stefan
Stefan Vogel <sv@exept.de>
parents: 1447
diff changeset
   340
    "Modified: / 02-08-2017 / 14:11:41 / stefan"
654
Claus Gittinger <cg@exept.de>
parents: 252
diff changeset
   341
!
Claus Gittinger <cg@exept.de>
parents: 252
diff changeset
   342
100
34d87daf0f75 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   343
testProcess1
101
7ea8b99a38d8 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 100
diff changeset
   344
    |x set lockSet p arg|
7ea8b99a38d8 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 100
diff changeset
   345
7ea8b99a38d8 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 100
diff changeset
   346
    lockSet := Semaphore forMutualExclusion.
7ea8b99a38d8 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 100
diff changeset
   347
    set := Set new.
7ea8b99a38d8 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 100
diff changeset
   348
7ea8b99a38d8 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 100
diff changeset
   349
    x := 1 @ 1.
7ea8b99a38d8 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 100
diff changeset
   350
7ea8b99a38d8 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 100
diff changeset
   351
    arg := x.
7ea8b99a38d8 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 100
diff changeset
   352
7ea8b99a38d8 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 100
diff changeset
   353
    p := [
1447
2351db93aa5b package changes
Claus Gittinger <cg@exept.de>
parents: 1157
diff changeset
   354
	[
2351db93aa5b package changes
Claus Gittinger <cg@exept.de>
parents: 1157
diff changeset
   355
	    lockSet critical:[set add:arg].
2351db93aa5b package changes
Claus Gittinger <cg@exept.de>
parents: 1157
diff changeset
   356
	    arg perform:#x .
2351db93aa5b package changes
Claus Gittinger <cg@exept.de>
parents: 1157
diff changeset
   357
	] ensure:[
2351db93aa5b package changes
Claus Gittinger <cg@exept.de>
parents: 1157
diff changeset
   358
	    lockSet critical:[set remove:arg].
2351db93aa5b package changes
Claus Gittinger <cg@exept.de>
parents: 1157
diff changeset
   359
	].
101
7ea8b99a38d8 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 100
diff changeset
   360
    ] fork.
7ea8b99a38d8 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 100
diff changeset
   361
7ea8b99a38d8 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 100
diff changeset
   362
    "
7ea8b99a38d8 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 100
diff changeset
   363
     self new testProcess1
7ea8b99a38d8 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 100
diff changeset
   364
    "
7ea8b99a38d8 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 100
diff changeset
   365
!
7ea8b99a38d8 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 100
diff changeset
   366
7ea8b99a38d8 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 100
diff changeset
   367
testProcess2
100
34d87daf0f75 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   368
    |x set lockSet p|
34d87daf0f75 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   369
34d87daf0f75 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   370
    lockSet := Semaphore forMutualExclusion.
34d87daf0f75 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   371
    set := Set new.
34d87daf0f75 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   372
34d87daf0f75 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   373
    x := 1 @ 1.
34d87daf0f75 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   374
34d87daf0f75 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   375
    p := [:arg |
1447
2351db93aa5b package changes
Claus Gittinger <cg@exept.de>
parents: 1157
diff changeset
   376
	[
2351db93aa5b package changes
Claus Gittinger <cg@exept.de>
parents: 1157
diff changeset
   377
	    lockSet critical:[set add:arg].
2351db93aa5b package changes
Claus Gittinger <cg@exept.de>
parents: 1157
diff changeset
   378
	    arg perform:#x.
2351db93aa5b package changes
Claus Gittinger <cg@exept.de>
parents: 1157
diff changeset
   379
	] ensure:[
2351db93aa5b package changes
Claus Gittinger <cg@exept.de>
parents: 1157
diff changeset
   380
	    lockSet critical:[set remove:arg].
2351db93aa5b package changes
Claus Gittinger <cg@exept.de>
parents: 1157
diff changeset
   381
	].
100
34d87daf0f75 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   382
    ] forkWith:(Array with:x).
34d87daf0f75 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   383
34d87daf0f75 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   384
    "
101
7ea8b99a38d8 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 100
diff changeset
   385
     self new testProcess2
100
34d87daf0f75 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   386
    "
102
f9c4503da06d checkin from browser
Claus Gittinger <cg@exept.de>
parents: 101
diff changeset
   387
!
f9c4503da06d checkin from browser
Claus Gittinger <cg@exept.de>
parents: 101
diff changeset
   388
f9c4503da06d checkin from browser
Claus Gittinger <cg@exept.de>
parents: 101
diff changeset
   389
testProcess3
f9c4503da06d checkin from browser
Claus Gittinger <cg@exept.de>
parents: 101
diff changeset
   390
    |x set lockSet p|
f9c4503da06d checkin from browser
Claus Gittinger <cg@exept.de>
parents: 101
diff changeset
   391
f9c4503da06d checkin from browser
Claus Gittinger <cg@exept.de>
parents: 101
diff changeset
   392
    lockSet := Semaphore forMutualExclusion.
f9c4503da06d checkin from browser
Claus Gittinger <cg@exept.de>
parents: 101
diff changeset
   393
    set := Set new.
f9c4503da06d checkin from browser
Claus Gittinger <cg@exept.de>
parents: 101
diff changeset
   394
f9c4503da06d checkin from browser
Claus Gittinger <cg@exept.de>
parents: 101
diff changeset
   395
    x := 1 @ 1.
f9c4503da06d checkin from browser
Claus Gittinger <cg@exept.de>
parents: 101
diff changeset
   396
f9c4503da06d checkin from browser
Claus Gittinger <cg@exept.de>
parents: 101
diff changeset
   397
    p := [:arg |
1447
2351db93aa5b package changes
Claus Gittinger <cg@exept.de>
parents: 1157
diff changeset
   398
	[
2351db93aa5b package changes
Claus Gittinger <cg@exept.de>
parents: 1157
diff changeset
   399
	    lockSet critical:[set add:arg].
2351db93aa5b package changes
Claus Gittinger <cg@exept.de>
parents: 1157
diff changeset
   400
	    arg perform:#x: with:1234.
2351db93aa5b package changes
Claus Gittinger <cg@exept.de>
parents: 1157
diff changeset
   401
	    lockSet critical:[set rehash].
2351db93aa5b package changes
Claus Gittinger <cg@exept.de>
parents: 1157
diff changeset
   402
	] ensure:[
2351db93aa5b package changes
Claus Gittinger <cg@exept.de>
parents: 1157
diff changeset
   403
	    lockSet critical:[set remove:arg].
2351db93aa5b package changes
Claus Gittinger <cg@exept.de>
parents: 1157
diff changeset
   404
	].
102
f9c4503da06d checkin from browser
Claus Gittinger <cg@exept.de>
parents: 101
diff changeset
   405
    ] forkWith:(Array with:x).
f9c4503da06d checkin from browser
Claus Gittinger <cg@exept.de>
parents: 101
diff changeset
   406
f9c4503da06d checkin from browser
Claus Gittinger <cg@exept.de>
parents: 101
diff changeset
   407
    "
f9c4503da06d checkin from browser
Claus Gittinger <cg@exept.de>
parents: 101
diff changeset
   408
     self new testProcess3
f9c4503da06d checkin from browser
Claus Gittinger <cg@exept.de>
parents: 101
diff changeset
   409
    "
147
ad483efa672a checkin from browser
Claus Gittinger <cg@exept.de>
parents: 102
diff changeset
   410
!
ad483efa672a checkin from browser
Claus Gittinger <cg@exept.de>
parents: 102
diff changeset
   411
ad483efa672a checkin from browser
Claus Gittinger <cg@exept.de>
parents: 102
diff changeset
   412
testUnwind1
ad483efa672a checkin from browser
Claus Gittinger <cg@exept.de>
parents: 102
diff changeset
   413
    Transcript showCR:'1'.
ad483efa672a checkin from browser
Claus Gittinger <cg@exept.de>
parents: 102
diff changeset
   414
    self downToNextSegmentThenDo:[Transcript showCR:'2'. ^  self ].
ad483efa672a checkin from browser
Claus Gittinger <cg@exept.de>
parents: 102
diff changeset
   415
    Transcript showCR:'3'.
ad483efa672a checkin from browser
Claus Gittinger <cg@exept.de>
parents: 102
diff changeset
   416
ad483efa672a checkin from browser
Claus Gittinger <cg@exept.de>
parents: 102
diff changeset
   417
    "
ad483efa672a checkin from browser
Claus Gittinger <cg@exept.de>
parents: 102
diff changeset
   418
     self new testUnwind1
ad483efa672a checkin from browser
Claus Gittinger <cg@exept.de>
parents: 102
diff changeset
   419
    "
ad483efa672a checkin from browser
Claus Gittinger <cg@exept.de>
parents: 102
diff changeset
   420
!
ad483efa672a checkin from browser
Claus Gittinger <cg@exept.de>
parents: 102
diff changeset
   421
ad483efa672a checkin from browser
Claus Gittinger <cg@exept.de>
parents: 102
diff changeset
   422
testUnwind2
ad483efa672a checkin from browser
Claus Gittinger <cg@exept.de>
parents: 102
diff changeset
   423
    Transcript showCR:'1'.
ad483efa672a checkin from browser
Claus Gittinger <cg@exept.de>
parents: 102
diff changeset
   424
    self downToNextSegmentThenUnwindAndDo:[Transcript showCR:'2'. ^  self ].
ad483efa672a checkin from browser
Claus Gittinger <cg@exept.de>
parents: 102
diff changeset
   425
    Transcript showCR:'3'.
ad483efa672a checkin from browser
Claus Gittinger <cg@exept.de>
parents: 102
diff changeset
   426
ad483efa672a checkin from browser
Claus Gittinger <cg@exept.de>
parents: 102
diff changeset
   427
    "
ad483efa672a checkin from browser
Claus Gittinger <cg@exept.de>
parents: 102
diff changeset
   428
     self new testUnwind2
ad483efa672a checkin from browser
Claus Gittinger <cg@exept.de>
parents: 102
diff changeset
   429
    "
ad483efa672a checkin from browser
Claus Gittinger <cg@exept.de>
parents: 102
diff changeset
   430
!
ad483efa672a checkin from browser
Claus Gittinger <cg@exept.de>
parents: 102
diff changeset
   431
ad483efa672a checkin from browser
Claus Gittinger <cg@exept.de>
parents: 102
diff changeset
   432
testUnwind3
ad483efa672a checkin from browser
Claus Gittinger <cg@exept.de>
parents: 102
diff changeset
   433
    <context: #return>
ad483efa672a checkin from browser
Claus Gittinger <cg@exept.de>
parents: 102
diff changeset
   434
ad483efa672a checkin from browser
Claus Gittinger <cg@exept.de>
parents: 102
diff changeset
   435
    |foo|
ad483efa672a checkin from browser
Claus Gittinger <cg@exept.de>
parents: 102
diff changeset
   436
ad483efa672a checkin from browser
Claus Gittinger <cg@exept.de>
parents: 102
diff changeset
   437
    Transcript showCR:'1'.
ad483efa672a checkin from browser
Claus Gittinger <cg@exept.de>
parents: 102
diff changeset
   438
    self downToNextSegmentThenUnwindAndDo:[Transcript showCR:'2'. foo := #foo ].
ad483efa672a checkin from browser
Claus Gittinger <cg@exept.de>
parents: 102
diff changeset
   439
    Transcript showCR:'3'.
ad483efa672a checkin from browser
Claus Gittinger <cg@exept.de>
parents: 102
diff changeset
   440
ad483efa672a checkin from browser
Claus Gittinger <cg@exept.de>
parents: 102
diff changeset
   441
    "
ad483efa672a checkin from browser
Claus Gittinger <cg@exept.de>
parents: 102
diff changeset
   442
     self new testUnwind3
ad483efa672a checkin from browser
Claus Gittinger <cg@exept.de>
parents: 102
diff changeset
   443
    "
ad483efa672a checkin from browser
Claus Gittinger <cg@exept.de>
parents: 102
diff changeset
   444
!
ad483efa672a checkin from browser
Claus Gittinger <cg@exept.de>
parents: 102
diff changeset
   445
ad483efa672a checkin from browser
Claus Gittinger <cg@exept.de>
parents: 102
diff changeset
   446
testUnwind4
ad483efa672a checkin from browser
Claus Gittinger <cg@exept.de>
parents: 102
diff changeset
   447
    |foo|
ad483efa672a checkin from browser
Claus Gittinger <cg@exept.de>
parents: 102
diff changeset
   448
ad483efa672a checkin from browser
Claus Gittinger <cg@exept.de>
parents: 102
diff changeset
   449
    Transcript showCR:'1'.
ad483efa672a checkin from browser
Claus Gittinger <cg@exept.de>
parents: 102
diff changeset
   450
    self downToNextSegmentThenDo:[Transcript showCR:'2'. foo := #foo ].
ad483efa672a checkin from browser
Claus Gittinger <cg@exept.de>
parents: 102
diff changeset
   451
    Transcript showCR:'3'.
ad483efa672a checkin from browser
Claus Gittinger <cg@exept.de>
parents: 102
diff changeset
   452
ad483efa672a checkin from browser
Claus Gittinger <cg@exept.de>
parents: 102
diff changeset
   453
    "
ad483efa672a checkin from browser
Claus Gittinger <cg@exept.de>
parents: 102
diff changeset
   454
     self new testUnwind4
ad483efa672a checkin from browser
Claus Gittinger <cg@exept.de>
parents: 102
diff changeset
   455
    "
100
34d87daf0f75 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   456
! !
34d87daf0f75 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   457
249
883b35584076 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 240
diff changeset
   458
!ContextTest2::MyNotification class methodsFor:'raising'!
883b35584076 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 240
diff changeset
   459
883b35584076 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 240
diff changeset
   460
raiseRequestFrom:someone
883b35584076 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 240
diff changeset
   461
    "raise a signal proceedable.
883b35584076 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 240
diff changeset
   462
     The argument, something is passed both as parameter and originator."
883b35584076 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 240
diff changeset
   463
883b35584076 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 240
diff changeset
   464
    <context: #return>
883b35584076 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 240
diff changeset
   465
883b35584076 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 240
diff changeset
   466
    |ex|
883b35584076 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 240
diff changeset
   467
669
Stefan Vogel <sv@exept.de>
parents: 654
diff changeset
   468
    ex := self newException.
249
883b35584076 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 240
diff changeset
   469
someone exceptionObjectIs:ex.
883b35584076 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 240
diff changeset
   470
    ^ (ex
1447
2351db93aa5b package changes
Claus Gittinger <cg@exept.de>
parents: 1157
diff changeset
   471
	suspendedContext:thisContext sender
2351db93aa5b package changes
Claus Gittinger <cg@exept.de>
parents: 1157
diff changeset
   472
	parameter:someone originator:someone)
2351db93aa5b package changes
Claus Gittinger <cg@exept.de>
parents: 1157
diff changeset
   473
	    raiseRequest.
249
883b35584076 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 240
diff changeset
   474
! !
883b35584076 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 240
diff changeset
   475
100
34d87daf0f75 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   476
!ContextTest2 class methodsFor:'documentation'!
34d87daf0f75 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   477
34d87daf0f75 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   478
version
34d87daf0f75 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   479
    ^ '$Header$'
34d87daf0f75 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   480
! !
1157
459cbf85d7f0 category changes
Claus Gittinger <cg@exept.de>
parents: 669
diff changeset
   481