RegressionTests__BlockTest.st
author Claus Gittinger <cg@exept.de>
Wed, 03 Aug 2011 15:12:23 +0200
changeset 608 72ad19f340f0
parent 606 42c26f8c0ce6
child 609 378ef1ea8892
permissions -rw-r--r--
class definition added: #tearDown changed: #backgroundBlockWithMethodReturningHelper
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
69
ffbf7492f5e5 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 60
diff changeset
     1
"{ Package: 'exept:regression' }"
58
98b8f998027c initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
     2
70
c677f96c4a0b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 69
diff changeset
     3
"{ NameSpace: RegressionTests }"
c677f96c4a0b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 69
diff changeset
     4
95
362e58ff28ba checkin from browser
Claus Gittinger <cg@exept.de>
parents: 70
diff changeset
     5
TestCase subclass:#BlockTest
608
72ad19f340f0 class definition
Claus Gittinger <cg@exept.de>
parents: 606
diff changeset
     6
	instanceVariableNames:'process'
58
98b8f998027c initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
     7
	classVariableNames:''
98b8f998027c initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
     8
	poolDictionaries:''
181
a56517005229 category change
Claus Gittinger <cg@exept.de>
parents: 97
diff changeset
     9
	category:'tests-Regression'
58
98b8f998027c initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    10
!
98b8f998027c initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    11
98b8f998027c initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    12
606
Claus Gittinger <cg@exept.de>
parents: 334
diff changeset
    13
!BlockTest methodsFor:'helpers - eqeq defect'!
334
a9657208d19b oops - bytecode version generated wrong jitted code
Claus Gittinger <cg@exept.de>
parents: 181
diff changeset
    14
a9657208d19b oops - bytecode version generated wrong jitted code
Claus Gittinger <cg@exept.de>
parents: 181
diff changeset
    15
g
a9657208d19b oops - bytecode version generated wrong jitted code
Claus Gittinger <cg@exept.de>
parents: 181
diff changeset
    16
    ^ True "/ the class here
a9657208d19b oops - bytecode version generated wrong jitted code
Claus Gittinger <cg@exept.de>
parents: 181
diff changeset
    17
a9657208d19b oops - bytecode version generated wrong jitted code
Claus Gittinger <cg@exept.de>
parents: 181
diff changeset
    18
    "Created: / 31-08-2007 / 17:40:37 / cg"
a9657208d19b oops - bytecode version generated wrong jitted code
Claus Gittinger <cg@exept.de>
parents: 181
diff changeset
    19
!
a9657208d19b oops - bytecode version generated wrong jitted code
Claus Gittinger <cg@exept.de>
parents: 181
diff changeset
    20
a9657208d19b oops - bytecode version generated wrong jitted code
Claus Gittinger <cg@exept.de>
parents: 181
diff changeset
    21
h
a9657208d19b oops - bytecode version generated wrong jitted code
Claus Gittinger <cg@exept.de>
parents: 181
diff changeset
    22
    ^ True "/ the class here
a9657208d19b oops - bytecode version generated wrong jitted code
Claus Gittinger <cg@exept.de>
parents: 181
diff changeset
    23
a9657208d19b oops - bytecode version generated wrong jitted code
Claus Gittinger <cg@exept.de>
parents: 181
diff changeset
    24
    "Created: / 31-08-2007 / 17:40:39 / cg"
606
Claus Gittinger <cg@exept.de>
parents: 334
diff changeset
    25
! !
Claus Gittinger <cg@exept.de>
parents: 334
diff changeset
    26
Claus Gittinger <cg@exept.de>
parents: 334
diff changeset
    27
!BlockTest methodsFor:'helpers - mkreal defect'!
Claus Gittinger <cg@exept.de>
parents: 334
diff changeset
    28
Claus Gittinger <cg@exept.de>
parents: 334
diff changeset
    29
backgroundBlockWithMethodReturningHelper
Claus Gittinger <cg@exept.de>
parents: 334
diff changeset
    30
    "/ had this bug in one situation:
Claus Gittinger <cg@exept.de>
parents: 334
diff changeset
    31
    "/  a block was forked away
Claus Gittinger <cg@exept.de>
parents: 334
diff changeset
    32
    "/  the method returns (its context is moved from the stack to the heap)
Claus Gittinger <cg@exept.de>
parents: 334
diff changeset
    33
    "/  the block sees wrong method-vars
Claus Gittinger <cg@exept.de>
parents: 334
diff changeset
    34
Claus Gittinger <cg@exept.de>
parents: 334
diff changeset
    35
    |var1 var2 var3 var4 backgroundAction sema|
Claus Gittinger <cg@exept.de>
parents: 334
diff changeset
    36
Claus Gittinger <cg@exept.de>
parents: 334
diff changeset
    37
    sema := Semaphore new.
Claus Gittinger <cg@exept.de>
parents: 334
diff changeset
    38
    
Claus Gittinger <cg@exept.de>
parents: 334
diff changeset
    39
    backgroundAction := 
Claus Gittinger <cg@exept.de>
parents: 334
diff changeset
    40
        [
Claus Gittinger <cg@exept.de>
parents: 334
diff changeset
    41
            var1 := self getMeVar:1 sema:sema.
Claus Gittinger <cg@exept.de>
parents: 334
diff changeset
    42
            self assert:(var1 = #[1]).
Claus Gittinger <cg@exept.de>
parents: 334
diff changeset
    43
            var2 := self getMeVar:2 sema:sema.
Claus Gittinger <cg@exept.de>
parents: 334
diff changeset
    44
            self assert:(var2 = #[2]).
Claus Gittinger <cg@exept.de>
parents: 334
diff changeset
    45
            var3 := self getMeVar:3 sema:sema.
Claus Gittinger <cg@exept.de>
parents: 334
diff changeset
    46
            self assert:(var3 = #[3]).
Claus Gittinger <cg@exept.de>
parents: 334
diff changeset
    47
            var4 := self getMeVar:4 sema:sema.
Claus Gittinger <cg@exept.de>
parents: 334
diff changeset
    48
            self assert:(var4 = #[4]).
Claus Gittinger <cg@exept.de>
parents: 334
diff changeset
    49
            sema signal.
Claus Gittinger <cg@exept.de>
parents: 334
diff changeset
    50
        ].
608
72ad19f340f0 class definition
Claus Gittinger <cg@exept.de>
parents: 606
diff changeset
    51
    process := backgroundAction newProcess.
72ad19f340f0 class definition
Claus Gittinger <cg@exept.de>
parents: 606
diff changeset
    52
    process priority:3.
72ad19f340f0 class definition
Claus Gittinger <cg@exept.de>
parents: 606
diff changeset
    53
    process resumt.
606
Claus Gittinger <cg@exept.de>
parents: 334
diff changeset
    54
    ^ sema
Claus Gittinger <cg@exept.de>
parents: 334
diff changeset
    55
Claus Gittinger <cg@exept.de>
parents: 334
diff changeset
    56
    "Created: / 02-08-2011 / 18:56:44 / cg"
334
a9657208d19b oops - bytecode version generated wrong jitted code
Claus Gittinger <cg@exept.de>
parents: 181
diff changeset
    57
!
a9657208d19b oops - bytecode version generated wrong jitted code
Claus Gittinger <cg@exept.de>
parents: 181
diff changeset
    58
606
Claus Gittinger <cg@exept.de>
parents: 334
diff changeset
    59
getMeVar:arg sema:sema
Claus Gittinger <cg@exept.de>
parents: 334
diff changeset
    60
    |t|
Claus Gittinger <cg@exept.de>
parents: 334
diff changeset
    61
Claus Gittinger <cg@exept.de>
parents: 334
diff changeset
    62
    t := ByteArray with:arg.
Claus Gittinger <cg@exept.de>
parents: 334
diff changeset
    63
    sema wait.
Claus Gittinger <cg@exept.de>
parents: 334
diff changeset
    64
%{
Claus Gittinger <cg@exept.de>
parents: 334
diff changeset
    65
    __markInterrupted(__context);
Claus Gittinger <cg@exept.de>
parents: 334
diff changeset
    66
%}.
Claus Gittinger <cg@exept.de>
parents: 334
diff changeset
    67
    ^ t
Claus Gittinger <cg@exept.de>
parents: 334
diff changeset
    68
Claus Gittinger <cg@exept.de>
parents: 334
diff changeset
    69
    "Created: / 02-08-2011 / 18:57:20 / cg"
Claus Gittinger <cg@exept.de>
parents: 334
diff changeset
    70
! !
Claus Gittinger <cg@exept.de>
parents: 334
diff changeset
    71
608
72ad19f340f0 class definition
Claus Gittinger <cg@exept.de>
parents: 606
diff changeset
    72
!BlockTest methodsFor:'running'!
72ad19f340f0 class definition
Claus Gittinger <cg@exept.de>
parents: 606
diff changeset
    73
72ad19f340f0 class definition
Claus Gittinger <cg@exept.de>
parents: 606
diff changeset
    74
tearDown
72ad19f340f0 class definition
Claus Gittinger <cg@exept.de>
parents: 606
diff changeset
    75
    |p|
72ad19f340f0 class definition
Claus Gittinger <cg@exept.de>
parents: 606
diff changeset
    76
72ad19f340f0 class definition
Claus Gittinger <cg@exept.de>
parents: 606
diff changeset
    77
    (p := process notil) ifTrue:[
72ad19f340f0 class definition
Claus Gittinger <cg@exept.de>
parents: 606
diff changeset
    78
        process := nil.
72ad19f340f0 class definition
Claus Gittinger <cg@exept.de>
parents: 606
diff changeset
    79
        p terminate. 
72ad19f340f0 class definition
Claus Gittinger <cg@exept.de>
parents: 606
diff changeset
    80
    ]
72ad19f340f0 class definition
Claus Gittinger <cg@exept.de>
parents: 606
diff changeset
    81
72ad19f340f0 class definition
Claus Gittinger <cg@exept.de>
parents: 606
diff changeset
    82
    "Created: / 03-08-2011 / 15:11:11 / cg"
72ad19f340f0 class definition
Claus Gittinger <cg@exept.de>
parents: 606
diff changeset
    83
! !
72ad19f340f0 class definition
Claus Gittinger <cg@exept.de>
parents: 606
diff changeset
    84
606
Claus Gittinger <cg@exept.de>
parents: 334
diff changeset
    85
!BlockTest methodsFor:'tests - eqeq defects'!
Claus Gittinger <cg@exept.de>
parents: 334
diff changeset
    86
334
a9657208d19b oops - bytecode version generated wrong jitted code
Claus Gittinger <cg@exept.de>
parents: 181
diff changeset
    87
testBlockWithEQEQ_1
a9657208d19b oops - bytecode version generated wrong jitted code
Claus Gittinger <cg@exept.de>
parents: 181
diff changeset
    88
    |b v|
a9657208d19b oops - bytecode version generated wrong jitted code
Claus Gittinger <cg@exept.de>
parents: 181
diff changeset
    89
a9657208d19b oops - bytecode version generated wrong jitted code
Claus Gittinger <cg@exept.de>
parents: 181
diff changeset
    90
    b := [ self g == self h ].
a9657208d19b oops - bytecode version generated wrong jitted code
Claus Gittinger <cg@exept.de>
parents: 181
diff changeset
    91
    v := b value.
a9657208d19b oops - bytecode version generated wrong jitted code
Claus Gittinger <cg@exept.de>
parents: 181
diff changeset
    92
    self assert:(v == true).
a9657208d19b oops - bytecode version generated wrong jitted code
Claus Gittinger <cg@exept.de>
parents: 181
diff changeset
    93
a9657208d19b oops - bytecode version generated wrong jitted code
Claus Gittinger <cg@exept.de>
parents: 181
diff changeset
    94
a9657208d19b oops - bytecode version generated wrong jitted code
Claus Gittinger <cg@exept.de>
parents: 181
diff changeset
    95
    "
a9657208d19b oops - bytecode version generated wrong jitted code
Claus Gittinger <cg@exept.de>
parents: 181
diff changeset
    96
     self new testBlockWithEQEQ_1
a9657208d19b oops - bytecode version generated wrong jitted code
Claus Gittinger <cg@exept.de>
parents: 181
diff changeset
    97
    "
a9657208d19b oops - bytecode version generated wrong jitted code
Claus Gittinger <cg@exept.de>
parents: 181
diff changeset
    98
a9657208d19b oops - bytecode version generated wrong jitted code
Claus Gittinger <cg@exept.de>
parents: 181
diff changeset
    99
    "Created: / 31-08-2007 / 17:41:59 / cg"
a9657208d19b oops - bytecode version generated wrong jitted code
Claus Gittinger <cg@exept.de>
parents: 181
diff changeset
   100
!
a9657208d19b oops - bytecode version generated wrong jitted code
Claus Gittinger <cg@exept.de>
parents: 181
diff changeset
   101
a9657208d19b oops - bytecode version generated wrong jitted code
Claus Gittinger <cg@exept.de>
parents: 181
diff changeset
   102
testBlockWithEQEQ_2
a9657208d19b oops - bytecode version generated wrong jitted code
Claus Gittinger <cg@exept.de>
parents: 181
diff changeset
   103
    |b v|
a9657208d19b oops - bytecode version generated wrong jitted code
Claus Gittinger <cg@exept.de>
parents: 181
diff changeset
   104
a9657208d19b oops - bytecode version generated wrong jitted code
Claus Gittinger <cg@exept.de>
parents: 181
diff changeset
   105
    b := [ 
a9657208d19b oops - bytecode version generated wrong jitted code
Claus Gittinger <cg@exept.de>
parents: 181
diff changeset
   106
%{
a9657208d19b oops - bytecode version generated wrong jitted code
Claus Gittinger <cg@exept.de>
parents: 181
diff changeset
   107
#ifdef FOO
a9657208d19b oops - bytecode version generated wrong jitted code
Claus Gittinger <cg@exept.de>
parents: 181
diff changeset
   108
%}.
a9657208d19b oops - bytecode version generated wrong jitted code
Claus Gittinger <cg@exept.de>
parents: 181
diff changeset
   109
            self thisIsNeverCalled.
a9657208d19b oops - bytecode version generated wrong jitted code
Claus Gittinger <cg@exept.de>
parents: 181
diff changeset
   110
%{
a9657208d19b oops - bytecode version generated wrong jitted code
Claus Gittinger <cg@exept.de>
parents: 181
diff changeset
   111
#endif
a9657208d19b oops - bytecode version generated wrong jitted code
Claus Gittinger <cg@exept.de>
parents: 181
diff changeset
   112
%}.
a9657208d19b oops - bytecode version generated wrong jitted code
Claus Gittinger <cg@exept.de>
parents: 181
diff changeset
   113
            self g == self h 
a9657208d19b oops - bytecode version generated wrong jitted code
Claus Gittinger <cg@exept.de>
parents: 181
diff changeset
   114
         ].
a9657208d19b oops - bytecode version generated wrong jitted code
Claus Gittinger <cg@exept.de>
parents: 181
diff changeset
   115
    v := b value.
a9657208d19b oops - bytecode version generated wrong jitted code
Claus Gittinger <cg@exept.de>
parents: 181
diff changeset
   116
    self assert:(v == true).
a9657208d19b oops - bytecode version generated wrong jitted code
Claus Gittinger <cg@exept.de>
parents: 181
diff changeset
   117
a9657208d19b oops - bytecode version generated wrong jitted code
Claus Gittinger <cg@exept.de>
parents: 181
diff changeset
   118
a9657208d19b oops - bytecode version generated wrong jitted code
Claus Gittinger <cg@exept.de>
parents: 181
diff changeset
   119
    "
a9657208d19b oops - bytecode version generated wrong jitted code
Claus Gittinger <cg@exept.de>
parents: 181
diff changeset
   120
     self new testBlockWithEQEQ_2
a9657208d19b oops - bytecode version generated wrong jitted code
Claus Gittinger <cg@exept.de>
parents: 181
diff changeset
   121
    "
a9657208d19b oops - bytecode version generated wrong jitted code
Claus Gittinger <cg@exept.de>
parents: 181
diff changeset
   122
a9657208d19b oops - bytecode version generated wrong jitted code
Claus Gittinger <cg@exept.de>
parents: 181
diff changeset
   123
    "Created: / 31-08-2007 / 17:42:02 / cg"
a9657208d19b oops - bytecode version generated wrong jitted code
Claus Gittinger <cg@exept.de>
parents: 181
diff changeset
   124
!
a9657208d19b oops - bytecode version generated wrong jitted code
Claus Gittinger <cg@exept.de>
parents: 181
diff changeset
   125
a9657208d19b oops - bytecode version generated wrong jitted code
Claus Gittinger <cg@exept.de>
parents: 181
diff changeset
   126
testBlockWithEQEQ_3
a9657208d19b oops - bytecode version generated wrong jitted code
Claus Gittinger <cg@exept.de>
parents: 181
diff changeset
   127
    |b p v|
a9657208d19b oops - bytecode version generated wrong jitted code
Claus Gittinger <cg@exept.de>
parents: 181
diff changeset
   128
a9657208d19b oops - bytecode version generated wrong jitted code
Claus Gittinger <cg@exept.de>
parents: 181
diff changeset
   129
    p := self.
a9657208d19b oops - bytecode version generated wrong jitted code
Claus Gittinger <cg@exept.de>
parents: 181
diff changeset
   130
a9657208d19b oops - bytecode version generated wrong jitted code
Claus Gittinger <cg@exept.de>
parents: 181
diff changeset
   131
    [
a9657208d19b oops - bytecode version generated wrong jitted code
Claus Gittinger <cg@exept.de>
parents: 181
diff changeset
   132
a9657208d19b oops - bytecode version generated wrong jitted code
Claus Gittinger <cg@exept.de>
parents: 181
diff changeset
   133
        b := [ 
a9657208d19b oops - bytecode version generated wrong jitted code
Claus Gittinger <cg@exept.de>
parents: 181
diff changeset
   134
%{
a9657208d19b oops - bytecode version generated wrong jitted code
Claus Gittinger <cg@exept.de>
parents: 181
diff changeset
   135
#ifdef FOO
a9657208d19b oops - bytecode version generated wrong jitted code
Claus Gittinger <cg@exept.de>
parents: 181
diff changeset
   136
%}.
a9657208d19b oops - bytecode version generated wrong jitted code
Claus Gittinger <cg@exept.de>
parents: 181
diff changeset
   137
            self thisIsNeverCalled.
a9657208d19b oops - bytecode version generated wrong jitted code
Claus Gittinger <cg@exept.de>
parents: 181
diff changeset
   138
%{
a9657208d19b oops - bytecode version generated wrong jitted code
Claus Gittinger <cg@exept.de>
parents: 181
diff changeset
   139
#endif
a9657208d19b oops - bytecode version generated wrong jitted code
Claus Gittinger <cg@exept.de>
parents: 181
diff changeset
   140
%}.
a9657208d19b oops - bytecode version generated wrong jitted code
Claus Gittinger <cg@exept.de>
parents: 181
diff changeset
   141
            p g == p h 
a9657208d19b oops - bytecode version generated wrong jitted code
Claus Gittinger <cg@exept.de>
parents: 181
diff changeset
   142
         ].
a9657208d19b oops - bytecode version generated wrong jitted code
Claus Gittinger <cg@exept.de>
parents: 181
diff changeset
   143
    ] value.
a9657208d19b oops - bytecode version generated wrong jitted code
Claus Gittinger <cg@exept.de>
parents: 181
diff changeset
   144
a9657208d19b oops - bytecode version generated wrong jitted code
Claus Gittinger <cg@exept.de>
parents: 181
diff changeset
   145
    v := b value.
a9657208d19b oops - bytecode version generated wrong jitted code
Claus Gittinger <cg@exept.de>
parents: 181
diff changeset
   146
    self assert:(v == true).
a9657208d19b oops - bytecode version generated wrong jitted code
Claus Gittinger <cg@exept.de>
parents: 181
diff changeset
   147
a9657208d19b oops - bytecode version generated wrong jitted code
Claus Gittinger <cg@exept.de>
parents: 181
diff changeset
   148
a9657208d19b oops - bytecode version generated wrong jitted code
Claus Gittinger <cg@exept.de>
parents: 181
diff changeset
   149
    "
a9657208d19b oops - bytecode version generated wrong jitted code
Claus Gittinger <cg@exept.de>
parents: 181
diff changeset
   150
     self new testBlockWithEQEQ_3
a9657208d19b oops - bytecode version generated wrong jitted code
Claus Gittinger <cg@exept.de>
parents: 181
diff changeset
   151
    "
a9657208d19b oops - bytecode version generated wrong jitted code
Claus Gittinger <cg@exept.de>
parents: 181
diff changeset
   152
a9657208d19b oops - bytecode version generated wrong jitted code
Claus Gittinger <cg@exept.de>
parents: 181
diff changeset
   153
    "Created: / 31-08-2007 / 17:44:07 / cg"
a9657208d19b oops - bytecode version generated wrong jitted code
Claus Gittinger <cg@exept.de>
parents: 181
diff changeset
   154
!
a9657208d19b oops - bytecode version generated wrong jitted code
Claus Gittinger <cg@exept.de>
parents: 181
diff changeset
   155
a9657208d19b oops - bytecode version generated wrong jitted code
Claus Gittinger <cg@exept.de>
parents: 181
diff changeset
   156
testBlockWithEQEQ_4
a9657208d19b oops - bytecode version generated wrong jitted code
Claus Gittinger <cg@exept.de>
parents: 181
diff changeset
   157
    |b p v Tmp|
a9657208d19b oops - bytecode version generated wrong jitted code
Claus Gittinger <cg@exept.de>
parents: 181
diff changeset
   158
a9657208d19b oops - bytecode version generated wrong jitted code
Claus Gittinger <cg@exept.de>
parents: 181
diff changeset
   159
    p := self.
a9657208d19b oops - bytecode version generated wrong jitted code
Claus Gittinger <cg@exept.de>
parents: 181
diff changeset
   160
a9657208d19b oops - bytecode version generated wrong jitted code
Claus Gittinger <cg@exept.de>
parents: 181
diff changeset
   161
    [
a9657208d19b oops - bytecode version generated wrong jitted code
Claus Gittinger <cg@exept.de>
parents: 181
diff changeset
   162
a9657208d19b oops - bytecode version generated wrong jitted code
Claus Gittinger <cg@exept.de>
parents: 181
diff changeset
   163
        b := [   |foo|
a9657208d19b oops - bytecode version generated wrong jitted code
Claus Gittinger <cg@exept.de>
parents: 181
diff changeset
   164
%{
a9657208d19b oops - bytecode version generated wrong jitted code
Claus Gittinger <cg@exept.de>
parents: 181
diff changeset
   165
#ifdef FOO
a9657208d19b oops - bytecode version generated wrong jitted code
Claus Gittinger <cg@exept.de>
parents: 181
diff changeset
   166
%}.
a9657208d19b oops - bytecode version generated wrong jitted code
Claus Gittinger <cg@exept.de>
parents: 181
diff changeset
   167
            foo := Timestamp now.
a9657208d19b oops - bytecode version generated wrong jitted code
Claus Gittinger <cg@exept.de>
parents: 181
diff changeset
   168
            Tmp isNil ifTrue:[
a9657208d19b oops - bytecode version generated wrong jitted code
Claus Gittinger <cg@exept.de>
parents: 181
diff changeset
   169
                Tmp := 'flags' copy.
a9657208d19b oops - bytecode version generated wrong jitted code
Claus Gittinger <cg@exept.de>
parents: 181
diff changeset
   170
            ] ifFalse:[
a9657208d19b oops - bytecode version generated wrong jitted code
Claus Gittinger <cg@exept.de>
parents: 181
diff changeset
   171
                ObjectMemory stopBackgroundCollector.
a9657208d19b oops - bytecode version generated wrong jitted code
Claus Gittinger <cg@exept.de>
parents: 181
diff changeset
   172
            ].
a9657208d19b oops - bytecode version generated wrong jitted code
Claus Gittinger <cg@exept.de>
parents: 181
diff changeset
   173
            self thisIsNeverCalled.
a9657208d19b oops - bytecode version generated wrong jitted code
Claus Gittinger <cg@exept.de>
parents: 181
diff changeset
   174
%{
a9657208d19b oops - bytecode version generated wrong jitted code
Claus Gittinger <cg@exept.de>
parents: 181
diff changeset
   175
#endif
a9657208d19b oops - bytecode version generated wrong jitted code
Claus Gittinger <cg@exept.de>
parents: 181
diff changeset
   176
%}.
a9657208d19b oops - bytecode version generated wrong jitted code
Claus Gittinger <cg@exept.de>
parents: 181
diff changeset
   177
            p g == p h 
a9657208d19b oops - bytecode version generated wrong jitted code
Claus Gittinger <cg@exept.de>
parents: 181
diff changeset
   178
         ].
a9657208d19b oops - bytecode version generated wrong jitted code
Claus Gittinger <cg@exept.de>
parents: 181
diff changeset
   179
    ] perform:((Base64Coder decode:'dmFsdWU=') asString asSymbol).
a9657208d19b oops - bytecode version generated wrong jitted code
Claus Gittinger <cg@exept.de>
parents: 181
diff changeset
   180
a9657208d19b oops - bytecode version generated wrong jitted code
Claus Gittinger <cg@exept.de>
parents: 181
diff changeset
   181
    v := b value.
a9657208d19b oops - bytecode version generated wrong jitted code
Claus Gittinger <cg@exept.de>
parents: 181
diff changeset
   182
    self assert:(v == true).
a9657208d19b oops - bytecode version generated wrong jitted code
Claus Gittinger <cg@exept.de>
parents: 181
diff changeset
   183
a9657208d19b oops - bytecode version generated wrong jitted code
Claus Gittinger <cg@exept.de>
parents: 181
diff changeset
   184
a9657208d19b oops - bytecode version generated wrong jitted code
Claus Gittinger <cg@exept.de>
parents: 181
diff changeset
   185
    "
a9657208d19b oops - bytecode version generated wrong jitted code
Claus Gittinger <cg@exept.de>
parents: 181
diff changeset
   186
     self new testBlockWithEQEQ_4
a9657208d19b oops - bytecode version generated wrong jitted code
Claus Gittinger <cg@exept.de>
parents: 181
diff changeset
   187
    "
a9657208d19b oops - bytecode version generated wrong jitted code
Claus Gittinger <cg@exept.de>
parents: 181
diff changeset
   188
a9657208d19b oops - bytecode version generated wrong jitted code
Claus Gittinger <cg@exept.de>
parents: 181
diff changeset
   189
    "Created: / 31-08-2007 / 17:44:38 / cg"
a9657208d19b oops - bytecode version generated wrong jitted code
Claus Gittinger <cg@exept.de>
parents: 181
diff changeset
   190
! !
a9657208d19b oops - bytecode version generated wrong jitted code
Claus Gittinger <cg@exept.de>
parents: 181
diff changeset
   191
606
Claus Gittinger <cg@exept.de>
parents: 334
diff changeset
   192
!BlockTest methodsFor:'tests - mkreal defect'!
Claus Gittinger <cg@exept.de>
parents: 334
diff changeset
   193
Claus Gittinger <cg@exept.de>
parents: 334
diff changeset
   194
testBackgroundBlockWithMethodReturning
Claus Gittinger <cg@exept.de>
parents: 334
diff changeset
   195
    "/ had this bug in one situation:
Claus Gittinger <cg@exept.de>
parents: 334
diff changeset
   196
    "/  a block was forked away
Claus Gittinger <cg@exept.de>
parents: 334
diff changeset
   197
    "/  the method returns (its context is moved from the stack to the heap)
Claus Gittinger <cg@exept.de>
parents: 334
diff changeset
   198
    "/  the block sees wrong method-vars
Claus Gittinger <cg@exept.de>
parents: 334
diff changeset
   199
Claus Gittinger <cg@exept.de>
parents: 334
diff changeset
   200
    |sema|
Claus Gittinger <cg@exept.de>
parents: 334
diff changeset
   201
Claus Gittinger <cg@exept.de>
parents: 334
diff changeset
   202
    sema := self backgroundBlockWithMethodReturningHelper.
Claus Gittinger <cg@exept.de>
parents: 334
diff changeset
   203
    sema signal.
Claus Gittinger <cg@exept.de>
parents: 334
diff changeset
   204
Claus Gittinger <cg@exept.de>
parents: 334
diff changeset
   205
    sema wait.
Claus Gittinger <cg@exept.de>
parents: 334
diff changeset
   206
Claus Gittinger <cg@exept.de>
parents: 334
diff changeset
   207
    "Created: / 02-08-2011 / 20:00:44 / cg"
Claus Gittinger <cg@exept.de>
parents: 334
diff changeset
   208
! !
Claus Gittinger <cg@exept.de>
parents: 334
diff changeset
   209
95
362e58ff28ba checkin from browser
Claus Gittinger <cg@exept.de>
parents: 70
diff changeset
   210
!BlockTest methodsFor:'varArgBlocks'!
58
98b8f998027c initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   211
97
7acb21a8e40c checkin from browser
Claus Gittinger <cg@exept.de>
parents: 95
diff changeset
   212
getBlock1
7acb21a8e40c checkin from browser
Claus Gittinger <cg@exept.de>
parents: 95
diff changeset
   213
     |b|
7acb21a8e40c checkin from browser
Claus Gittinger <cg@exept.de>
parents: 95
diff changeset
   214
7acb21a8e40c checkin from browser
Claus Gittinger <cg@exept.de>
parents: 95
diff changeset
   215
     b := [:arg | Transcript 
7acb21a8e40c checkin from browser
Claus Gittinger <cg@exept.de>
parents: 95
diff changeset
   216
                        show:'invoked with arg:'; 
7acb21a8e40c checkin from browser
Claus Gittinger <cg@exept.de>
parents: 95
diff changeset
   217
                        showCR:arg
7acb21a8e40c checkin from browser
Claus Gittinger <cg@exept.de>
parents: 95
diff changeset
   218
          ].
7acb21a8e40c checkin from browser
Claus Gittinger <cg@exept.de>
parents: 95
diff changeset
   219
     ^ b
7acb21a8e40c checkin from browser
Claus Gittinger <cg@exept.de>
parents: 95
diff changeset
   220
!
7acb21a8e40c checkin from browser
Claus Gittinger <cg@exept.de>
parents: 95
diff changeset
   221
58
98b8f998027c initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   222
getVarArgBlock1
98b8f998027c initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   223
     |b|
98b8f998027c initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   224
98b8f998027c initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   225
     b := [:argList | Transcript 
70
c677f96c4a0b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 69
diff changeset
   226
			show:'invoked with args:'; 
c677f96c4a0b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 69
diff changeset
   227
			showCR:argList
c677f96c4a0b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 69
diff changeset
   228
	  ] asVarArgBlock.
58
98b8f998027c initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   229
     ^ b
98b8f998027c initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   230
98b8f998027c initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   231
98b8f998027c initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   232
!
98b8f998027c initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   233
98b8f998027c initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   234
getVarArgBlock2
98b8f998027c initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   235
     |b|
98b8f998027c initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   236
98b8f998027c initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   237
     b := [:argList | Transcript 
70
c677f96c4a0b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 69
diff changeset
   238
			show:'invoked with args:'; 
c677f96c4a0b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 69
diff changeset
   239
			showCR:argList.
c677f96c4a0b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 69
diff changeset
   240
		      argList
c677f96c4a0b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 69
diff changeset
   241
	  ] asVarArgBlock.
58
98b8f998027c initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   242
     ^ b
98b8f998027c initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   243
98b8f998027c initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   244
98b8f998027c initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   245
!
98b8f998027c initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   246
98b8f998027c initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   247
getVarArgBlock3
98b8f998027c initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   248
     |b|
98b8f998027c initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   249
98b8f998027c initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   250
     b := [:argList | Transcript 
70
c677f96c4a0b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 69
diff changeset
   251
			show:'invoked with args:'; 
c677f96c4a0b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 69
diff changeset
   252
			showCR:argList.
c677f96c4a0b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 69
diff changeset
   253
		      argList size
c677f96c4a0b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 69
diff changeset
   254
	  ] asVarArgBlock.
58
98b8f998027c initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   255
     ^ b
98b8f998027c initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   256
98b8f998027c initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   257
98b8f998027c initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   258
!
98b8f998027c initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   259
97
7acb21a8e40c checkin from browser
Claus Gittinger <cg@exept.de>
parents: 95
diff changeset
   260
testBlock1
7acb21a8e40c checkin from browser
Claus Gittinger <cg@exept.de>
parents: 95
diff changeset
   261
    |b|
7acb21a8e40c checkin from browser
Claus Gittinger <cg@exept.de>
parents: 95
diff changeset
   262
7acb21a8e40c checkin from browser
Claus Gittinger <cg@exept.de>
parents: 95
diff changeset
   263
    b := self getBlock1.
7acb21a8e40c checkin from browser
Claus Gittinger <cg@exept.de>
parents: 95
diff changeset
   264
7acb21a8e40c checkin from browser
Claus Gittinger <cg@exept.de>
parents: 95
diff changeset
   265
    b code notNil ifTrue:[
7acb21a8e40c checkin from browser
Claus Gittinger <cg@exept.de>
parents: 95
diff changeset
   266
        Transcript showCR:'before call: *** blocks code is jitted'
7acb21a8e40c checkin from browser
Claus Gittinger <cg@exept.de>
parents: 95
diff changeset
   267
    ] ifFalse:[
7acb21a8e40c checkin from browser
Claus Gittinger <cg@exept.de>
parents: 95
diff changeset
   268
        Transcript showCR:'before call: blocks code is NOT jitted'
7acb21a8e40c checkin from browser
Claus Gittinger <cg@exept.de>
parents: 95
diff changeset
   269
    ].
7acb21a8e40c checkin from browser
Claus Gittinger <cg@exept.de>
parents: 95
diff changeset
   270
    b value:nil.
7acb21a8e40c checkin from browser
Claus Gittinger <cg@exept.de>
parents: 95
diff changeset
   271
    b code notNil ifTrue:[
7acb21a8e40c checkin from browser
Claus Gittinger <cg@exept.de>
parents: 95
diff changeset
   272
        Transcript showCR:'after call: blocks code is jitted'
7acb21a8e40c checkin from browser
Claus Gittinger <cg@exept.de>
parents: 95
diff changeset
   273
    ] ifFalse:[
7acb21a8e40c checkin from browser
Claus Gittinger <cg@exept.de>
parents: 95
diff changeset
   274
        Transcript showCR:'after call: *** blocks code is NOT jitted'
7acb21a8e40c checkin from browser
Claus Gittinger <cg@exept.de>
parents: 95
diff changeset
   275
    ].
7acb21a8e40c checkin from browser
Claus Gittinger <cg@exept.de>
parents: 95
diff changeset
   276
7acb21a8e40c checkin from browser
Claus Gittinger <cg@exept.de>
parents: 95
diff changeset
   277
    b value:#foo.
7acb21a8e40c checkin from browser
Claus Gittinger <cg@exept.de>
parents: 95
diff changeset
   278
    b value:1.
7acb21a8e40c checkin from browser
Claus Gittinger <cg@exept.de>
parents: 95
diff changeset
   279
    b value:2
7acb21a8e40c checkin from browser
Claus Gittinger <cg@exept.de>
parents: 95
diff changeset
   280
7acb21a8e40c checkin from browser
Claus Gittinger <cg@exept.de>
parents: 95
diff changeset
   281
    "
7acb21a8e40c checkin from browser
Claus Gittinger <cg@exept.de>
parents: 95
diff changeset
   282
     self new testBlock1
7acb21a8e40c checkin from browser
Claus Gittinger <cg@exept.de>
parents: 95
diff changeset
   283
    "
7acb21a8e40c checkin from browser
Claus Gittinger <cg@exept.de>
parents: 95
diff changeset
   284
!
7acb21a8e40c checkin from browser
Claus Gittinger <cg@exept.de>
parents: 95
diff changeset
   285
58
98b8f998027c initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   286
testVarArgBlock1
98b8f998027c initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   287
    |b|
98b8f998027c initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   288
98b8f998027c initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   289
    b := self getVarArgBlock1.
98b8f998027c initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   290
98b8f998027c initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   291
    b value.
60
f23dd849290e *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 59
diff changeset
   292
    b code notNil ifTrue:[
95
362e58ff28ba checkin from browser
Claus Gittinger <cg@exept.de>
parents: 70
diff changeset
   293
        Transcript showCR:'blocks code is jitted'
60
f23dd849290e *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 59
diff changeset
   294
    ] ifFalse:[
95
362e58ff28ba checkin from browser
Claus Gittinger <cg@exept.de>
parents: 70
diff changeset
   295
        Transcript showCR:'*** blocks code is NOT jitted'
60
f23dd849290e *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 59
diff changeset
   296
    ].
f23dd849290e *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 59
diff changeset
   297
f23dd849290e *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 59
diff changeset
   298
    b value.
58
98b8f998027c initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   299
    b value:'arg1'.
98b8f998027c initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   300
    b value:'arg1' value:'arg2' value:'arg3' value:'arg4'
98b8f998027c initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   301
98b8f998027c initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   302
    "
95
362e58ff28ba checkin from browser
Claus Gittinger <cg@exept.de>
parents: 70
diff changeset
   303
     self new testVarArgBlock1
58
98b8f998027c initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   304
    "
98b8f998027c initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   305
!
98b8f998027c initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   306
98b8f998027c initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   307
testVarArgBlock2
98b8f998027c initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   308
    |b|
98b8f998027c initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   309
98b8f998027c initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   310
    b := self getVarArgBlock2.
98b8f998027c initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   311
60
f23dd849290e *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 59
diff changeset
   312
    b value.
f23dd849290e *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 59
diff changeset
   313
    b code notNil ifTrue:[
95
362e58ff28ba checkin from browser
Claus Gittinger <cg@exept.de>
parents: 70
diff changeset
   314
        Transcript showCR:'blocks code is jitted'
60
f23dd849290e *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 59
diff changeset
   315
    ] ifFalse:[
95
362e58ff28ba checkin from browser
Claus Gittinger <cg@exept.de>
parents: 70
diff changeset
   316
        Transcript showCR:'*** blocks code is NOT jitted'
60
f23dd849290e *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 59
diff changeset
   317
    ].
f23dd849290e *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 59
diff changeset
   318
95
362e58ff28ba checkin from browser
Claus Gittinger <cg@exept.de>
parents: 70
diff changeset
   319
    self assert:( b value     = #() ).
362e58ff28ba checkin from browser
Claus Gittinger <cg@exept.de>
parents: 70
diff changeset
   320
    self assert:( (b value:1) = #(1) ).
362e58ff28ba checkin from browser
Claus Gittinger <cg@exept.de>
parents: 70
diff changeset
   321
    self assert:( (b value:1 value:2) = #(1 2) ).
362e58ff28ba checkin from browser
Claus Gittinger <cg@exept.de>
parents: 70
diff changeset
   322
    self assert:( (b value:1 value:2 value:3) = #(1 2 3) ).
362e58ff28ba checkin from browser
Claus Gittinger <cg@exept.de>
parents: 70
diff changeset
   323
    self assert:( (b value:1 value:2 value:3 value:4) = #(1 2 3 4) ).
362e58ff28ba checkin from browser
Claus Gittinger <cg@exept.de>
parents: 70
diff changeset
   324
    self assert:( (b valueWithArguments:#(1 2 3 4)) = #(1 2 3 4) ).
58
98b8f998027c initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   325
95
362e58ff28ba checkin from browser
Claus Gittinger <cg@exept.de>
parents: 70
diff changeset
   326
    self assert:( (b perform:#value)     = #()  ).
362e58ff28ba checkin from browser
Claus Gittinger <cg@exept.de>
parents: 70
diff changeset
   327
    self assert:( (b perform:#'value:' with:1) = #(1) ).
362e58ff28ba checkin from browser
Claus Gittinger <cg@exept.de>
parents: 70
diff changeset
   328
    self assert:( (b perform:#'value:value:' with:1 with:2) = #(1 2) ).
362e58ff28ba checkin from browser
Claus Gittinger <cg@exept.de>
parents: 70
diff changeset
   329
    self assert:( (b perform:#'value:value:value:' with:1 with:2 with:3) = #(1 2 3) ).
362e58ff28ba checkin from browser
Claus Gittinger <cg@exept.de>
parents: 70
diff changeset
   330
    self assert:( (b perform:#'value:value:value:value:' with:1 with:2 with:3 with:4) = #(1 2 3 4) ).
362e58ff28ba checkin from browser
Claus Gittinger <cg@exept.de>
parents: 70
diff changeset
   331
    self assert:( (b perform:#'valueWithArguments:' with:#(1 2 3 4)) = #(1 2 3 4) ).
58
98b8f998027c initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   332
98b8f998027c initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   333
    "
95
362e58ff28ba checkin from browser
Claus Gittinger <cg@exept.de>
parents: 70
diff changeset
   334
     self new testVarArgBlock2
58
98b8f998027c initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   335
    "
98b8f998027c initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   336
!
98b8f998027c initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   337
98b8f998027c initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   338
testVarArgBlock3
98b8f998027c initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   339
    |b|
98b8f998027c initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   340
98b8f998027c initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   341
    b := self getVarArgBlock3.
98b8f998027c initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   342
60
f23dd849290e *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 59
diff changeset
   343
    b value.
f23dd849290e *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 59
diff changeset
   344
    b code notNil ifTrue:[
95
362e58ff28ba checkin from browser
Claus Gittinger <cg@exept.de>
parents: 70
diff changeset
   345
        Transcript showCR:'blocks code is jitted'
60
f23dd849290e *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 59
diff changeset
   346
    ] ifFalse:[
95
362e58ff28ba checkin from browser
Claus Gittinger <cg@exept.de>
parents: 70
diff changeset
   347
        Transcript showCR:'*** blocks code is NOT jitted'
60
f23dd849290e *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 59
diff changeset
   348
    ].
f23dd849290e *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 59
diff changeset
   349
95
362e58ff28ba checkin from browser
Claus Gittinger <cg@exept.de>
parents: 70
diff changeset
   350
    self assert:( b value     = 0  ).
362e58ff28ba checkin from browser
Claus Gittinger <cg@exept.de>
parents: 70
diff changeset
   351
    self assert:( (b value:1) = 1  ).
362e58ff28ba checkin from browser
Claus Gittinger <cg@exept.de>
parents: 70
diff changeset
   352
    self assert:( (b value:1 value:2) = 2 ).
362e58ff28ba checkin from browser
Claus Gittinger <cg@exept.de>
parents: 70
diff changeset
   353
    self assert:( (b value:1 value:2 value:3) = 3 ).
362e58ff28ba checkin from browser
Claus Gittinger <cg@exept.de>
parents: 70
diff changeset
   354
    self assert:( (b value:1 value:2 value:3 value:4) = 4 ).
362e58ff28ba checkin from browser
Claus Gittinger <cg@exept.de>
parents: 70
diff changeset
   355
    self assert:( (b valueWithArguments:#(1 2 3 4)) = 4 ).
58
98b8f998027c initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   356
95
362e58ff28ba checkin from browser
Claus Gittinger <cg@exept.de>
parents: 70
diff changeset
   357
    self assert:( (b perform:#value)     = 0  ).
362e58ff28ba checkin from browser
Claus Gittinger <cg@exept.de>
parents: 70
diff changeset
   358
    self assert:( (b perform:#'value:' with:1) = 1 ).
362e58ff28ba checkin from browser
Claus Gittinger <cg@exept.de>
parents: 70
diff changeset
   359
    self assert:( (b perform:#'value:value:' with:1 with:2) = 2 ).
362e58ff28ba checkin from browser
Claus Gittinger <cg@exept.de>
parents: 70
diff changeset
   360
    self assert:( (b perform:#'value:value:value:' with:1 with:2 with:3) = 3 ).
362e58ff28ba checkin from browser
Claus Gittinger <cg@exept.de>
parents: 70
diff changeset
   361
    self assert:( (b perform:#'value:value:value:value:' with:1 with:2 with:3 with:4) = 4 ).
362e58ff28ba checkin from browser
Claus Gittinger <cg@exept.de>
parents: 70
diff changeset
   362
    self assert:( (b perform:#'valueWithArguments:' with:#(1 2 3 4)) = 4 ).
58
98b8f998027c initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   363
98b8f998027c initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   364
    "
95
362e58ff28ba checkin from browser
Claus Gittinger <cg@exept.de>
parents: 70
diff changeset
   365
     self new testVarArgBlock3
58
98b8f998027c initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   366
    "
98b8f998027c initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   367
!
98b8f998027c initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   368
95
362e58ff28ba checkin from browser
Claus Gittinger <cg@exept.de>
parents: 70
diff changeset
   369
xtestAll
362e58ff28ba checkin from browser
Claus Gittinger <cg@exept.de>
parents: 70
diff changeset
   370
    self testVarArgBlocks.
362e58ff28ba checkin from browser
Claus Gittinger <cg@exept.de>
parents: 70
diff changeset
   371
362e58ff28ba checkin from browser
Claus Gittinger <cg@exept.de>
parents: 70
diff changeset
   372
    "
362e58ff28ba checkin from browser
Claus Gittinger <cg@exept.de>
parents: 70
diff changeset
   373
     self new xtestAll
362e58ff28ba checkin from browser
Claus Gittinger <cg@exept.de>
parents: 70
diff changeset
   374
    "
362e58ff28ba checkin from browser
Claus Gittinger <cg@exept.de>
parents: 70
diff changeset
   375
!
362e58ff28ba checkin from browser
Claus Gittinger <cg@exept.de>
parents: 70
diff changeset
   376
362e58ff28ba checkin from browser
Claus Gittinger <cg@exept.de>
parents: 70
diff changeset
   377
xtestVarArgBlocks
58
98b8f998027c initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   378
    self testVarArgBlock1.
98b8f998027c initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   379
    self testVarArgBlock2.
98b8f998027c initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   380
    self testVarArgBlock3.
98b8f998027c initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   381
! !
98b8f998027c initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   382
98b8f998027c initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   383
!BlockTest class methodsFor:'documentation'!
98b8f998027c initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   384
98b8f998027c initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   385
version
98b8f998027c initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   386
    ^ '$Header$'
608
72ad19f340f0 class definition
Claus Gittinger <cg@exept.de>
parents: 606
diff changeset
   387
!
72ad19f340f0 class definition
Claus Gittinger <cg@exept.de>
parents: 606
diff changeset
   388
72ad19f340f0 class definition
Claus Gittinger <cg@exept.de>
parents: 606
diff changeset
   389
version_CVS
72ad19f340f0 class definition
Claus Gittinger <cg@exept.de>
parents: 606
diff changeset
   390
    ^ '$Header$'
58
98b8f998027c initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   391
! !