experiments/JavaByteCodeInterpreterTests.st
author vranyj1
Mon, 03 Dec 2012 19:28:28 +0000
branchdevelopment
changeset 1856 f2e8307a717f
parent 1818 2e5ed72e7dfd
child 1916 bfd8ca240746
permissions -rw-r--r--
Fix for JavaLookupTests>>testTypeOverloading
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
1462
44e09ad4ae15 Text cleanup
vranyj1
parents:
diff changeset
     1
"
44e09ad4ae15 Text cleanup
vranyj1
parents:
diff changeset
     2
 COPYRIGHT (c) 1996-2011 by Claus Gittinger
44e09ad4ae15 Text cleanup
vranyj1
parents:
diff changeset
     3
44e09ad4ae15 Text cleanup
vranyj1
parents:
diff changeset
     4
 New code and modifications done at SWING Research Group [1]:
44e09ad4ae15 Text cleanup
vranyj1
parents:
diff changeset
     5
44e09ad4ae15 Text cleanup
vranyj1
parents:
diff changeset
     6
 COPYRIGHT (c) 2010-2011 by Jan Vrany, Jan Kurs and Marcel Hlopko
44e09ad4ae15 Text cleanup
vranyj1
parents:
diff changeset
     7
                            SWING Research Group, Czech Technical University in Prague
44e09ad4ae15 Text cleanup
vranyj1
parents:
diff changeset
     8
44e09ad4ae15 Text cleanup
vranyj1
parents:
diff changeset
     9
 This software is furnished under a license and may be used
44e09ad4ae15 Text cleanup
vranyj1
parents:
diff changeset
    10
 only in accordance with the terms of that license and with the
44e09ad4ae15 Text cleanup
vranyj1
parents:
diff changeset
    11
 inclusion of the above copyright notice.   This software may not
44e09ad4ae15 Text cleanup
vranyj1
parents:
diff changeset
    12
 be provided or otherwise made available to, or used by, any
44e09ad4ae15 Text cleanup
vranyj1
parents:
diff changeset
    13
 other person.  No title to or ownership of the software is
44e09ad4ae15 Text cleanup
vranyj1
parents:
diff changeset
    14
 hereby transferred.
44e09ad4ae15 Text cleanup
vranyj1
parents:
diff changeset
    15
44e09ad4ae15 Text cleanup
vranyj1
parents:
diff changeset
    16
 [1] Code written at SWING Research Group contains a signature
44e09ad4ae15 Text cleanup
vranyj1
parents:
diff changeset
    17
     of one of the above copright owners. For exact set of such code,
44e09ad4ae15 Text cleanup
vranyj1
parents:
diff changeset
    18
     see the differences between this version and version stx:libjava
44e09ad4ae15 Text cleanup
vranyj1
parents:
diff changeset
    19
     as of 1.9.2010
44e09ad4ae15 Text cleanup
vranyj1
parents:
diff changeset
    20
"
44e09ad4ae15 Text cleanup
vranyj1
parents:
diff changeset
    21
"{ Package: 'stx:libjava/experiments' }"
44e09ad4ae15 Text cleanup
vranyj1
parents:
diff changeset
    22
44e09ad4ae15 Text cleanup
vranyj1
parents:
diff changeset
    23
JavaByteCodeProcessorTests subclass:#JavaByteCodeInterpreterTests
44e09ad4ae15 Text cleanup
vranyj1
parents:
diff changeset
    24
	instanceVariableNames:''
44e09ad4ae15 Text cleanup
vranyj1
parents:
diff changeset
    25
	classVariableNames:''
44e09ad4ae15 Text cleanup
vranyj1
parents:
diff changeset
    26
	poolDictionaries:''
44e09ad4ae15 Text cleanup
vranyj1
parents:
diff changeset
    27
	category:'Languages-Java-Tests'
44e09ad4ae15 Text cleanup
vranyj1
parents:
diff changeset
    28
!
44e09ad4ae15 Text cleanup
vranyj1
parents:
diff changeset
    29
44e09ad4ae15 Text cleanup
vranyj1
parents:
diff changeset
    30
!JavaByteCodeInterpreterTests class methodsFor:'documentation'!
44e09ad4ae15 Text cleanup
vranyj1
parents:
diff changeset
    31
44e09ad4ae15 Text cleanup
vranyj1
parents:
diff changeset
    32
copyright
44e09ad4ae15 Text cleanup
vranyj1
parents:
diff changeset
    33
"
44e09ad4ae15 Text cleanup
vranyj1
parents:
diff changeset
    34
 COPYRIGHT (c) 1996-2011 by Claus Gittinger
44e09ad4ae15 Text cleanup
vranyj1
parents:
diff changeset
    35
44e09ad4ae15 Text cleanup
vranyj1
parents:
diff changeset
    36
 New code and modifications done at SWING Research Group [1]:
44e09ad4ae15 Text cleanup
vranyj1
parents:
diff changeset
    37
44e09ad4ae15 Text cleanup
vranyj1
parents:
diff changeset
    38
 COPYRIGHT (c) 2010-2011 by Jan Vrany, Jan Kurs and Marcel Hlopko
44e09ad4ae15 Text cleanup
vranyj1
parents:
diff changeset
    39
                            SWING Research Group, Czech Technical University in Prague
44e09ad4ae15 Text cleanup
vranyj1
parents:
diff changeset
    40
44e09ad4ae15 Text cleanup
vranyj1
parents:
diff changeset
    41
 This software is furnished under a license and may be used
44e09ad4ae15 Text cleanup
vranyj1
parents:
diff changeset
    42
 only in accordance with the terms of that license and with the
44e09ad4ae15 Text cleanup
vranyj1
parents:
diff changeset
    43
 inclusion of the above copyright notice.   This software may not
44e09ad4ae15 Text cleanup
vranyj1
parents:
diff changeset
    44
 be provided or otherwise made available to, or used by, any
44e09ad4ae15 Text cleanup
vranyj1
parents:
diff changeset
    45
 other person.  No title to or ownership of the software is
44e09ad4ae15 Text cleanup
vranyj1
parents:
diff changeset
    46
 hereby transferred.
44e09ad4ae15 Text cleanup
vranyj1
parents:
diff changeset
    47
44e09ad4ae15 Text cleanup
vranyj1
parents:
diff changeset
    48
 [1] Code written at SWING Research Group contains a signature
44e09ad4ae15 Text cleanup
vranyj1
parents:
diff changeset
    49
     of one of the above copright owners. For exact set of such code,
44e09ad4ae15 Text cleanup
vranyj1
parents:
diff changeset
    50
     see the differences between this version and version stx:libjava
44e09ad4ae15 Text cleanup
vranyj1
parents:
diff changeset
    51
     as of 1.9.2010
44e09ad4ae15 Text cleanup
vranyj1
parents:
diff changeset
    52
44e09ad4ae15 Text cleanup
vranyj1
parents:
diff changeset
    53
"
44e09ad4ae15 Text cleanup
vranyj1
parents:
diff changeset
    54
! !
44e09ad4ae15 Text cleanup
vranyj1
parents:
diff changeset
    55
44e09ad4ae15 Text cleanup
vranyj1
parents:
diff changeset
    56
!JavaByteCodeInterpreterTests class methodsFor:'resources'!
44e09ad4ae15 Text cleanup
vranyj1
parents:
diff changeset
    57
44e09ad4ae15 Text cleanup
vranyj1
parents:
diff changeset
    58
resources
44e09ad4ae15 Text cleanup
vranyj1
parents:
diff changeset
    59
44e09ad4ae15 Text cleanup
vranyj1
parents:
diff changeset
    60
    ^ Array with: JavaInitializedResource with: JavaTestsResource.
44e09ad4ae15 Text cleanup
vranyj1
parents:
diff changeset
    61
44e09ad4ae15 Text cleanup
vranyj1
parents:
diff changeset
    62
    "Created: / 15-03-2011 / 17:29:22 / Marcel Hlopko <hlopkmar@fel.cvut.cz>"
44e09ad4ae15 Text cleanup
vranyj1
parents:
diff changeset
    63
    "Modified: / 16-03-2011 / 14:43:31 / Jan Vrany <jan.vrany@fit.cvut.cz>"
44e09ad4ae15 Text cleanup
vranyj1
parents:
diff changeset
    64
! !
44e09ad4ae15 Text cleanup
vranyj1
parents:
diff changeset
    65
44e09ad4ae15 Text cleanup
vranyj1
parents:
diff changeset
    66
!JavaByteCodeInterpreterTests methodsFor:'tests'!
44e09ad4ae15 Text cleanup
vranyj1
parents:
diff changeset
    67
44e09ad4ae15 Text cleanup
vranyj1
parents:
diff changeset
    68
testAnd
44e09ad4ae15 Text cleanup
vranyj1
parents:
diff changeset
    69
    | result  expResult |
44e09ad4ae15 Text cleanup
vranyj1
parents:
diff changeset
    70
44e09ad4ae15 Text cleanup
vranyj1
parents:
diff changeset
    71
    expResult := 2r10010101.
44e09ad4ae15 Text cleanup
vranyj1
parents:
diff changeset
    72
    result := self 
44e09ad4ae15 Text cleanup
vranyj1
parents:
diff changeset
    73
                invoke: #'and(II)I'
44e09ad4ae15 Text cleanup
vranyj1
parents:
diff changeset
    74
                class: self loadSimpleMathJavaClass
44e09ad4ae15 Text cleanup
vranyj1
parents:
diff changeset
    75
                args: #( 255 149 ).
44e09ad4ae15 Text cleanup
vranyj1
parents:
diff changeset
    76
    self assertTrue: expResult = result.
44e09ad4ae15 Text cleanup
vranyj1
parents:
diff changeset
    77
44e09ad4ae15 Text cleanup
vranyj1
parents:
diff changeset
    78
    "static method
44e09ad4ae15 Text cleanup
vranyj1
parents:
diff changeset
    79
44e09ad4ae15 Text cleanup
vranyj1
parents:
diff changeset
    80
     0    iload_0
44e09ad4ae15 Text cleanup
vranyj1
parents:
diff changeset
    81
     1    iload_1
44e09ad4ae15 Text cleanup
vranyj1
parents:
diff changeset
    82
     2    iand
44e09ad4ae15 Text cleanup
vranyj1
parents:
diff changeset
    83
     3    ireturn"
44e09ad4ae15 Text cleanup
vranyj1
parents:
diff changeset
    84
44e09ad4ae15 Text cleanup
vranyj1
parents:
diff changeset
    85
    "Created: / 14-03-2011 / 17:02:09 / Marcel Hlopko <hlopkmar@fel.cvut.cz>"
44e09ad4ae15 Text cleanup
vranyj1
parents:
diff changeset
    86
    "Modified: / 16-03-2011 / 21:49:34 / Marcel Hlopko <hlopkmar@fel.cvut.cz>"
44e09ad4ae15 Text cleanup
vranyj1
parents:
diff changeset
    87
!
44e09ad4ae15 Text cleanup
vranyj1
parents:
diff changeset
    88
44e09ad4ae15 Text cleanup
vranyj1
parents:
diff changeset
    89
testBitShiftLeft
44e09ad4ae15 Text cleanup
vranyj1
parents:
diff changeset
    90
    | result  expResult |
44e09ad4ae15 Text cleanup
vranyj1
parents:
diff changeset
    91
44e09ad4ae15 Text cleanup
vranyj1
parents:
diff changeset
    92
    expResult := 2r101010000.
44e09ad4ae15 Text cleanup
vranyj1
parents:
diff changeset
    93
    result := self 
44e09ad4ae15 Text cleanup
vranyj1
parents:
diff changeset
    94
                invoke: #'bitShiftLeft(II)I'
44e09ad4ae15 Text cleanup
vranyj1
parents:
diff changeset
    95
                class: self loadSimpleMathJavaClass
44e09ad4ae15 Text cleanup
vranyj1
parents:
diff changeset
    96
                args: #( 21 4 ).
44e09ad4ae15 Text cleanup
vranyj1
parents:
diff changeset
    97
    self assertTrue: expResult = result.
44e09ad4ae15 Text cleanup
vranyj1
parents:
diff changeset
    98
44e09ad4ae15 Text cleanup
vranyj1
parents:
diff changeset
    99
    "static method
44e09ad4ae15 Text cleanup
vranyj1
parents:
diff changeset
   100
44e09ad4ae15 Text cleanup
vranyj1
parents:
diff changeset
   101
     0    iload_0
44e09ad4ae15 Text cleanup
vranyj1
parents:
diff changeset
   102
     1    iload_1
44e09ad4ae15 Text cleanup
vranyj1
parents:
diff changeset
   103
     2    ishl
44e09ad4ae15 Text cleanup
vranyj1
parents:
diff changeset
   104
     3    ireturn"
44e09ad4ae15 Text cleanup
vranyj1
parents:
diff changeset
   105
44e09ad4ae15 Text cleanup
vranyj1
parents:
diff changeset
   106
    "Created: / 14-03-2011 / 16:56:49 / Marcel Hlopko <hlopkmar@fel.cvut.cz>"
44e09ad4ae15 Text cleanup
vranyj1
parents:
diff changeset
   107
    "Modified: / 16-03-2011 / 21:49:29 / Marcel Hlopko <hlopkmar@fel.cvut.cz>"
44e09ad4ae15 Text cleanup
vranyj1
parents:
diff changeset
   108
!
44e09ad4ae15 Text cleanup
vranyj1
parents:
diff changeset
   109
44e09ad4ae15 Text cleanup
vranyj1
parents:
diff changeset
   110
testBitShiftRight
44e09ad4ae15 Text cleanup
vranyj1
parents:
diff changeset
   111
    | result  expResult |
44e09ad4ae15 Text cleanup
vranyj1
parents:
diff changeset
   112
44e09ad4ae15 Text cleanup
vranyj1
parents:
diff changeset
   113
    expResult := 2r11011.
44e09ad4ae15 Text cleanup
vranyj1
parents:
diff changeset
   114
    result := self 
44e09ad4ae15 Text cleanup
vranyj1
parents:
diff changeset
   115
                invoke: #'bitShiftRight(II)I'
44e09ad4ae15 Text cleanup
vranyj1
parents:
diff changeset
   116
                class: self loadSimpleMathJavaClass
44e09ad4ae15 Text cleanup
vranyj1
parents:
diff changeset
   117
                args: #( 439 4 ).
44e09ad4ae15 Text cleanup
vranyj1
parents:
diff changeset
   118
    self assertTrue: expResult = result.
44e09ad4ae15 Text cleanup
vranyj1
parents:
diff changeset
   119
44e09ad4ae15 Text cleanup
vranyj1
parents:
diff changeset
   120
    "static method
44e09ad4ae15 Text cleanup
vranyj1
parents:
diff changeset
   121
44e09ad4ae15 Text cleanup
vranyj1
parents:
diff changeset
   122
     0    iload_0
44e09ad4ae15 Text cleanup
vranyj1
parents:
diff changeset
   123
     1    iload_1
44e09ad4ae15 Text cleanup
vranyj1
parents:
diff changeset
   124
     2    ishr
44e09ad4ae15 Text cleanup
vranyj1
parents:
diff changeset
   125
     3    ireturn"
44e09ad4ae15 Text cleanup
vranyj1
parents:
diff changeset
   126
44e09ad4ae15 Text cleanup
vranyj1
parents:
diff changeset
   127
    "Created: / 14-03-2011 / 16:57:02 / Marcel Hlopko <hlopkmar@fel.cvut.cz>"
44e09ad4ae15 Text cleanup
vranyj1
parents:
diff changeset
   128
    "Modified: / 16-03-2011 / 21:49:25 / Marcel Hlopko <hlopkmar@fel.cvut.cz>"
44e09ad4ae15 Text cleanup
vranyj1
parents:
diff changeset
   129
!
44e09ad4ae15 Text cleanup
vranyj1
parents:
diff changeset
   130
44e09ad4ae15 Text cleanup
vranyj1
parents:
diff changeset
   131
testDec2
44e09ad4ae15 Text cleanup
vranyj1
parents:
diff changeset
   132
    | result  expResult |
44e09ad4ae15 Text cleanup
vranyj1
parents:
diff changeset
   133
44e09ad4ae15 Text cleanup
vranyj1
parents:
diff changeset
   134
    expResult := 1.
44e09ad4ae15 Text cleanup
vranyj1
parents:
diff changeset
   135
    result := self 
44e09ad4ae15 Text cleanup
vranyj1
parents:
diff changeset
   136
                invoke: #'dec2(I)I'
44e09ad4ae15 Text cleanup
vranyj1
parents:
diff changeset
   137
                class: self loadSimpleMathJavaClass
44e09ad4ae15 Text cleanup
vranyj1
parents:
diff changeset
   138
                args: #( 3 ).
44e09ad4ae15 Text cleanup
vranyj1
parents:
diff changeset
   139
    self assertTrue: expResult = result.
44e09ad4ae15 Text cleanup
vranyj1
parents:
diff changeset
   140
44e09ad4ae15 Text cleanup
vranyj1
parents:
diff changeset
   141
    "static method
44e09ad4ae15 Text cleanup
vranyj1
parents:
diff changeset
   142
44e09ad4ae15 Text cleanup
vranyj1
parents:
diff changeset
   143
     0    iinc 0 -1
44e09ad4ae15 Text cleanup
vranyj1
parents:
diff changeset
   144
     3    iinc 0 -1
44e09ad4ae15 Text cleanup
vranyj1
parents:
diff changeset
   145
     6    iload_0
44e09ad4ae15 Text cleanup
vranyj1
parents:
diff changeset
   146
     7    ireturn"
44e09ad4ae15 Text cleanup
vranyj1
parents:
diff changeset
   147
44e09ad4ae15 Text cleanup
vranyj1
parents:
diff changeset
   148
    "Created: / 14-03-2011 / 16:58:12 / Marcel Hlopko <hlopkmar@fel.cvut.cz>"
44e09ad4ae15 Text cleanup
vranyj1
parents:
diff changeset
   149
    "Modified: / 16-03-2011 / 21:49:20 / Marcel Hlopko <hlopkmar@fel.cvut.cz>"
44e09ad4ae15 Text cleanup
vranyj1
parents:
diff changeset
   150
!
44e09ad4ae15 Text cleanup
vranyj1
parents:
diff changeset
   151
44e09ad4ae15 Text cleanup
vranyj1
parents:
diff changeset
   152
testDiv
44e09ad4ae15 Text cleanup
vranyj1
parents:
diff changeset
   153
    | result  expResult |
44e09ad4ae15 Text cleanup
vranyj1
parents:
diff changeset
   154
44e09ad4ae15 Text cleanup
vranyj1
parents:
diff changeset
   155
    expResult := 1.
44e09ad4ae15 Text cleanup
vranyj1
parents:
diff changeset
   156
    result := self 
44e09ad4ae15 Text cleanup
vranyj1
parents:
diff changeset
   157
                invoke: #'div(II)I'
44e09ad4ae15 Text cleanup
vranyj1
parents:
diff changeset
   158
                class: self loadSimpleMathJavaClass
44e09ad4ae15 Text cleanup
vranyj1
parents:
diff changeset
   159
                args: #( 101 10 ).
44e09ad4ae15 Text cleanup
vranyj1
parents:
diff changeset
   160
    self assertTrue: expResult = result.
44e09ad4ae15 Text cleanup
vranyj1
parents:
diff changeset
   161
44e09ad4ae15 Text cleanup
vranyj1
parents:
diff changeset
   162
    "static method
44e09ad4ae15 Text cleanup
vranyj1
parents:
diff changeset
   163
44e09ad4ae15 Text cleanup
vranyj1
parents:
diff changeset
   164
     0    iload_0
44e09ad4ae15 Text cleanup
vranyj1
parents:
diff changeset
   165
     1    iload_1
44e09ad4ae15 Text cleanup
vranyj1
parents:
diff changeset
   166
     2    irem
44e09ad4ae15 Text cleanup
vranyj1
parents:
diff changeset
   167
     3    ireturn"
44e09ad4ae15 Text cleanup
vranyj1
parents:
diff changeset
   168
44e09ad4ae15 Text cleanup
vranyj1
parents:
diff changeset
   169
    "Created: / 14-03-2011 / 16:54:43 / Marcel Hlopko <hlopkmar@fel.cvut.cz>"
44e09ad4ae15 Text cleanup
vranyj1
parents:
diff changeset
   170
    "Modified: / 16-03-2011 / 21:49:15 / Marcel Hlopko <hlopkmar@fel.cvut.cz>"
44e09ad4ae15 Text cleanup
vranyj1
parents:
diff changeset
   171
!
44e09ad4ae15 Text cleanup
vranyj1
parents:
diff changeset
   172
44e09ad4ae15 Text cleanup
vranyj1
parents:
diff changeset
   173
testDivision
44e09ad4ae15 Text cleanup
vranyj1
parents:
diff changeset
   174
    | result  expResult |
44e09ad4ae15 Text cleanup
vranyj1
parents:
diff changeset
   175
44e09ad4ae15 Text cleanup
vranyj1
parents:
diff changeset
   176
    expResult := 10.
44e09ad4ae15 Text cleanup
vranyj1
parents:
diff changeset
   177
    result := self 
44e09ad4ae15 Text cleanup
vranyj1
parents:
diff changeset
   178
                invoke: #'division(II)I'
44e09ad4ae15 Text cleanup
vranyj1
parents:
diff changeset
   179
                class: self loadSimpleMathJavaClass
44e09ad4ae15 Text cleanup
vranyj1
parents:
diff changeset
   180
                args: #( 101 10 ).
44e09ad4ae15 Text cleanup
vranyj1
parents:
diff changeset
   181
    self assertTrue: expResult = result.
44e09ad4ae15 Text cleanup
vranyj1
parents:
diff changeset
   182
44e09ad4ae15 Text cleanup
vranyj1
parents:
diff changeset
   183
    "static method
44e09ad4ae15 Text cleanup
vranyj1
parents:
diff changeset
   184
44e09ad4ae15 Text cleanup
vranyj1
parents:
diff changeset
   185
     0    iload_0
44e09ad4ae15 Text cleanup
vranyj1
parents:
diff changeset
   186
     1    iload_1
44e09ad4ae15 Text cleanup
vranyj1
parents:
diff changeset
   187
     2    idiv
44e09ad4ae15 Text cleanup
vranyj1
parents:
diff changeset
   188
     3    ireturn"
44e09ad4ae15 Text cleanup
vranyj1
parents:
diff changeset
   189
44e09ad4ae15 Text cleanup
vranyj1
parents:
diff changeset
   190
    "Created: / 14-03-2011 / 16:57:34 / Marcel Hlopko <hlopkmar@fel.cvut.cz>"
44e09ad4ae15 Text cleanup
vranyj1
parents:
diff changeset
   191
    "Modified: / 16-03-2011 / 21:48:28 / Marcel Hlopko <hlopkmar@fel.cvut.cz>"
44e09ad4ae15 Text cleanup
vranyj1
parents:
diff changeset
   192
!
44e09ad4ae15 Text cleanup
vranyj1
parents:
diff changeset
   193
44e09ad4ae15 Text cleanup
vranyj1
parents:
diff changeset
   194
testInc2
44e09ad4ae15 Text cleanup
vranyj1
parents:
diff changeset
   195
    | result  expResult |
44e09ad4ae15 Text cleanup
vranyj1
parents:
diff changeset
   196
44e09ad4ae15 Text cleanup
vranyj1
parents:
diff changeset
   197
    expResult := 5.
44e09ad4ae15 Text cleanup
vranyj1
parents:
diff changeset
   198
    result := self 
44e09ad4ae15 Text cleanup
vranyj1
parents:
diff changeset
   199
                invoke: #'inc2(I)I'
44e09ad4ae15 Text cleanup
vranyj1
parents:
diff changeset
   200
                class: self loadSimpleMathJavaClass
44e09ad4ae15 Text cleanup
vranyj1
parents:
diff changeset
   201
                args: #( 3 ).
44e09ad4ae15 Text cleanup
vranyj1
parents:
diff changeset
   202
    self assertTrue: expResult = result.
44e09ad4ae15 Text cleanup
vranyj1
parents:
diff changeset
   203
44e09ad4ae15 Text cleanup
vranyj1
parents:
diff changeset
   204
    "static method
44e09ad4ae15 Text cleanup
vranyj1
parents:
diff changeset
   205
44e09ad4ae15 Text cleanup
vranyj1
parents:
diff changeset
   206
     0    iinc 0 1
44e09ad4ae15 Text cleanup
vranyj1
parents:
diff changeset
   207
     3    iinc 0 1
44e09ad4ae15 Text cleanup
vranyj1
parents:
diff changeset
   208
     6    iload_0
44e09ad4ae15 Text cleanup
vranyj1
parents:
diff changeset
   209
     7    ireturn"
44e09ad4ae15 Text cleanup
vranyj1
parents:
diff changeset
   210
44e09ad4ae15 Text cleanup
vranyj1
parents:
diff changeset
   211
    "Created: / 14-03-2011 / 16:58:00 / Marcel Hlopko <hlopkmar@fel.cvut.cz>"
44e09ad4ae15 Text cleanup
vranyj1
parents:
diff changeset
   212
    "Modified: / 16-03-2011 / 21:48:23 / Marcel Hlopko <hlopkmar@fel.cvut.cz>"
44e09ad4ae15 Text cleanup
vranyj1
parents:
diff changeset
   213
!
44e09ad4ae15 Text cleanup
vranyj1
parents:
diff changeset
   214
44e09ad4ae15 Text cleanup
vranyj1
parents:
diff changeset
   215
testInheritedMethodCall
44e09ad4ae15 Text cleanup
vranyj1
parents:
diff changeset
   216
    | result |
44e09ad4ae15 Text cleanup
vranyj1
parents:
diff changeset
   217
44e09ad4ae15 Text cleanup
vranyj1
parents:
diff changeset
   218
    self shouldnt: 
44e09ad4ae15 Text cleanup
vranyj1
parents:
diff changeset
   219
            [ result := self 
44e09ad4ae15 Text cleanup
vranyj1
parents:
diff changeset
   220
                        invoke: #'foo()Ljava/lang/String;'
44e09ad4ae15 Text cleanup
vranyj1
parents:
diff changeset
   221
                        class: self loadSimpleInheritingJavaClass
44e09ad4ae15 Text cleanup
vranyj1
parents:
diff changeset
   222
                        args: nil. ]
44e09ad4ae15 Text cleanup
vranyj1
parents:
diff changeset
   223
        raise: Error.
44e09ad4ae15 Text cleanup
vranyj1
parents:
diff changeset
   224
    self assertFalse: (result isNil).
44e09ad4ae15 Text cleanup
vranyj1
parents:
diff changeset
   225
"0    ldc1 2 ['foo'] 
44e09ad4ae15 Text cleanup
vranyj1
parents:
diff changeset
   226
2    areturn "
44e09ad4ae15 Text cleanup
vranyj1
parents:
diff changeset
   227
44e09ad4ae15 Text cleanup
vranyj1
parents:
diff changeset
   228
    "Created: / 14-03-2011 / 16:21:04 / Marcel Hlopko <hlopkmar@fel.cvut.cz>"
44e09ad4ae15 Text cleanup
vranyj1
parents:
diff changeset
   229
    "Modified: / 16-03-2011 / 21:47:43 / Marcel Hlopko <hlopkmar@fel.cvut.cz>"
44e09ad4ae15 Text cleanup
vranyj1
parents:
diff changeset
   230
!
44e09ad4ae15 Text cleanup
vranyj1
parents:
diff changeset
   231
44e09ad4ae15 Text cleanup
vranyj1
parents:
diff changeset
   232
testJustLoadConstants
44e09ad4ae15 Text cleanup
vranyj1
parents:
diff changeset
   233
    "/self shouldnt: 
44e09ad4ae15 Text cleanup
vranyj1
parents:
diff changeset
   234
    
44e09ad4ae15 Text cleanup
vranyj1
parents:
diff changeset
   235
    
44e09ad4ae15 Text cleanup
vranyj1
parents:
diff changeset
   236
    [ self 
44e09ad4ae15 Text cleanup
vranyj1
parents:
diff changeset
   237
        invoke: #'justUseConstants()V'
44e09ad4ae15 Text cleanup
vranyj1
parents:
diff changeset
   238
        class: self loadSimpleMathJavaClass
44e09ad4ae15 Text cleanup
vranyj1
parents:
diff changeset
   239
        args: #(). ] value.
44e09ad4ae15 Text cleanup
vranyj1
parents:
diff changeset
   240
44e09ad4ae15 Text cleanup
vranyj1
parents:
diff changeset
   241
    "static method
44e09ad4ae15 Text cleanup
vranyj1
parents:
diff changeset
   242
44e09ad4ae15 Text cleanup
vranyj1
parents:
diff changeset
   243
     0    lconst_0
44e09ad4ae15 Text cleanup
vranyj1
parents:
diff changeset
   244
     1    lstore_0
44e09ad4ae15 Text cleanup
vranyj1
parents:
diff changeset
   245
     2    lconst_1
44e09ad4ae15 Text cleanup
vranyj1
parents:
diff changeset
   246
     3    lstore_2
44e09ad4ae15 Text cleanup
vranyj1
parents:
diff changeset
   247
     4    fconst_0
44e09ad4ae15 Text cleanup
vranyj1
parents:
diff changeset
   248
     5    fstore 4
44e09ad4ae15 Text cleanup
vranyj1
parents:
diff changeset
   249
     7    fconst_1
44e09ad4ae15 Text cleanup
vranyj1
parents:
diff changeset
   250
     8    fstore 5
44e09ad4ae15 Text cleanup
vranyj1
parents:
diff changeset
   251
     10   fconst_2
44e09ad4ae15 Text cleanup
vranyj1
parents:
diff changeset
   252
     11   fstore 6
44e09ad4ae15 Text cleanup
vranyj1
parents:
diff changeset
   253
     13   dconst_0
44e09ad4ae15 Text cleanup
vranyj1
parents:
diff changeset
   254
     14   dstore 7
44e09ad4ae15 Text cleanup
vranyj1
parents:
diff changeset
   255
     16   dconst_1
44e09ad4ae15 Text cleanup
vranyj1
parents:
diff changeset
   256
     17   dstore 9
44e09ad4ae15 Text cleanup
vranyj1
parents:
diff changeset
   257
     19   return"
44e09ad4ae15 Text cleanup
vranyj1
parents:
diff changeset
   258
44e09ad4ae15 Text cleanup
vranyj1
parents:
diff changeset
   259
    "Created: / 14-03-2011 / 17:05:22 / Marcel Hlopko <hlopkmar@fel.cvut.cz>"
44e09ad4ae15 Text cleanup
vranyj1
parents:
diff changeset
   260
    "Modified: / 16-03-2011 / 21:48:14 / Marcel Hlopko <hlopkmar@fel.cvut.cz>"
44e09ad4ae15 Text cleanup
vranyj1
parents:
diff changeset
   261
!
44e09ad4ae15 Text cleanup
vranyj1
parents:
diff changeset
   262
44e09ad4ae15 Text cleanup
vranyj1
parents:
diff changeset
   263
testMultipy
44e09ad4ae15 Text cleanup
vranyj1
parents:
diff changeset
   264
    | result  expResult |
44e09ad4ae15 Text cleanup
vranyj1
parents:
diff changeset
   265
44e09ad4ae15 Text cleanup
vranyj1
parents:
diff changeset
   266
    expResult := 200.
44e09ad4ae15 Text cleanup
vranyj1
parents:
diff changeset
   267
    result := self 
44e09ad4ae15 Text cleanup
vranyj1
parents:
diff changeset
   268
                invoke: #'multiply(II)I'
44e09ad4ae15 Text cleanup
vranyj1
parents:
diff changeset
   269
                class: self loadSimpleMathJavaClass
44e09ad4ae15 Text cleanup
vranyj1
parents:
diff changeset
   270
                args: (Array with: 20 with: 10).
44e09ad4ae15 Text cleanup
vranyj1
parents:
diff changeset
   271
    self assertTrue: expResult = result.
44e09ad4ae15 Text cleanup
vranyj1
parents:
diff changeset
   272
"static method
44e09ad4ae15 Text cleanup
vranyj1
parents:
diff changeset
   273
44e09ad4ae15 Text cleanup
vranyj1
parents:
diff changeset
   274
0    iload_0 
44e09ad4ae15 Text cleanup
vranyj1
parents:
diff changeset
   275
1    iload_1 
44e09ad4ae15 Text cleanup
vranyj1
parents:
diff changeset
   276
2    imul 
44e09ad4ae15 Text cleanup
vranyj1
parents:
diff changeset
   277
3    ireturn "
44e09ad4ae15 Text cleanup
vranyj1
parents:
diff changeset
   278
44e09ad4ae15 Text cleanup
vranyj1
parents:
diff changeset
   279
    "Created: / 06-03-2011 / 14:17:53 / Marcel Hlopko <hlopkmar@fel.cvut.cz>"
44e09ad4ae15 Text cleanup
vranyj1
parents:
diff changeset
   280
    "Modified: / 16-03-2011 / 21:50:24 / Marcel Hlopko <hlopkmar@fel.cvut.cz>"
44e09ad4ae15 Text cleanup
vranyj1
parents:
diff changeset
   281
!
44e09ad4ae15 Text cleanup
vranyj1
parents:
diff changeset
   282
44e09ad4ae15 Text cleanup
vranyj1
parents:
diff changeset
   283
testNegateInt
44e09ad4ae15 Text cleanup
vranyj1
parents:
diff changeset
   284
    | result  expResult |
44e09ad4ae15 Text cleanup
vranyj1
parents:
diff changeset
   285
44e09ad4ae15 Text cleanup
vranyj1
parents:
diff changeset
   286
    expResult := -56.
44e09ad4ae15 Text cleanup
vranyj1
parents:
diff changeset
   287
    result := self 
44e09ad4ae15 Text cleanup
vranyj1
parents:
diff changeset
   288
                invoke: #'negateInt(I)I'
44e09ad4ae15 Text cleanup
vranyj1
parents:
diff changeset
   289
                class: self loadSimpleMathJavaClass
44e09ad4ae15 Text cleanup
vranyj1
parents:
diff changeset
   290
                args: #( 55 ).
44e09ad4ae15 Text cleanup
vranyj1
parents:
diff changeset
   291
    self assertTrue: expResult = result.
44e09ad4ae15 Text cleanup
vranyj1
parents:
diff changeset
   292
"0    iload_0 
44e09ad4ae15 Text cleanup
vranyj1
parents:
diff changeset
   293
1    iconst_m1 
44e09ad4ae15 Text cleanup
vranyj1
parents:
diff changeset
   294
2    ixor 
44e09ad4ae15 Text cleanup
vranyj1
parents:
diff changeset
   295
3    ireturn "
44e09ad4ae15 Text cleanup
vranyj1
parents:
diff changeset
   296
44e09ad4ae15 Text cleanup
vranyj1
parents:
diff changeset
   297
    "Created: / 14-03-2011 / 16:55:55 / Marcel Hlopko <hlopkmar@fel.cvut.cz>"
44e09ad4ae15 Text cleanup
vranyj1
parents:
diff changeset
   298
    "Modified: / 16-03-2011 / 21:50:38 / Marcel Hlopko <hlopkmar@fel.cvut.cz>"
44e09ad4ae15 Text cleanup
vranyj1
parents:
diff changeset
   299
!
44e09ad4ae15 Text cleanup
vranyj1
parents:
diff changeset
   300
44e09ad4ae15 Text cleanup
vranyj1
parents:
diff changeset
   301
testOr
44e09ad4ae15 Text cleanup
vranyj1
parents:
diff changeset
   302
    | result  expResult |
44e09ad4ae15 Text cleanup
vranyj1
parents:
diff changeset
   303
44e09ad4ae15 Text cleanup
vranyj1
parents:
diff changeset
   304
    expResult := 119.
44e09ad4ae15 Text cleanup
vranyj1
parents:
diff changeset
   305
    result := self 
44e09ad4ae15 Text cleanup
vranyj1
parents:
diff changeset
   306
                invoke: #'or(II)I'
44e09ad4ae15 Text cleanup
vranyj1
parents:
diff changeset
   307
                class: self loadSimpleMathJavaClass
44e09ad4ae15 Text cleanup
vranyj1
parents:
diff changeset
   308
                args: #( 55 66 ).
44e09ad4ae15 Text cleanup
vranyj1
parents:
diff changeset
   309
    self assertTrue: expResult = result.
44e09ad4ae15 Text cleanup
vranyj1
parents:
diff changeset
   310
"0    iload_0 
44e09ad4ae15 Text cleanup
vranyj1
parents:
diff changeset
   311
1    iload_1 
44e09ad4ae15 Text cleanup
vranyj1
parents:
diff changeset
   312
2    ior 
44e09ad4ae15 Text cleanup
vranyj1
parents:
diff changeset
   313
3    ireturn "
44e09ad4ae15 Text cleanup
vranyj1
parents:
diff changeset
   314
44e09ad4ae15 Text cleanup
vranyj1
parents:
diff changeset
   315
    "Created: / 14-03-2011 / 17:02:21 / Marcel Hlopko <hlopkmar@fel.cvut.cz>"
44e09ad4ae15 Text cleanup
vranyj1
parents:
diff changeset
   316
    "Modified: / 16-03-2011 / 21:50:51 / Marcel Hlopko <hlopkmar@fel.cvut.cz>"
44e09ad4ae15 Text cleanup
vranyj1
parents:
diff changeset
   317
!
44e09ad4ae15 Text cleanup
vranyj1
parents:
diff changeset
   318
44e09ad4ae15 Text cleanup
vranyj1
parents:
diff changeset
   319
testOverridenMethodCall
44e09ad4ae15 Text cleanup
vranyj1
parents:
diff changeset
   320
    | result |
44e09ad4ae15 Text cleanup
vranyj1
parents:
diff changeset
   321
44e09ad4ae15 Text cleanup
vranyj1
parents:
diff changeset
   322
    self shouldnt: 
44e09ad4ae15 Text cleanup
vranyj1
parents:
diff changeset
   323
            [ result := self 
44e09ad4ae15 Text cleanup
vranyj1
parents:
diff changeset
   324
                        invoke: #'bar()Ljava/lang/String;'
44e09ad4ae15 Text cleanup
vranyj1
parents:
diff changeset
   325
                        class: self loadSimpleInheritingJavaClass
44e09ad4ae15 Text cleanup
vranyj1
parents:
diff changeset
   326
                        args: nil. ]
44e09ad4ae15 Text cleanup
vranyj1
parents:
diff changeset
   327
        raise: Error.
44e09ad4ae15 Text cleanup
vranyj1
parents:
diff changeset
   328
    self assertFalse: (result isNil).
44e09ad4ae15 Text cleanup
vranyj1
parents:
diff changeset
   329
"0    ldc1 2 ['bar'] 
44e09ad4ae15 Text cleanup
vranyj1
parents:
diff changeset
   330
2    areturn "
44e09ad4ae15 Text cleanup
vranyj1
parents:
diff changeset
   331
44e09ad4ae15 Text cleanup
vranyj1
parents:
diff changeset
   332
    "Modified: / 16-03-2011 / 21:51:01 / Marcel Hlopko <hlopkmar@fel.cvut.cz>"
44e09ad4ae15 Text cleanup
vranyj1
parents:
diff changeset
   333
!
44e09ad4ae15 Text cleanup
vranyj1
parents:
diff changeset
   334
44e09ad4ae15 Text cleanup
vranyj1
parents:
diff changeset
   335
testPower
44e09ad4ae15 Text cleanup
vranyj1
parents:
diff changeset
   336
    | result  expResult |
44e09ad4ae15 Text cleanup
vranyj1
parents:
diff changeset
   337
44e09ad4ae15 Text cleanup
vranyj1
parents:
diff changeset
   338
    expResult := 1024.
44e09ad4ae15 Text cleanup
vranyj1
parents:
diff changeset
   339
    result := self 
44e09ad4ae15 Text cleanup
vranyj1
parents:
diff changeset
   340
                invoke: #'power(II)I'
44e09ad4ae15 Text cleanup
vranyj1
parents:
diff changeset
   341
                class: self loadSimpleMathJavaClass
44e09ad4ae15 Text cleanup
vranyj1
parents:
diff changeset
   342
                args: (Array with: 2 with: 10).
44e09ad4ae15 Text cleanup
vranyj1
parents:
diff changeset
   343
    self assertTrue: expResult = result.
44e09ad4ae15 Text cleanup
vranyj1
parents:
diff changeset
   344
"0    iload_0 
44e09ad4ae15 Text cleanup
vranyj1
parents:
diff changeset
   345
1    iload_1 
44e09ad4ae15 Text cleanup
vranyj1
parents:
diff changeset
   346
2    iconst_1 
44e09ad4ae15 Text cleanup
vranyj1
parents:
diff changeset
   347
3    invokestatic 2 [JavaMethod(stx.libjava.tests.simpleClasses.SimpleMath::int powerAcc (int int int))] 
44e09ad4ae15 Text cleanup
vranyj1
parents:
diff changeset
   348
6    ireturn "
44e09ad4ae15 Text cleanup
vranyj1
parents:
diff changeset
   349
44e09ad4ae15 Text cleanup
vranyj1
parents:
diff changeset
   350
    "Created: / 06-03-2011 / 14:18:03 / Marcel Hlopko <hlopkmar@fel.cvut.cz>"
44e09ad4ae15 Text cleanup
vranyj1
parents:
diff changeset
   351
    "Modified: / 16-03-2011 / 21:51:40 / Marcel Hlopko <hlopkmar@fel.cvut.cz>"
44e09ad4ae15 Text cleanup
vranyj1
parents:
diff changeset
   352
!
44e09ad4ae15 Text cleanup
vranyj1
parents:
diff changeset
   353
44e09ad4ae15 Text cleanup
vranyj1
parents:
diff changeset
   354
testReturnArrayOfLongs
44e09ad4ae15 Text cleanup
vranyj1
parents:
diff changeset
   355
    | result |
44e09ad4ae15 Text cleanup
vranyj1
parents:
diff changeset
   356
44e09ad4ae15 Text cleanup
vranyj1
parents:
diff changeset
   357
    self shouldnt: 
44e09ad4ae15 Text cleanup
vranyj1
parents:
diff changeset
   358
            [ result := self 
44e09ad4ae15 Text cleanup
vranyj1
parents:
diff changeset
   359
                        invoke: #'giveMeArrayOfLongs()[J'
44e09ad4ae15 Text cleanup
vranyj1
parents:
diff changeset
   360
                        class: self loadSimpleMathJavaClass
44e09ad4ae15 Text cleanup
vranyj1
parents:
diff changeset
   361
                        args: #(). ]
44e09ad4ae15 Text cleanup
vranyj1
parents:
diff changeset
   362
        raise: Error.
44e09ad4ae15 Text cleanup
vranyj1
parents:
diff changeset
   363
"0    bipush 100
44e09ad4ae15 Text cleanup
vranyj1
parents:
diff changeset
   364
2    newarray 11 [T_LONG]
44e09ad4ae15 Text cleanup
vranyj1
parents:
diff changeset
   365
4    areturn "
44e09ad4ae15 Text cleanup
vranyj1
parents:
diff changeset
   366
44e09ad4ae15 Text cleanup
vranyj1
parents:
diff changeset
   367
    "Created: / 14-03-2011 / 17:08:11 / Marcel Hlopko <hlopkmar@fel.cvut.cz>"
44e09ad4ae15 Text cleanup
vranyj1
parents:
diff changeset
   368
    "Modified: / 16-03-2011 / 21:52:03 / Marcel Hlopko <hlopkmar@fel.cvut.cz>"
44e09ad4ae15 Text cleanup
vranyj1
parents:
diff changeset
   369
!
44e09ad4ae15 Text cleanup
vranyj1
parents:
diff changeset
   370
44e09ad4ae15 Text cleanup
vranyj1
parents:
diff changeset
   371
testSetterAndGettersDouble
44e09ad4ae15 Text cleanup
vranyj1
parents:
diff changeset
   372
    | result  expResult  crate |
44e09ad4ae15 Text cleanup
vranyj1
parents:
diff changeset
   373
44e09ad4ae15 Text cleanup
vranyj1
parents:
diff changeset
   374
    crate := self loadCrateJavaClass new.
44e09ad4ae15 Text cleanup
vranyj1
parents:
diff changeset
   375
    expResult := 1234.45.
44e09ad4ae15 Text cleanup
vranyj1
parents:
diff changeset
   376
    self 
44e09ad4ae15 Text cleanup
vranyj1
parents:
diff changeset
   377
        invoke: #'setDoubleVar(D)V'
44e09ad4ae15 Text cleanup
vranyj1
parents:
diff changeset
   378
        class: crate class
44e09ad4ae15 Text cleanup
vranyj1
parents:
diff changeset
   379
        receiver: crate
44e09ad4ae15 Text cleanup
vranyj1
parents:
diff changeset
   380
        args: (Array with: 1234.45).
44e09ad4ae15 Text cleanup
vranyj1
parents:
diff changeset
   381
    result := self 
44e09ad4ae15 Text cleanup
vranyj1
parents:
diff changeset
   382
                invoke: #'getDoubleVar()D'
44e09ad4ae15 Text cleanup
vranyj1
parents:
diff changeset
   383
                class: crate class
44e09ad4ae15 Text cleanup
vranyj1
parents:
diff changeset
   384
                receiver: crate
44e09ad4ae15 Text cleanup
vranyj1
parents:
diff changeset
   385
                args: nil.
44e09ad4ae15 Text cleanup
vranyj1
parents:
diff changeset
   386
    self assert: (expResult = result).
44e09ad4ae15 Text cleanup
vranyj1
parents:
diff changeset
   387
44e09ad4ae15 Text cleanup
vranyj1
parents:
diff changeset
   388
    "setDoubleVar:
44e09ad4ae15 Text cleanup
vranyj1
parents:
diff changeset
   389
     0    aload_0
44e09ad4ae15 Text cleanup
vranyj1
parents:
diff changeset
   390
     1    dload_1
44e09ad4ae15 Text cleanup
vranyj1
parents:
diff changeset
   391
     2    putfield 3
44e09ad4ae15 Text cleanup
vranyj1
parents:
diff changeset
   392
     5    return
44e09ad4ae15 Text cleanup
vranyj1
parents:
diff changeset
   393
44e09ad4ae15 Text cleanup
vranyj1
parents:
diff changeset
   394
     getDoubleVar:
44e09ad4ae15 Text cleanup
vranyj1
parents:
diff changeset
   395
     0    aload_0
44e09ad4ae15 Text cleanup
vranyj1
parents:
diff changeset
   396
     1    getfield 3
44e09ad4ae15 Text cleanup
vranyj1
parents:
diff changeset
   397
     4    dreturn"
44e09ad4ae15 Text cleanup
vranyj1
parents:
diff changeset
   398
44e09ad4ae15 Text cleanup
vranyj1
parents:
diff changeset
   399
    "Created: / 13-03-2011 / 17:43:42 / Marcel Hlopko <hlopkmar@fel.cvut.cz>"
44e09ad4ae15 Text cleanup
vranyj1
parents:
diff changeset
   400
    "Modified: / 16-03-2011 / 21:54:05 / Marcel Hlopko <hlopkmar@fel.cvut.cz>"
44e09ad4ae15 Text cleanup
vranyj1
parents:
diff changeset
   401
!
44e09ad4ae15 Text cleanup
vranyj1
parents:
diff changeset
   402
44e09ad4ae15 Text cleanup
vranyj1
parents:
diff changeset
   403
testSetterAndGettersDoubleMaxValue
44e09ad4ae15 Text cleanup
vranyj1
parents:
diff changeset
   404
    | result  expResult  crate |
44e09ad4ae15 Text cleanup
vranyj1
parents:
diff changeset
   405
44e09ad4ae15 Text cleanup
vranyj1
parents:
diff changeset
   406
    crate := self loadCrateJavaClass new.
44e09ad4ae15 Text cleanup
vranyj1
parents:
diff changeset
   407
    expResult := 1.79769313486232E+308.
44e09ad4ae15 Text cleanup
vranyj1
parents:
diff changeset
   408
    self 
44e09ad4ae15 Text cleanup
vranyj1
parents:
diff changeset
   409
        invoke: #'setDoubleVar(D)V'
44e09ad4ae15 Text cleanup
vranyj1
parents:
diff changeset
   410
        class: crate class
44e09ad4ae15 Text cleanup
vranyj1
parents:
diff changeset
   411
        receiver: crate
44e09ad4ae15 Text cleanup
vranyj1
parents:
diff changeset
   412
        args: (Array with: 1.79769313486232E+308).
44e09ad4ae15 Text cleanup
vranyj1
parents:
diff changeset
   413
    result := self 
44e09ad4ae15 Text cleanup
vranyj1
parents:
diff changeset
   414
                invoke: #'getDoubleVar()D'
44e09ad4ae15 Text cleanup
vranyj1
parents:
diff changeset
   415
                class: crate class
44e09ad4ae15 Text cleanup
vranyj1
parents:
diff changeset
   416
                receiver: crate
44e09ad4ae15 Text cleanup
vranyj1
parents:
diff changeset
   417
                args: nil.
44e09ad4ae15 Text cleanup
vranyj1
parents:
diff changeset
   418
    self assert: (expResult = result).
44e09ad4ae15 Text cleanup
vranyj1
parents:
diff changeset
   419
44e09ad4ae15 Text cleanup
vranyj1
parents:
diff changeset
   420
    "setDoubleVar:
44e09ad4ae15 Text cleanup
vranyj1
parents:
diff changeset
   421
     0    aload_0
44e09ad4ae15 Text cleanup
vranyj1
parents:
diff changeset
   422
     1    dload_1
44e09ad4ae15 Text cleanup
vranyj1
parents:
diff changeset
   423
     2    putfield 3
44e09ad4ae15 Text cleanup
vranyj1
parents:
diff changeset
   424
     5    return
44e09ad4ae15 Text cleanup
vranyj1
parents:
diff changeset
   425
44e09ad4ae15 Text cleanup
vranyj1
parents:
diff changeset
   426
     getDoubleVar:
44e09ad4ae15 Text cleanup
vranyj1
parents:
diff changeset
   427
     0    aload_0
44e09ad4ae15 Text cleanup
vranyj1
parents:
diff changeset
   428
     1    getfield 3
44e09ad4ae15 Text cleanup
vranyj1
parents:
diff changeset
   429
     4    dreturn"
44e09ad4ae15 Text cleanup
vranyj1
parents:
diff changeset
   430
44e09ad4ae15 Text cleanup
vranyj1
parents:
diff changeset
   431
    "Created: / 14-03-2011 / 14:06:13 / Marcel Hlopko <hlopkmar@fel.cvut.cz>"
44e09ad4ae15 Text cleanup
vranyj1
parents:
diff changeset
   432
    "Modified: / 16-03-2011 / 21:53:59 / Marcel Hlopko <hlopkmar@fel.cvut.cz>"
44e09ad4ae15 Text cleanup
vranyj1
parents:
diff changeset
   433
!
44e09ad4ae15 Text cleanup
vranyj1
parents:
diff changeset
   434
44e09ad4ae15 Text cleanup
vranyj1
parents:
diff changeset
   435
testSetterAndGettersDoubleMinValue
44e09ad4ae15 Text cleanup
vranyj1
parents:
diff changeset
   436
    | result  expResult  crate |
44e09ad4ae15 Text cleanup
vranyj1
parents:
diff changeset
   437
44e09ad4ae15 Text cleanup
vranyj1
parents:
diff changeset
   438
    crate := self loadCrateJavaClass new.
44e09ad4ae15 Text cleanup
vranyj1
parents:
diff changeset
   439
    expResult := 4.94065645841247E-324.
44e09ad4ae15 Text cleanup
vranyj1
parents:
diff changeset
   440
    self 
44e09ad4ae15 Text cleanup
vranyj1
parents:
diff changeset
   441
        invoke: #'setDoubleVar(D)V'
44e09ad4ae15 Text cleanup
vranyj1
parents:
diff changeset
   442
        class: crate class
44e09ad4ae15 Text cleanup
vranyj1
parents:
diff changeset
   443
        receiver: crate
44e09ad4ae15 Text cleanup
vranyj1
parents:
diff changeset
   444
        args: (Array with: 4.94065645841247E-324).
44e09ad4ae15 Text cleanup
vranyj1
parents:
diff changeset
   445
    result := self 
44e09ad4ae15 Text cleanup
vranyj1
parents:
diff changeset
   446
                invoke: #'getDoubleVar()D'
44e09ad4ae15 Text cleanup
vranyj1
parents:
diff changeset
   447
                class: crate class
44e09ad4ae15 Text cleanup
vranyj1
parents:
diff changeset
   448
                receiver: crate
44e09ad4ae15 Text cleanup
vranyj1
parents:
diff changeset
   449
                args: nil.
44e09ad4ae15 Text cleanup
vranyj1
parents:
diff changeset
   450
    self assert: (expResult = result).
44e09ad4ae15 Text cleanup
vranyj1
parents:
diff changeset
   451
    "setDoubleVar:
44e09ad4ae15 Text cleanup
vranyj1
parents:
diff changeset
   452
     0    aload_0
44e09ad4ae15 Text cleanup
vranyj1
parents:
diff changeset
   453
     1    dload_1
44e09ad4ae15 Text cleanup
vranyj1
parents:
diff changeset
   454
     2    putfield 3
44e09ad4ae15 Text cleanup
vranyj1
parents:
diff changeset
   455
     5    return
44e09ad4ae15 Text cleanup
vranyj1
parents:
diff changeset
   456
44e09ad4ae15 Text cleanup
vranyj1
parents:
diff changeset
   457
     getDoubleVar:
44e09ad4ae15 Text cleanup
vranyj1
parents:
diff changeset
   458
     0    aload_0
44e09ad4ae15 Text cleanup
vranyj1
parents:
diff changeset
   459
     1    getfield 3
44e09ad4ae15 Text cleanup
vranyj1
parents:
diff changeset
   460
     4    dreturn"
44e09ad4ae15 Text cleanup
vranyj1
parents:
diff changeset
   461
44e09ad4ae15 Text cleanup
vranyj1
parents:
diff changeset
   462
    "Created: / 14-03-2011 / 14:06:36 / Marcel Hlopko <hlopkmar@fel.cvut.cz>"
44e09ad4ae15 Text cleanup
vranyj1
parents:
diff changeset
   463
    "Modified: / 16-03-2011 / 21:54:24 / Marcel Hlopko <hlopkmar@fel.cvut.cz>"
44e09ad4ae15 Text cleanup
vranyj1
parents:
diff changeset
   464
!
44e09ad4ae15 Text cleanup
vranyj1
parents:
diff changeset
   465
44e09ad4ae15 Text cleanup
vranyj1
parents:
diff changeset
   466
testSetterAndGettersDoubleNan
44e09ad4ae15 Text cleanup
vranyj1
parents:
diff changeset
   467
    | result  crate |
44e09ad4ae15 Text cleanup
vranyj1
parents:
diff changeset
   468
44e09ad4ae15 Text cleanup
vranyj1
parents:
diff changeset
   469
    crate := self loadCrateJavaClass new.
44e09ad4ae15 Text cleanup
vranyj1
parents:
diff changeset
   470
    self 
44e09ad4ae15 Text cleanup
vranyj1
parents:
diff changeset
   471
        invoke: #'setDoubleVar(D)V'
44e09ad4ae15 Text cleanup
vranyj1
parents:
diff changeset
   472
        class: crate class
44e09ad4ae15 Text cleanup
vranyj1
parents:
diff changeset
   473
        receiver: crate
44e09ad4ae15 Text cleanup
vranyj1
parents:
diff changeset
   474
        args: (Array with: Float nan).
44e09ad4ae15 Text cleanup
vranyj1
parents:
diff changeset
   475
    result := self 
44e09ad4ae15 Text cleanup
vranyj1
parents:
diff changeset
   476
                invoke: #'getDoubleVar()D'
44e09ad4ae15 Text cleanup
vranyj1
parents:
diff changeset
   477
                class: crate class
44e09ad4ae15 Text cleanup
vranyj1
parents:
diff changeset
   478
                receiver: crate
44e09ad4ae15 Text cleanup
vranyj1
parents:
diff changeset
   479
                args: nil.
44e09ad4ae15 Text cleanup
vranyj1
parents:
diff changeset
   480
    self assert: (result isNaN).
44e09ad4ae15 Text cleanup
vranyj1
parents:
diff changeset
   481
    "setDoubleVar:
44e09ad4ae15 Text cleanup
vranyj1
parents:
diff changeset
   482
     0    aload_0
44e09ad4ae15 Text cleanup
vranyj1
parents:
diff changeset
   483
     1    dload_1
44e09ad4ae15 Text cleanup
vranyj1
parents:
diff changeset
   484
     2    putfield 3
44e09ad4ae15 Text cleanup
vranyj1
parents:
diff changeset
   485
     5    return
44e09ad4ae15 Text cleanup
vranyj1
parents:
diff changeset
   486
44e09ad4ae15 Text cleanup
vranyj1
parents:
diff changeset
   487
     getDoubleVar:
44e09ad4ae15 Text cleanup
vranyj1
parents:
diff changeset
   488
     0    aload_0
44e09ad4ae15 Text cleanup
vranyj1
parents:
diff changeset
   489
     1    getfield 3
44e09ad4ae15 Text cleanup
vranyj1
parents:
diff changeset
   490
     4    dreturn"
44e09ad4ae15 Text cleanup
vranyj1
parents:
diff changeset
   491
44e09ad4ae15 Text cleanup
vranyj1
parents:
diff changeset
   492
    "Created: / 14-03-2011 / 14:07:26 / Marcel Hlopko <hlopkmar@fel.cvut.cz>"
44e09ad4ae15 Text cleanup
vranyj1
parents:
diff changeset
   493
    "Modified: / 16-03-2011 / 21:54:27 / Marcel Hlopko <hlopkmar@fel.cvut.cz>"
44e09ad4ae15 Text cleanup
vranyj1
parents:
diff changeset
   494
!
44e09ad4ae15 Text cleanup
vranyj1
parents:
diff changeset
   495
44e09ad4ae15 Text cleanup
vranyj1
parents:
diff changeset
   496
testSetterAndGettersDoubleWithInfinityArg
44e09ad4ae15 Text cleanup
vranyj1
parents:
diff changeset
   497
    | result  expResult  crate |
44e09ad4ae15 Text cleanup
vranyj1
parents:
diff changeset
   498
44e09ad4ae15 Text cleanup
vranyj1
parents:
diff changeset
   499
    crate := self loadCrateJavaClass new.
44e09ad4ae15 Text cleanup
vranyj1
parents:
diff changeset
   500
    expResult := Float infinity.
44e09ad4ae15 Text cleanup
vranyj1
parents:
diff changeset
   501
    self 
44e09ad4ae15 Text cleanup
vranyj1
parents:
diff changeset
   502
        invoke: #'setDoubleVar(D)V'
44e09ad4ae15 Text cleanup
vranyj1
parents:
diff changeset
   503
        class: crate class
44e09ad4ae15 Text cleanup
vranyj1
parents:
diff changeset
   504
        receiver: crate
44e09ad4ae15 Text cleanup
vranyj1
parents:
diff changeset
   505
        args: (Array with: Float infinity).
44e09ad4ae15 Text cleanup
vranyj1
parents:
diff changeset
   506
    result := self 
44e09ad4ae15 Text cleanup
vranyj1
parents:
diff changeset
   507
                invoke: #'getDoubleVar()D'
44e09ad4ae15 Text cleanup
vranyj1
parents:
diff changeset
   508
                class: crate class
44e09ad4ae15 Text cleanup
vranyj1
parents:
diff changeset
   509
                receiver: crate
44e09ad4ae15 Text cleanup
vranyj1
parents:
diff changeset
   510
                args: nil.
44e09ad4ae15 Text cleanup
vranyj1
parents:
diff changeset
   511
    self assert: (expResult = result).
44e09ad4ae15 Text cleanup
vranyj1
parents:
diff changeset
   512
    "setDoubleVar:
44e09ad4ae15 Text cleanup
vranyj1
parents:
diff changeset
   513
     0    aload_0
44e09ad4ae15 Text cleanup
vranyj1
parents:
diff changeset
   514
     1    dload_1
44e09ad4ae15 Text cleanup
vranyj1
parents:
diff changeset
   515
     2    putfield 3
44e09ad4ae15 Text cleanup
vranyj1
parents:
diff changeset
   516
     5    return
44e09ad4ae15 Text cleanup
vranyj1
parents:
diff changeset
   517
44e09ad4ae15 Text cleanup
vranyj1
parents:
diff changeset
   518
     getDoubleVar:
44e09ad4ae15 Text cleanup
vranyj1
parents:
diff changeset
   519
     0    aload_0
44e09ad4ae15 Text cleanup
vranyj1
parents:
diff changeset
   520
     1    getfield 3
44e09ad4ae15 Text cleanup
vranyj1
parents:
diff changeset
   521
     4    dreturn"
44e09ad4ae15 Text cleanup
vranyj1
parents:
diff changeset
   522
44e09ad4ae15 Text cleanup
vranyj1
parents:
diff changeset
   523
    "Created: / 14-03-2011 / 13:52:57 / Marcel Hlopko <hlopkmar@fel.cvut.cz>"
44e09ad4ae15 Text cleanup
vranyj1
parents:
diff changeset
   524
    "Modified: / 16-03-2011 / 21:54:32 / Marcel Hlopko <hlopkmar@fel.cvut.cz>"
44e09ad4ae15 Text cleanup
vranyj1
parents:
diff changeset
   525
!
44e09ad4ae15 Text cleanup
vranyj1
parents:
diff changeset
   526
44e09ad4ae15 Text cleanup
vranyj1
parents:
diff changeset
   527
testSetterAndGettersDoubleWithNegativeInfinityArg
44e09ad4ae15 Text cleanup
vranyj1
parents:
diff changeset
   528
    | result  expResult  crate |
44e09ad4ae15 Text cleanup
vranyj1
parents:
diff changeset
   529
44e09ad4ae15 Text cleanup
vranyj1
parents:
diff changeset
   530
    crate := self loadCrateJavaClass new.
44e09ad4ae15 Text cleanup
vranyj1
parents:
diff changeset
   531
    expResult := Float negativeInfinity.
44e09ad4ae15 Text cleanup
vranyj1
parents:
diff changeset
   532
    self 
44e09ad4ae15 Text cleanup
vranyj1
parents:
diff changeset
   533
        invoke: #'setDoubleVar(D)V'
44e09ad4ae15 Text cleanup
vranyj1
parents:
diff changeset
   534
        class: crate class
44e09ad4ae15 Text cleanup
vranyj1
parents:
diff changeset
   535
        receiver: crate
44e09ad4ae15 Text cleanup
vranyj1
parents:
diff changeset
   536
        args: (Array with: Float negativeInfinity).
44e09ad4ae15 Text cleanup
vranyj1
parents:
diff changeset
   537
    result := self 
44e09ad4ae15 Text cleanup
vranyj1
parents:
diff changeset
   538
                invoke: #'getDoubleVar()D'
44e09ad4ae15 Text cleanup
vranyj1
parents:
diff changeset
   539
                class: crate class
44e09ad4ae15 Text cleanup
vranyj1
parents:
diff changeset
   540
                receiver: crate
44e09ad4ae15 Text cleanup
vranyj1
parents:
diff changeset
   541
                args: nil.
44e09ad4ae15 Text cleanup
vranyj1
parents:
diff changeset
   542
    self assert: (expResult = result).
44e09ad4ae15 Text cleanup
vranyj1
parents:
diff changeset
   543
    "setDoubleVar:
44e09ad4ae15 Text cleanup
vranyj1
parents:
diff changeset
   544
     0    aload_0
44e09ad4ae15 Text cleanup
vranyj1
parents:
diff changeset
   545
     1    dload_1
44e09ad4ae15 Text cleanup
vranyj1
parents:
diff changeset
   546
     2    putfield 3
44e09ad4ae15 Text cleanup
vranyj1
parents:
diff changeset
   547
     5    return
44e09ad4ae15 Text cleanup
vranyj1
parents:
diff changeset
   548
44e09ad4ae15 Text cleanup
vranyj1
parents:
diff changeset
   549
     getDoubleVar:
44e09ad4ae15 Text cleanup
vranyj1
parents:
diff changeset
   550
     0    aload_0
44e09ad4ae15 Text cleanup
vranyj1
parents:
diff changeset
   551
     1    getfield 3
44e09ad4ae15 Text cleanup
vranyj1
parents:
diff changeset
   552
     4    dreturn"
44e09ad4ae15 Text cleanup
vranyj1
parents:
diff changeset
   553
44e09ad4ae15 Text cleanup
vranyj1
parents:
diff changeset
   554
    "Created: / 14-03-2011 / 13:53:20 / Marcel Hlopko <hlopkmar@fel.cvut.cz>"
44e09ad4ae15 Text cleanup
vranyj1
parents:
diff changeset
   555
    "Modified: / 16-03-2011 / 21:54:40 / Marcel Hlopko <hlopkmar@fel.cvut.cz>"
44e09ad4ae15 Text cleanup
vranyj1
parents:
diff changeset
   556
!
44e09ad4ae15 Text cleanup
vranyj1
parents:
diff changeset
   557
44e09ad4ae15 Text cleanup
vranyj1
parents:
diff changeset
   558
testSetterAndGettersInt
44e09ad4ae15 Text cleanup
vranyj1
parents:
diff changeset
   559
    | result  expResult  crate |
44e09ad4ae15 Text cleanup
vranyj1
parents:
diff changeset
   560
44e09ad4ae15 Text cleanup
vranyj1
parents:
diff changeset
   561
    crate := self loadCrateJavaClass new.
44e09ad4ae15 Text cleanup
vranyj1
parents:
diff changeset
   562
    expResult := 1234.
44e09ad4ae15 Text cleanup
vranyj1
parents:
diff changeset
   563
    self 
44e09ad4ae15 Text cleanup
vranyj1
parents:
diff changeset
   564
        invoke: #'setIntVar(I)V'
44e09ad4ae15 Text cleanup
vranyj1
parents:
diff changeset
   565
        class: crate class
44e09ad4ae15 Text cleanup
vranyj1
parents:
diff changeset
   566
        receiver: crate
44e09ad4ae15 Text cleanup
vranyj1
parents:
diff changeset
   567
        args: (Array with: 1234).
44e09ad4ae15 Text cleanup
vranyj1
parents:
diff changeset
   568
    result := self 
44e09ad4ae15 Text cleanup
vranyj1
parents:
diff changeset
   569
                invoke: #'getIntVar()I'
44e09ad4ae15 Text cleanup
vranyj1
parents:
diff changeset
   570
                class: crate class
44e09ad4ae15 Text cleanup
vranyj1
parents:
diff changeset
   571
                receiver: crate
44e09ad4ae15 Text cleanup
vranyj1
parents:
diff changeset
   572
                args: nil.
44e09ad4ae15 Text cleanup
vranyj1
parents:
diff changeset
   573
    self assert: (expResult = result).
44e09ad4ae15 Text cleanup
vranyj1
parents:
diff changeset
   574
    "setIntVar:
44e09ad4ae15 Text cleanup
vranyj1
parents:
diff changeset
   575
     0    aload_0 
44e09ad4ae15 Text cleanup
vranyj1
parents:
diff changeset
   576
     1    iload_1 
44e09ad4ae15 Text cleanup
vranyj1
parents:
diff changeset
   577
     2    putfield 2 [JavaFieldRef (stx.libjava.tests.simpleClasses.Crate 'intVar'I offs=1)] 
44e09ad4ae15 Text cleanup
vranyj1
parents:
diff changeset
   578
     5    return 
44e09ad4ae15 Text cleanup
vranyj1
parents:
diff changeset
   579
44e09ad4ae15 Text cleanup
vranyj1
parents:
diff changeset
   580
     getIntVar:
44e09ad4ae15 Text cleanup
vranyj1
parents:
diff changeset
   581
     0    aload_0 
44e09ad4ae15 Text cleanup
vranyj1
parents:
diff changeset
   582
     1    getfield 2 [JavaFieldRef (stx.libjava.tests.simpleClasses.Crate 'intVar'I offs=1)] 
44e09ad4ae15 Text cleanup
vranyj1
parents:
diff changeset
   583
     4    ireturn"
44e09ad4ae15 Text cleanup
vranyj1
parents:
diff changeset
   584
44e09ad4ae15 Text cleanup
vranyj1
parents:
diff changeset
   585
    "Created: / 13-03-2011 / 17:42:39 / Marcel Hlopko <hlopkmar@fel.cvut.cz>"
44e09ad4ae15 Text cleanup
vranyj1
parents:
diff changeset
   586
    "Modified: / 16-03-2011 / 21:55:34 / Marcel Hlopko <hlopkmar@fel.cvut.cz>"
44e09ad4ae15 Text cleanup
vranyj1
parents:
diff changeset
   587
!
44e09ad4ae15 Text cleanup
vranyj1
parents:
diff changeset
   588
44e09ad4ae15 Text cleanup
vranyj1
parents:
diff changeset
   589
testSetterAndGettersIntMaxValue
44e09ad4ae15 Text cleanup
vranyj1
parents:
diff changeset
   590
    | result  expResult  crate |
44e09ad4ae15 Text cleanup
vranyj1
parents:
diff changeset
   591
44e09ad4ae15 Text cleanup
vranyj1
parents:
diff changeset
   592
    crate := self loadCrateJavaClass new.
44e09ad4ae15 Text cleanup
vranyj1
parents:
diff changeset
   593
    expResult := 2147483647.
44e09ad4ae15 Text cleanup
vranyj1
parents:
diff changeset
   594
    self 
44e09ad4ae15 Text cleanup
vranyj1
parents:
diff changeset
   595
        invoke: #'setIntVar(I)V'
44e09ad4ae15 Text cleanup
vranyj1
parents:
diff changeset
   596
        class: crate class
44e09ad4ae15 Text cleanup
vranyj1
parents:
diff changeset
   597
        receiver: crate
44e09ad4ae15 Text cleanup
vranyj1
parents:
diff changeset
   598
        args: (Array with: 2147483647).
44e09ad4ae15 Text cleanup
vranyj1
parents:
diff changeset
   599
    result := self 
44e09ad4ae15 Text cleanup
vranyj1
parents:
diff changeset
   600
                invoke: #'getIntVar()I'
44e09ad4ae15 Text cleanup
vranyj1
parents:
diff changeset
   601
                class: crate class
44e09ad4ae15 Text cleanup
vranyj1
parents:
diff changeset
   602
                receiver: crate
44e09ad4ae15 Text cleanup
vranyj1
parents:
diff changeset
   603
                args: nil.
44e09ad4ae15 Text cleanup
vranyj1
parents:
diff changeset
   604
    self assert: (expResult = result).
44e09ad4ae15 Text cleanup
vranyj1
parents:
diff changeset
   605
    "setIntVar:
44e09ad4ae15 Text cleanup
vranyj1
parents:
diff changeset
   606
     0    aload_0 
44e09ad4ae15 Text cleanup
vranyj1
parents:
diff changeset
   607
     1    iload_1 
44e09ad4ae15 Text cleanup
vranyj1
parents:
diff changeset
   608
     2    putfield 2 [JavaFieldRef (stx.libjava.tests.simpleClasses.Crate 'intVar'I offs=1)] 
44e09ad4ae15 Text cleanup
vranyj1
parents:
diff changeset
   609
     5    return 
44e09ad4ae15 Text cleanup
vranyj1
parents:
diff changeset
   610
44e09ad4ae15 Text cleanup
vranyj1
parents:
diff changeset
   611
     getIntVar:
44e09ad4ae15 Text cleanup
vranyj1
parents:
diff changeset
   612
     0    aload_0 
44e09ad4ae15 Text cleanup
vranyj1
parents:
diff changeset
   613
     1    getfield 2 [JavaFieldRef (stx.libjava.tests.simpleClasses.Crate 'intVar'I offs=1)] 
44e09ad4ae15 Text cleanup
vranyj1
parents:
diff changeset
   614
     4    ireturn"
44e09ad4ae15 Text cleanup
vranyj1
parents:
diff changeset
   615
44e09ad4ae15 Text cleanup
vranyj1
parents:
diff changeset
   616
    "Created: / 14-03-2011 / 14:02:07 / Marcel Hlopko <hlopkmar@fel.cvut.cz>"
44e09ad4ae15 Text cleanup
vranyj1
parents:
diff changeset
   617
    "Modified: / 16-03-2011 / 21:55:37 / Marcel Hlopko <hlopkmar@fel.cvut.cz>"
44e09ad4ae15 Text cleanup
vranyj1
parents:
diff changeset
   618
!
44e09ad4ae15 Text cleanup
vranyj1
parents:
diff changeset
   619
44e09ad4ae15 Text cleanup
vranyj1
parents:
diff changeset
   620
testSetterAndGettersIntMinValue
44e09ad4ae15 Text cleanup
vranyj1
parents:
diff changeset
   621
    | result  expResult  crate |
44e09ad4ae15 Text cleanup
vranyj1
parents:
diff changeset
   622
44e09ad4ae15 Text cleanup
vranyj1
parents:
diff changeset
   623
    crate := self loadCrateJavaClass new.
44e09ad4ae15 Text cleanup
vranyj1
parents:
diff changeset
   624
    expResult := -2147483648.
44e09ad4ae15 Text cleanup
vranyj1
parents:
diff changeset
   625
    self 
44e09ad4ae15 Text cleanup
vranyj1
parents:
diff changeset
   626
        invoke: #'setIntVar(I)V'
44e09ad4ae15 Text cleanup
vranyj1
parents:
diff changeset
   627
        class: crate class
44e09ad4ae15 Text cleanup
vranyj1
parents:
diff changeset
   628
        receiver: crate
44e09ad4ae15 Text cleanup
vranyj1
parents:
diff changeset
   629
        args: (Array with: -2147483648).
44e09ad4ae15 Text cleanup
vranyj1
parents:
diff changeset
   630
    result := self 
44e09ad4ae15 Text cleanup
vranyj1
parents:
diff changeset
   631
                invoke: #'getIntVar()I'
44e09ad4ae15 Text cleanup
vranyj1
parents:
diff changeset
   632
                class: crate class
44e09ad4ae15 Text cleanup
vranyj1
parents:
diff changeset
   633
                receiver: crate
44e09ad4ae15 Text cleanup
vranyj1
parents:
diff changeset
   634
                args: nil.
44e09ad4ae15 Text cleanup
vranyj1
parents:
diff changeset
   635
    self assert: (expResult = result).
44e09ad4ae15 Text cleanup
vranyj1
parents:
diff changeset
   636
    "setIntVar:
44e09ad4ae15 Text cleanup
vranyj1
parents:
diff changeset
   637
     0    aload_0 
44e09ad4ae15 Text cleanup
vranyj1
parents:
diff changeset
   638
     1    iload_1 
44e09ad4ae15 Text cleanup
vranyj1
parents:
diff changeset
   639
     2    putfield 2 [JavaFieldRef (stx.libjava.tests.simpleClasses.Crate 'intVar'I offs=1)] 
44e09ad4ae15 Text cleanup
vranyj1
parents:
diff changeset
   640
     5    return 
44e09ad4ae15 Text cleanup
vranyj1
parents:
diff changeset
   641
44e09ad4ae15 Text cleanup
vranyj1
parents:
diff changeset
   642
     getIntVar:
44e09ad4ae15 Text cleanup
vranyj1
parents:
diff changeset
   643
     0    aload_0 
44e09ad4ae15 Text cleanup
vranyj1
parents:
diff changeset
   644
     1    getfield 2 [JavaFieldRef (stx.libjava.tests.simpleClasses.Crate 'intVar'I offs=1)] 
44e09ad4ae15 Text cleanup
vranyj1
parents:
diff changeset
   645
     4    ireturn"
44e09ad4ae15 Text cleanup
vranyj1
parents:
diff changeset
   646
44e09ad4ae15 Text cleanup
vranyj1
parents:
diff changeset
   647
    "Created: / 14-03-2011 / 14:01:45 / Marcel Hlopko <hlopkmar@fel.cvut.cz>"
44e09ad4ae15 Text cleanup
vranyj1
parents:
diff changeset
   648
    "Modified: / 16-03-2011 / 21:55:41 / Marcel Hlopko <hlopkmar@fel.cvut.cz>"
44e09ad4ae15 Text cleanup
vranyj1
parents:
diff changeset
   649
!
44e09ad4ae15 Text cleanup
vranyj1
parents:
diff changeset
   650
44e09ad4ae15 Text cleanup
vranyj1
parents:
diff changeset
   651
testSetterAndGettersLong
44e09ad4ae15 Text cleanup
vranyj1
parents:
diff changeset
   652
    | result  expResult  crate |
44e09ad4ae15 Text cleanup
vranyj1
parents:
diff changeset
   653
44e09ad4ae15 Text cleanup
vranyj1
parents:
diff changeset
   654
    crate := self loadCrateJavaClass new.
44e09ad4ae15 Text cleanup
vranyj1
parents:
diff changeset
   655
    expResult := 1234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890.
44e09ad4ae15 Text cleanup
vranyj1
parents:
diff changeset
   656
    self 
44e09ad4ae15 Text cleanup
vranyj1
parents:
diff changeset
   657
        invoke: #'setLongVar(J)V'
44e09ad4ae15 Text cleanup
vranyj1
parents:
diff changeset
   658
        class: crate class
44e09ad4ae15 Text cleanup
vranyj1
parents:
diff changeset
   659
        receiver: crate
44e09ad4ae15 Text cleanup
vranyj1
parents:
diff changeset
   660
        args: (Array 
44e09ad4ae15 Text cleanup
vranyj1
parents:
diff changeset
   661
                with: 1234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890).
44e09ad4ae15 Text cleanup
vranyj1
parents:
diff changeset
   662
    result := self 
44e09ad4ae15 Text cleanup
vranyj1
parents:
diff changeset
   663
                invoke: #'getLongVar()J'
44e09ad4ae15 Text cleanup
vranyj1
parents:
diff changeset
   664
                class: crate class
44e09ad4ae15 Text cleanup
vranyj1
parents:
diff changeset
   665
                receiver: crate
44e09ad4ae15 Text cleanup
vranyj1
parents:
diff changeset
   666
                args: nil.
44e09ad4ae15 Text cleanup
vranyj1
parents:
diff changeset
   667
    self assert: (expResult = result).
44e09ad4ae15 Text cleanup
vranyj1
parents:
diff changeset
   668
44e09ad4ae15 Text cleanup
vranyj1
parents:
diff changeset
   669
    "setLongVar:
44e09ad4ae15 Text cleanup
vranyj1
parents:
diff changeset
   670
     0    aload_0
44e09ad4ae15 Text cleanup
vranyj1
parents:
diff changeset
   671
     1    lload_1
44e09ad4ae15 Text cleanup
vranyj1
parents:
diff changeset
   672
     2    putfield 4 [JavaFieldRef (stx.libjava.tests.simpleClasses.Crate 'longVar'J offs=3)]
44e09ad4ae15 Text cleanup
vranyj1
parents:
diff changeset
   673
     5    return
44e09ad4ae15 Text cleanup
vranyj1
parents:
diff changeset
   674
44e09ad4ae15 Text cleanup
vranyj1
parents:
diff changeset
   675
     getLongVar:
44e09ad4ae15 Text cleanup
vranyj1
parents:
diff changeset
   676
     0    aload_0
44e09ad4ae15 Text cleanup
vranyj1
parents:
diff changeset
   677
     1    getfield 4 [JavaFieldRef (stx.libjava.tests.simpleClasses.Crate 'longVar'J offs=3)] 
44e09ad4ae15 Text cleanup
vranyj1
parents:
diff changeset
   678
     4    lreturn"
44e09ad4ae15 Text cleanup
vranyj1
parents:
diff changeset
   679
44e09ad4ae15 Text cleanup
vranyj1
parents:
diff changeset
   680
    "Created: / 14-03-2011 / 13:36:51 / Marcel Hlopko <hlopkmar@fel.cvut.cz>"
44e09ad4ae15 Text cleanup
vranyj1
parents:
diff changeset
   681
    "Modified: / 16-03-2011 / 21:56:38 / Marcel Hlopko <hlopkmar@fel.cvut.cz>"
44e09ad4ae15 Text cleanup
vranyj1
parents:
diff changeset
   682
!
44e09ad4ae15 Text cleanup
vranyj1
parents:
diff changeset
   683
44e09ad4ae15 Text cleanup
vranyj1
parents:
diff changeset
   684
testSetterAndGettersLongMaxValue
44e09ad4ae15 Text cleanup
vranyj1
parents:
diff changeset
   685
    | result  expResult  crate |
44e09ad4ae15 Text cleanup
vranyj1
parents:
diff changeset
   686
44e09ad4ae15 Text cleanup
vranyj1
parents:
diff changeset
   687
    crate := self loadCrateJavaClass new.
44e09ad4ae15 Text cleanup
vranyj1
parents:
diff changeset
   688
    expResult := 9223372036854775807.
44e09ad4ae15 Text cleanup
vranyj1
parents:
diff changeset
   689
    self 
44e09ad4ae15 Text cleanup
vranyj1
parents:
diff changeset
   690
        invoke: #'setLongVar(J)V'
44e09ad4ae15 Text cleanup
vranyj1
parents:
diff changeset
   691
        class: crate class
44e09ad4ae15 Text cleanup
vranyj1
parents:
diff changeset
   692
        receiver: crate
44e09ad4ae15 Text cleanup
vranyj1
parents:
diff changeset
   693
        args: (Array with: 9223372036854775807).
44e09ad4ae15 Text cleanup
vranyj1
parents:
diff changeset
   694
    result := self 
44e09ad4ae15 Text cleanup
vranyj1
parents:
diff changeset
   695
                invoke: #'getLongVar()J'
44e09ad4ae15 Text cleanup
vranyj1
parents:
diff changeset
   696
                class: crate class
44e09ad4ae15 Text cleanup
vranyj1
parents:
diff changeset
   697
                receiver: crate
44e09ad4ae15 Text cleanup
vranyj1
parents:
diff changeset
   698
                args: nil.
44e09ad4ae15 Text cleanup
vranyj1
parents:
diff changeset
   699
    self assert: (expResult = result).
44e09ad4ae15 Text cleanup
vranyj1
parents:
diff changeset
   700
    "setLongVar:
44e09ad4ae15 Text cleanup
vranyj1
parents:
diff changeset
   701
     0    aload_0
44e09ad4ae15 Text cleanup
vranyj1
parents:
diff changeset
   702
     1    lload_1
44e09ad4ae15 Text cleanup
vranyj1
parents:
diff changeset
   703
     2    putfield 4 [JavaFieldRef (stx.libjava.tests.simpleClasses.Crate 'longVar'J offs=3)]
44e09ad4ae15 Text cleanup
vranyj1
parents:
diff changeset
   704
     5    return
44e09ad4ae15 Text cleanup
vranyj1
parents:
diff changeset
   705
44e09ad4ae15 Text cleanup
vranyj1
parents:
diff changeset
   706
     getLongVar:
44e09ad4ae15 Text cleanup
vranyj1
parents:
diff changeset
   707
     0    aload_0
44e09ad4ae15 Text cleanup
vranyj1
parents:
diff changeset
   708
     1    getfield 4 [JavaFieldRef (stx.libjava.tests.simpleClasses.Crate 'longVar'J offs=3)]
44e09ad4ae15 Text cleanup
vranyj1
parents:
diff changeset
   709
     4    lreturn"
44e09ad4ae15 Text cleanup
vranyj1
parents:
diff changeset
   710
44e09ad4ae15 Text cleanup
vranyj1
parents:
diff changeset
   711
    "Created: / 14-03-2011 / 14:04:53 / Marcel Hlopko <hlopkmar@fel.cvut.cz>"
44e09ad4ae15 Text cleanup
vranyj1
parents:
diff changeset
   712
    "Modified: / 16-03-2011 / 21:56:50 / Marcel Hlopko <hlopkmar@fel.cvut.cz>"
44e09ad4ae15 Text cleanup
vranyj1
parents:
diff changeset
   713
!
44e09ad4ae15 Text cleanup
vranyj1
parents:
diff changeset
   714
44e09ad4ae15 Text cleanup
vranyj1
parents:
diff changeset
   715
testSetterAndGettersLongMinValue
44e09ad4ae15 Text cleanup
vranyj1
parents:
diff changeset
   716
    | result  expResult  crate |
44e09ad4ae15 Text cleanup
vranyj1
parents:
diff changeset
   717
44e09ad4ae15 Text cleanup
vranyj1
parents:
diff changeset
   718
    crate := self loadCrateJavaClass new.
44e09ad4ae15 Text cleanup
vranyj1
parents:
diff changeset
   719
    expResult := -9223372036854775808.
44e09ad4ae15 Text cleanup
vranyj1
parents:
diff changeset
   720
    self 
44e09ad4ae15 Text cleanup
vranyj1
parents:
diff changeset
   721
        invoke: #'setLongVar(J)V'
44e09ad4ae15 Text cleanup
vranyj1
parents:
diff changeset
   722
        class: crate class
44e09ad4ae15 Text cleanup
vranyj1
parents:
diff changeset
   723
        receiver: crate
44e09ad4ae15 Text cleanup
vranyj1
parents:
diff changeset
   724
        args: (Array with: -9223372036854775808).
44e09ad4ae15 Text cleanup
vranyj1
parents:
diff changeset
   725
    result := self 
44e09ad4ae15 Text cleanup
vranyj1
parents:
diff changeset
   726
                invoke: #'getLongVar()J'
44e09ad4ae15 Text cleanup
vranyj1
parents:
diff changeset
   727
                class: crate class
44e09ad4ae15 Text cleanup
vranyj1
parents:
diff changeset
   728
                receiver: crate
44e09ad4ae15 Text cleanup
vranyj1
parents:
diff changeset
   729
                args: nil.
44e09ad4ae15 Text cleanup
vranyj1
parents:
diff changeset
   730
    self assert: (expResult = result).
44e09ad4ae15 Text cleanup
vranyj1
parents:
diff changeset
   731
    "setLongVar:
44e09ad4ae15 Text cleanup
vranyj1
parents:
diff changeset
   732
     0    aload_0
44e09ad4ae15 Text cleanup
vranyj1
parents:
diff changeset
   733
     1    lload_1
44e09ad4ae15 Text cleanup
vranyj1
parents:
diff changeset
   734
     2    putfield 4 [JavaFieldRef (stx.libjava.tests.simpleClasses.Crate 'longVar'J offs=3)]
44e09ad4ae15 Text cleanup
vranyj1
parents:
diff changeset
   735
     5    return
44e09ad4ae15 Text cleanup
vranyj1
parents:
diff changeset
   736
44e09ad4ae15 Text cleanup
vranyj1
parents:
diff changeset
   737
     getLongVar:
44e09ad4ae15 Text cleanup
vranyj1
parents:
diff changeset
   738
     0    aload_0
44e09ad4ae15 Text cleanup
vranyj1
parents:
diff changeset
   739
     1    getfield 4 [JavaFieldRef (stx.libjava.tests.simpleClasses.Crate 'longVar'J offs=3)]
44e09ad4ae15 Text cleanup
vranyj1
parents:
diff changeset
   740
     4    lreturn"
44e09ad4ae15 Text cleanup
vranyj1
parents:
diff changeset
   741
44e09ad4ae15 Text cleanup
vranyj1
parents:
diff changeset
   742
    "Created: / 14-03-2011 / 14:04:07 / Marcel Hlopko <hlopkmar@fel.cvut.cz>"
44e09ad4ae15 Text cleanup
vranyj1
parents:
diff changeset
   743
    "Modified: / 16-03-2011 / 21:56:52 / Marcel Hlopko <hlopkmar@fel.cvut.cz>"
44e09ad4ae15 Text cleanup
vranyj1
parents:
diff changeset
   744
!
44e09ad4ae15 Text cleanup
vranyj1
parents:
diff changeset
   745
44e09ad4ae15 Text cleanup
vranyj1
parents:
diff changeset
   746
testSetterAndGettersLongWithIntArg
44e09ad4ae15 Text cleanup
vranyj1
parents:
diff changeset
   747
    | result  expResult  crate |
44e09ad4ae15 Text cleanup
vranyj1
parents:
diff changeset
   748
44e09ad4ae15 Text cleanup
vranyj1
parents:
diff changeset
   749
    crate := self loadCrateJavaClass new.
44e09ad4ae15 Text cleanup
vranyj1
parents:
diff changeset
   750
    expResult := 12.
44e09ad4ae15 Text cleanup
vranyj1
parents:
diff changeset
   751
    self 
44e09ad4ae15 Text cleanup
vranyj1
parents:
diff changeset
   752
        invoke: #'setLongVar(J)V'
44e09ad4ae15 Text cleanup
vranyj1
parents:
diff changeset
   753
        class: crate class
44e09ad4ae15 Text cleanup
vranyj1
parents:
diff changeset
   754
        receiver: crate
44e09ad4ae15 Text cleanup
vranyj1
parents:
diff changeset
   755
        args: (Array with: 12).
44e09ad4ae15 Text cleanup
vranyj1
parents:
diff changeset
   756
    result := self 
44e09ad4ae15 Text cleanup
vranyj1
parents:
diff changeset
   757
                invoke: #'getLongVar()J'
44e09ad4ae15 Text cleanup
vranyj1
parents:
diff changeset
   758
                class: crate class
44e09ad4ae15 Text cleanup
vranyj1
parents:
diff changeset
   759
                receiver: crate
44e09ad4ae15 Text cleanup
vranyj1
parents:
diff changeset
   760
                args: nil.
44e09ad4ae15 Text cleanup
vranyj1
parents:
diff changeset
   761
    self assert: (expResult = result).
44e09ad4ae15 Text cleanup
vranyj1
parents:
diff changeset
   762
    "setLongVar:
44e09ad4ae15 Text cleanup
vranyj1
parents:
diff changeset
   763
     0    aload_0
44e09ad4ae15 Text cleanup
vranyj1
parents:
diff changeset
   764
     1    lload_1
44e09ad4ae15 Text cleanup
vranyj1
parents:
diff changeset
   765
     2    putfield 4 [JavaFieldRef (stx.libjava.tests.simpleClasses.Crate 'longVar'J offs=3)]
44e09ad4ae15 Text cleanup
vranyj1
parents:
diff changeset
   766
     5    return
44e09ad4ae15 Text cleanup
vranyj1
parents:
diff changeset
   767
44e09ad4ae15 Text cleanup
vranyj1
parents:
diff changeset
   768
     getLongVar:
44e09ad4ae15 Text cleanup
vranyj1
parents:
diff changeset
   769
     0    aload_0
44e09ad4ae15 Text cleanup
vranyj1
parents:
diff changeset
   770
     1    getfield 4 [JavaFieldRef (stx.libjava.tests.simpleClasses.Crate 'longVar'J offs=3)]
44e09ad4ae15 Text cleanup
vranyj1
parents:
diff changeset
   771
     4    lreturn"
44e09ad4ae15 Text cleanup
vranyj1
parents:
diff changeset
   772
44e09ad4ae15 Text cleanup
vranyj1
parents:
diff changeset
   773
    "Created: / 14-03-2011 / 13:49:02 / Marcel Hlopko <hlopkmar@fel.cvut.cz>"
44e09ad4ae15 Text cleanup
vranyj1
parents:
diff changeset
   774
    "Modified: / 16-03-2011 / 21:56:55 / Marcel Hlopko <hlopkmar@fel.cvut.cz>"
44e09ad4ae15 Text cleanup
vranyj1
parents:
diff changeset
   775
!
44e09ad4ae15 Text cleanup
vranyj1
parents:
diff changeset
   776
44e09ad4ae15 Text cleanup
vranyj1
parents:
diff changeset
   777
testSetterAndGettersString
44e09ad4ae15 Text cleanup
vranyj1
parents:
diff changeset
   778
    | result  expResult  crate |
44e09ad4ae15 Text cleanup
vranyj1
parents:
diff changeset
   779
44e09ad4ae15 Text cleanup
vranyj1
parents:
diff changeset
   780
    crate := self loadCrateJavaClass new.
44e09ad4ae15 Text cleanup
vranyj1
parents:
diff changeset
   781
    expResult := 'hello world'.
44e09ad4ae15 Text cleanup
vranyj1
parents:
diff changeset
   782
    self 
44e09ad4ae15 Text cleanup
vranyj1
parents:
diff changeset
   783
        invoke: #'setStringVar(Ljava/lang/String;)V'
44e09ad4ae15 Text cleanup
vranyj1
parents:
diff changeset
   784
        class: crate class
44e09ad4ae15 Text cleanup
vranyj1
parents:
diff changeset
   785
        receiver: crate
44e09ad4ae15 Text cleanup
vranyj1
parents:
diff changeset
   786
        args: (Array with: 'hello world').
44e09ad4ae15 Text cleanup
vranyj1
parents:
diff changeset
   787
    result := self 
44e09ad4ae15 Text cleanup
vranyj1
parents:
diff changeset
   788
                invoke: #'getStringVar()Ljava/lang/String;'
44e09ad4ae15 Text cleanup
vranyj1
parents:
diff changeset
   789
                class: crate class
44e09ad4ae15 Text cleanup
vranyj1
parents:
diff changeset
   790
                receiver: crate
44e09ad4ae15 Text cleanup
vranyj1
parents:
diff changeset
   791
                args: nil.
44e09ad4ae15 Text cleanup
vranyj1
parents:
diff changeset
   792
    self assert: (expResult = result).
44e09ad4ae15 Text cleanup
vranyj1
parents:
diff changeset
   793
"setString:
44e09ad4ae15 Text cleanup
vranyj1
parents:
diff changeset
   794
0    aload_0 
44e09ad4ae15 Text cleanup
vranyj1
parents:
diff changeset
   795
1    aload_1 
44e09ad4ae15 Text cleanup
vranyj1
parents:
diff changeset
   796
2    putfield 5 [JavaFieldRef (stx.libjava.tests.simpleClasses.Crate 'stringVar'Ljava/lang/String; offs=4)] 
44e09ad4ae15 Text cleanup
vranyj1
parents:
diff changeset
   797
5    return 
44e09ad4ae15 Text cleanup
vranyj1
parents:
diff changeset
   798
44e09ad4ae15 Text cleanup
vranyj1
parents:
diff changeset
   799
getString:
44e09ad4ae15 Text cleanup
vranyj1
parents:
diff changeset
   800
0    aload_0 
44e09ad4ae15 Text cleanup
vranyj1
parents:
diff changeset
   801
1    getfield 5 [JavaFieldRef (stx.libjava.tests.simpleClasses.Crate 'stringVar'Ljava/lang/String; offs=4)] 
44e09ad4ae15 Text cleanup
vranyj1
parents:
diff changeset
   802
4    areturn "
44e09ad4ae15 Text cleanup
vranyj1
parents:
diff changeset
   803
44e09ad4ae15 Text cleanup
vranyj1
parents:
diff changeset
   804
    "Created: / 14-03-2011 / 13:45:57 / Marcel Hlopko <hlopkmar@fel.cvut.cz>"
44e09ad4ae15 Text cleanup
vranyj1
parents:
diff changeset
   805
    "Modified: / 16-03-2011 / 21:57:33 / Marcel Hlopko <hlopkmar@fel.cvut.cz>"
44e09ad4ae15 Text cleanup
vranyj1
parents:
diff changeset
   806
!
44e09ad4ae15 Text cleanup
vranyj1
parents:
diff changeset
   807
44e09ad4ae15 Text cleanup
vranyj1
parents:
diff changeset
   808
testSimpleAdd
44e09ad4ae15 Text cleanup
vranyj1
parents:
diff changeset
   809
    | result  expResult |
44e09ad4ae15 Text cleanup
vranyj1
parents:
diff changeset
   810
44e09ad4ae15 Text cleanup
vranyj1
parents:
diff changeset
   811
    expResult := 2002.
44e09ad4ae15 Text cleanup
vranyj1
parents:
diff changeset
   812
    result := self 
44e09ad4ae15 Text cleanup
vranyj1
parents:
diff changeset
   813
                invoke: #'add2To2000Expect2002()I'
44e09ad4ae15 Text cleanup
vranyj1
parents:
diff changeset
   814
                class: self loadSimpleMathJavaClass
44e09ad4ae15 Text cleanup
vranyj1
parents:
diff changeset
   815
                args: nil.
44e09ad4ae15 Text cleanup
vranyj1
parents:
diff changeset
   816
    self assertTrue: expResult = result.
44e09ad4ae15 Text cleanup
vranyj1
parents:
diff changeset
   817
44e09ad4ae15 Text cleanup
vranyj1
parents:
diff changeset
   818
"static method
44e09ad4ae15 Text cleanup
vranyj1
parents:
diff changeset
   819
44e09ad4ae15 Text cleanup
vranyj1
parents:
diff changeset
   820
0    iconst_2 
44e09ad4ae15 Text cleanup
vranyj1
parents:
diff changeset
   821
1    istore_0 
44e09ad4ae15 Text cleanup
vranyj1
parents:
diff changeset
   822
2    sipush 2000
44e09ad4ae15 Text cleanup
vranyj1
parents:
diff changeset
   823
5    istore_1 
44e09ad4ae15 Text cleanup
vranyj1
parents:
diff changeset
   824
6    iload_0 
44e09ad4ae15 Text cleanup
vranyj1
parents:
diff changeset
   825
7    iload_1 
44e09ad4ae15 Text cleanup
vranyj1
parents:
diff changeset
   826
8    iadd 
44e09ad4ae15 Text cleanup
vranyj1
parents:
diff changeset
   827
9    istore_2 
44e09ad4ae15 Text cleanup
vranyj1
parents:
diff changeset
   828
10   iload_2 
44e09ad4ae15 Text cleanup
vranyj1
parents:
diff changeset
   829
11   ireturn"
44e09ad4ae15 Text cleanup
vranyj1
parents:
diff changeset
   830
44e09ad4ae15 Text cleanup
vranyj1
parents:
diff changeset
   831
    "Created: / 06-03-2011 / 14:18:09 / Marcel Hlopko <hlopkmar@fel.cvut.cz>"
44e09ad4ae15 Text cleanup
vranyj1
parents:
diff changeset
   832
    "Modified: / 16-03-2011 / 21:57:51 / Marcel Hlopko <hlopkmar@fel.cvut.cz>"
44e09ad4ae15 Text cleanup
vranyj1
parents:
diff changeset
   833
!
44e09ad4ae15 Text cleanup
vranyj1
parents:
diff changeset
   834
44e09ad4ae15 Text cleanup
vranyj1
parents:
diff changeset
   835
testSimpleAdd2
44e09ad4ae15 Text cleanup
vranyj1
parents:
diff changeset
   836
    | result  expResult |
44e09ad4ae15 Text cleanup
vranyj1
parents:
diff changeset
   837
44e09ad4ae15 Text cleanup
vranyj1
parents:
diff changeset
   838
    expResult := 5.
44e09ad4ae15 Text cleanup
vranyj1
parents:
diff changeset
   839
    result := self 
44e09ad4ae15 Text cleanup
vranyj1
parents:
diff changeset
   840
                invoke: #'addMinus5ToArg(I)I'
44e09ad4ae15 Text cleanup
vranyj1
parents:
diff changeset
   841
                class: self loadSimpleMathJavaClass
44e09ad4ae15 Text cleanup
vranyj1
parents:
diff changeset
   842
                args: (Array with: 10).
44e09ad4ae15 Text cleanup
vranyj1
parents:
diff changeset
   843
    self assertTrue: expResult = result.
44e09ad4ae15 Text cleanup
vranyj1
parents:
diff changeset
   844
44e09ad4ae15 Text cleanup
vranyj1
parents:
diff changeset
   845
    "static method
44e09ad4ae15 Text cleanup
vranyj1
parents:
diff changeset
   846
44e09ad4ae15 Text cleanup
vranyj1
parents:
diff changeset
   847
     0    iload_0
44e09ad4ae15 Text cleanup
vranyj1
parents:
diff changeset
   848
     1    bipush -5
44e09ad4ae15 Text cleanup
vranyj1
parents:
diff changeset
   849
     3    iadd
44e09ad4ae15 Text cleanup
vranyj1
parents:
diff changeset
   850
     4    ireturn"
44e09ad4ae15 Text cleanup
vranyj1
parents:
diff changeset
   851
44e09ad4ae15 Text cleanup
vranyj1
parents:
diff changeset
   852
    "Created: / 06-03-2011 / 14:18:14 / Marcel Hlopko <hlopkmar@fel.cvut.cz>"
44e09ad4ae15 Text cleanup
vranyj1
parents:
diff changeset
   853
    "Modified: / 16-03-2011 / 21:59:33 / Marcel Hlopko <hlopkmar@fel.cvut.cz>"
44e09ad4ae15 Text cleanup
vranyj1
parents:
diff changeset
   854
!
44e09ad4ae15 Text cleanup
vranyj1
parents:
diff changeset
   855
44e09ad4ae15 Text cleanup
vranyj1
parents:
diff changeset
   856
testStackCreation
44e09ad4ae15 Text cleanup
vranyj1
parents:
diff changeset
   857
    | result  expResult |
44e09ad4ae15 Text cleanup
vranyj1
parents:
diff changeset
   858
44e09ad4ae15 Text cleanup
vranyj1
parents:
diff changeset
   859
    expResult := 7.
44e09ad4ae15 Text cleanup
vranyj1
parents:
diff changeset
   860
    result := self 
44e09ad4ae15 Text cleanup
vranyj1
parents:
diff changeset
   861
                invoke: #'isYourStackCreatedCorrectly()I'
44e09ad4ae15 Text cleanup
vranyj1
parents:
diff changeset
   862
                class: self loadSimpleMathJavaClass
44e09ad4ae15 Text cleanup
vranyj1
parents:
diff changeset
   863
                args: #().
44e09ad4ae15 Text cleanup
vranyj1
parents:
diff changeset
   864
    self assertTrue: expResult = result.
44e09ad4ae15 Text cleanup
vranyj1
parents:
diff changeset
   865
44e09ad4ae15 Text cleanup
vranyj1
parents:
diff changeset
   866
    "0    iconst_0 
44e09ad4ae15 Text cleanup
vranyj1
parents:
diff changeset
   867
     1    istore_0
44e09ad4ae15 Text cleanup
vranyj1
parents:
diff changeset
   868
     2    iconst_1
44e09ad4ae15 Text cleanup
vranyj1
parents:
diff changeset
   869
     3    istore_1
44e09ad4ae15 Text cleanup
vranyj1
parents:
diff changeset
   870
     4    iconst_2
44e09ad4ae15 Text cleanup
vranyj1
parents:
diff changeset
   871
     5    istore_0
44e09ad4ae15 Text cleanup
vranyj1
parents:
diff changeset
   872
     6    iconst_3
44e09ad4ae15 Text cleanup
vranyj1
parents:
diff changeset
   873
     7    istore_1
44e09ad4ae15 Text cleanup
vranyj1
parents:
diff changeset
   874
     8    iconst_4
44e09ad4ae15 Text cleanup
vranyj1
parents:
diff changeset
   875
     9    istore_0
44e09ad4ae15 Text cleanup
vranyj1
parents:
diff changeset
   876
     10   iconst_5
44e09ad4ae15 Text cleanup
vranyj1
parents:
diff changeset
   877
     11   istore_0
44e09ad4ae15 Text cleanup
vranyj1
parents:
diff changeset
   878
     12   bipush 6
44e09ad4ae15 Text cleanup
vranyj1
parents:
diff changeset
   879
     14   istore_1
44e09ad4ae15 Text cleanup
vranyj1
parents:
diff changeset
   880
     15   bipush 7
44e09ad4ae15 Text cleanup
vranyj1
parents:
diff changeset
   881
     17   istore_0
44e09ad4ae15 Text cleanup
vranyj1
parents:
diff changeset
   882
     18   bipush 8
44e09ad4ae15 Text cleanup
vranyj1
parents:
diff changeset
   883
     20   istore_1
44e09ad4ae15 Text cleanup
vranyj1
parents:
diff changeset
   884
     21   bipush 9
44e09ad4ae15 Text cleanup
vranyj1
parents:
diff changeset
   885
     23   istore_1
44e09ad4ae15 Text cleanup
vranyj1
parents:
diff changeset
   886
     24   iload_0
44e09ad4ae15 Text cleanup
vranyj1
parents:
diff changeset
   887
     25   ireturn"
44e09ad4ae15 Text cleanup
vranyj1
parents:
diff changeset
   888
44e09ad4ae15 Text cleanup
vranyj1
parents:
diff changeset
   889
    "Created: / 14-03-2011 / 17:03:36 / Marcel Hlopko <hlopkmar@fel.cvut.cz>"
44e09ad4ae15 Text cleanup
vranyj1
parents:
diff changeset
   890
    "Modified: / 16-03-2011 / 21:59:28 / Marcel Hlopko <hlopkmar@fel.cvut.cz>"
44e09ad4ae15 Text cleanup
vranyj1
parents:
diff changeset
   891
!
44e09ad4ae15 Text cleanup
vranyj1
parents:
diff changeset
   892
44e09ad4ae15 Text cleanup
vranyj1
parents:
diff changeset
   893
testSumArray
44e09ad4ae15 Text cleanup
vranyj1
parents:
diff changeset
   894
    | result  expResult |
44e09ad4ae15 Text cleanup
vranyj1
parents:
diff changeset
   895
44e09ad4ae15 Text cleanup
vranyj1
parents:
diff changeset
   896
    expResult := 15.
44e09ad4ae15 Text cleanup
vranyj1
parents:
diff changeset
   897
    result := self 
44e09ad4ae15 Text cleanup
vranyj1
parents:
diff changeset
   898
                invoke: #'sumArray([I)I'
44e09ad4ae15 Text cleanup
vranyj1
parents:
diff changeset
   899
                class: self loadSimpleMathJavaClass
44e09ad4ae15 Text cleanup
vranyj1
parents:
diff changeset
   900
                args: #( #(1 2 3 4 5) ).
44e09ad4ae15 Text cleanup
vranyj1
parents:
diff changeset
   901
    self assertTrue: expResult = result.
44e09ad4ae15 Text cleanup
vranyj1
parents:
diff changeset
   902
44e09ad4ae15 Text cleanup
vranyj1
parents:
diff changeset
   903
    "
44e09ad4ae15 Text cleanup
vranyj1
parents:
diff changeset
   904
     Decompiled source:
44e09ad4ae15 Text cleanup
vranyj1
parents:
diff changeset
   905
     Static method
44e09ad4ae15 Text cleanup
vranyj1
parents:
diff changeset
   906
     0    iconst_0
44e09ad4ae15 Text cleanup
vranyj1
parents:
diff changeset
   907
     1    istore_1
44e09ad4ae15 Text cleanup
vranyj1
parents:
diff changeset
   908
     2    iconst_0
44e09ad4ae15 Text cleanup
vranyj1
parents:
diff changeset
   909
     3    istore_2
44e09ad4ae15 Text cleanup
vranyj1
parents:
diff changeset
   910
     4    iload_2
44e09ad4ae15 Text cleanup
vranyj1
parents:
diff changeset
   911
     5    aload_0
44e09ad4ae15 Text cleanup
vranyj1
parents:
diff changeset
   912
     6    arraylength
44e09ad4ae15 Text cleanup
vranyj1
parents:
diff changeset
   913
     7    if_icmpge 15 [22]
44e09ad4ae15 Text cleanup
vranyj1
parents:
diff changeset
   914
     10   iload_1
44e09ad4ae15 Text cleanup
vranyj1
parents:
diff changeset
   915
     11   aload_0
44e09ad4ae15 Text cleanup
vranyj1
parents:
diff changeset
   916
     12   iload_2
44e09ad4ae15 Text cleanup
vranyj1
parents:
diff changeset
   917
     13   iaload
44e09ad4ae15 Text cleanup
vranyj1
parents:
diff changeset
   918
     14   iadd
44e09ad4ae15 Text cleanup
vranyj1
parents:
diff changeset
   919
     15   istore_1
44e09ad4ae15 Text cleanup
vranyj1
parents:
diff changeset
   920
     16   iinc 2 1
44e09ad4ae15 Text cleanup
vranyj1
parents:
diff changeset
   921
     19   goto -15 [4]
44e09ad4ae15 Text cleanup
vranyj1
parents:
diff changeset
   922
     22   iload_1
44e09ad4ae15 Text cleanup
vranyj1
parents:
diff changeset
   923
     23   ireturn"
44e09ad4ae15 Text cleanup
vranyj1
parents:
diff changeset
   924
44e09ad4ae15 Text cleanup
vranyj1
parents:
diff changeset
   925
    "Created: / 14-03-2011 / 17:06:31 / Marcel Hlopko <hlopkmar@fel.cvut.cz>"
44e09ad4ae15 Text cleanup
vranyj1
parents:
diff changeset
   926
    "Modified: / 16-03-2011 / 21:58:27 / Marcel Hlopko <hlopkmar@fel.cvut.cz>"
44e09ad4ae15 Text cleanup
vranyj1
parents:
diff changeset
   927
!
44e09ad4ae15 Text cleanup
vranyj1
parents:
diff changeset
   928
44e09ad4ae15 Text cleanup
vranyj1
parents:
diff changeset
   929
testSumArrayOfDoubles
44e09ad4ae15 Text cleanup
vranyj1
parents:
diff changeset
   930
    | result  expResult |
44e09ad4ae15 Text cleanup
vranyj1
parents:
diff changeset
   931
44e09ad4ae15 Text cleanup
vranyj1
parents:
diff changeset
   932
    expResult := 16.5.
44e09ad4ae15 Text cleanup
vranyj1
parents:
diff changeset
   933
    result := self 
44e09ad4ae15 Text cleanup
vranyj1
parents:
diff changeset
   934
                invoke: #'sumArrayOfDoubles([D)D'
44e09ad4ae15 Text cleanup
vranyj1
parents:
diff changeset
   935
                class: self loadSimpleMathJavaClass
44e09ad4ae15 Text cleanup
vranyj1
parents:
diff changeset
   936
                args: #( #(1.1 2.2 3.3 4.4 5.5) ).
44e09ad4ae15 Text cleanup
vranyj1
parents:
diff changeset
   937
    self assertTrue: expResult = result.
44e09ad4ae15 Text cleanup
vranyj1
parents:
diff changeset
   938
"0    dconst_0 
44e09ad4ae15 Text cleanup
vranyj1
parents:
diff changeset
   939
1    dstore_1 
44e09ad4ae15 Text cleanup
vranyj1
parents:
diff changeset
   940
2    iconst_0 
44e09ad4ae15 Text cleanup
vranyj1
parents:
diff changeset
   941
3    istore_3 
44e09ad4ae15 Text cleanup
vranyj1
parents:
diff changeset
   942
4    iload_3 
44e09ad4ae15 Text cleanup
vranyj1
parents:
diff changeset
   943
5    aload_0 
44e09ad4ae15 Text cleanup
vranyj1
parents:
diff changeset
   944
6    arraylength 
44e09ad4ae15 Text cleanup
vranyj1
parents:
diff changeset
   945
7    if_icmpge 15 [22]
44e09ad4ae15 Text cleanup
vranyj1
parents:
diff changeset
   946
10   dload_1 
44e09ad4ae15 Text cleanup
vranyj1
parents:
diff changeset
   947
11   aload_0 
44e09ad4ae15 Text cleanup
vranyj1
parents:
diff changeset
   948
12   iload_3 
44e09ad4ae15 Text cleanup
vranyj1
parents:
diff changeset
   949
13   daload 
44e09ad4ae15 Text cleanup
vranyj1
parents:
diff changeset
   950
14   dadd 
44e09ad4ae15 Text cleanup
vranyj1
parents:
diff changeset
   951
15   dstore_1 
44e09ad4ae15 Text cleanup
vranyj1
parents:
diff changeset
   952
16   iinc 3 1
44e09ad4ae15 Text cleanup
vranyj1
parents:
diff changeset
   953
19   goto -15 [4]
44e09ad4ae15 Text cleanup
vranyj1
parents:
diff changeset
   954
22   dload_1 
44e09ad4ae15 Text cleanup
vranyj1
parents:
diff changeset
   955
23   dreturn "
44e09ad4ae15 Text cleanup
vranyj1
parents:
diff changeset
   956
44e09ad4ae15 Text cleanup
vranyj1
parents:
diff changeset
   957
    "Created: / 14-03-2011 / 17:07:27 / Marcel Hlopko <hlopkmar@fel.cvut.cz>"
44e09ad4ae15 Text cleanup
vranyj1
parents:
diff changeset
   958
    "Modified: / 16-03-2011 / 21:59:03 / Marcel Hlopko <hlopkmar@fel.cvut.cz>"
44e09ad4ae15 Text cleanup
vranyj1
parents:
diff changeset
   959
!
44e09ad4ae15 Text cleanup
vranyj1
parents:
diff changeset
   960
44e09ad4ae15 Text cleanup
vranyj1
parents:
diff changeset
   961
testUnsignedBitShiftLeft
44e09ad4ae15 Text cleanup
vranyj1
parents:
diff changeset
   962
    | result  expResult |
44e09ad4ae15 Text cleanup
vranyj1
parents:
diff changeset
   963
44e09ad4ae15 Text cleanup
vranyj1
parents:
diff changeset
   964
    expResult := 1234 bitShift: 5.
44e09ad4ae15 Text cleanup
vranyj1
parents:
diff changeset
   965
    result := self 
44e09ad4ae15 Text cleanup
vranyj1
parents:
diff changeset
   966
                invoke: #'unsignedBitShiftRight(II)I'
44e09ad4ae15 Text cleanup
vranyj1
parents:
diff changeset
   967
                class: self loadSimpleMathJavaClass
44e09ad4ae15 Text cleanup
vranyj1
parents:
diff changeset
   968
                args: #( 1234 5 ).
44e09ad4ae15 Text cleanup
vranyj1
parents:
diff changeset
   969
    self assertTrue: expResult = result.
44e09ad4ae15 Text cleanup
vranyj1
parents:
diff changeset
   970
"0    iload_0 
44e09ad4ae15 Text cleanup
vranyj1
parents:
diff changeset
   971
1    iload_1 
44e09ad4ae15 Text cleanup
vranyj1
parents:
diff changeset
   972
2    iushr 
44e09ad4ae15 Text cleanup
vranyj1
parents:
diff changeset
   973
3    ireturn"
44e09ad4ae15 Text cleanup
vranyj1
parents:
diff changeset
   974
44e09ad4ae15 Text cleanup
vranyj1
parents:
diff changeset
   975
    "Created: / 14-03-2011 / 17:01:21 / Marcel Hlopko <hlopkmar@fel.cvut.cz>"
44e09ad4ae15 Text cleanup
vranyj1
parents:
diff changeset
   976
    "Modified: / 16-03-2011 / 21:59:19 / Marcel Hlopko <hlopkmar@fel.cvut.cz>"
44e09ad4ae15 Text cleanup
vranyj1
parents:
diff changeset
   977
!
44e09ad4ae15 Text cleanup
vranyj1
parents:
diff changeset
   978
44e09ad4ae15 Text cleanup
vranyj1
parents:
diff changeset
   979
testXor
44e09ad4ae15 Text cleanup
vranyj1
parents:
diff changeset
   980
    | result  expResult |
44e09ad4ae15 Text cleanup
vranyj1
parents:
diff changeset
   981
44e09ad4ae15 Text cleanup
vranyj1
parents:
diff changeset
   982
    expResult := 1234 bitXor: 5.
44e09ad4ae15 Text cleanup
vranyj1
parents:
diff changeset
   983
    result := self 
44e09ad4ae15 Text cleanup
vranyj1
parents:
diff changeset
   984
                invoke: #'xor(II)I'
44e09ad4ae15 Text cleanup
vranyj1
parents:
diff changeset
   985
                class: self loadSimpleMathJavaClass
44e09ad4ae15 Text cleanup
vranyj1
parents:
diff changeset
   986
                args: #( 1234 5 ).
44e09ad4ae15 Text cleanup
vranyj1
parents:
diff changeset
   987
    self assertTrue: expResult = result.
44e09ad4ae15 Text cleanup
vranyj1
parents:
diff changeset
   988
"0    iload_0 
44e09ad4ae15 Text cleanup
vranyj1
parents:
diff changeset
   989
1    iload_1 
44e09ad4ae15 Text cleanup
vranyj1
parents:
diff changeset
   990
2    ixor 
44e09ad4ae15 Text cleanup
vranyj1
parents:
diff changeset
   991
3    ireturn "
44e09ad4ae15 Text cleanup
vranyj1
parents:
diff changeset
   992
44e09ad4ae15 Text cleanup
vranyj1
parents:
diff changeset
   993
    "Modified: / 06-03-2011 / 15:11:11 / Jan Vrany <jan.vrany@fit.cvut.cz>"
44e09ad4ae15 Text cleanup
vranyj1
parents:
diff changeset
   994
    "Created: / 14-03-2011 / 17:02:40 / Marcel Hlopko <hlopkmar@fel.cvut.cz>"
44e09ad4ae15 Text cleanup
vranyj1
parents:
diff changeset
   995
    "Modified: / 16-03-2011 / 21:59:58 / Marcel Hlopko <hlopkmar@fel.cvut.cz>"
44e09ad4ae15 Text cleanup
vranyj1
parents:
diff changeset
   996
! !
44e09ad4ae15 Text cleanup
vranyj1
parents:
diff changeset
   997
44e09ad4ae15 Text cleanup
vranyj1
parents:
diff changeset
   998
!JavaByteCodeInterpreterTests methodsFor:'tests-helpers'!
44e09ad4ae15 Text cleanup
vranyj1
parents:
diff changeset
   999
44e09ad4ae15 Text cleanup
vranyj1
parents:
diff changeset
  1000
invoke: methodName class: aClass receiver: receiver args: args 
44e09ad4ae15 Text cleanup
vranyj1
parents:
diff changeset
  1001
    | method  result |
44e09ad4ae15 Text cleanup
vranyj1
parents:
diff changeset
  1002
    
44e09ad4ae15 Text cleanup
vranyj1
parents:
diff changeset
  1003
    method := aClass lookupMethodFor: methodName.    
44e09ad4ae15 Text cleanup
vranyj1
parents:
diff changeset
  1004
    result := JavaByteCodeInterpreter new 
44e09ad4ae15 Text cleanup
vranyj1
parents:
diff changeset
  1005
                interpret: method
44e09ad4ae15 Text cleanup
vranyj1
parents:
diff changeset
  1006
                receiver: receiver
44e09ad4ae15 Text cleanup
vranyj1
parents:
diff changeset
  1007
                arguments: args.
44e09ad4ae15 Text cleanup
vranyj1
parents:
diff changeset
  1008
    ^ result.
44e09ad4ae15 Text cleanup
vranyj1
parents:
diff changeset
  1009
44e09ad4ae15 Text cleanup
vranyj1
parents:
diff changeset
  1010
    "Created: / 10-03-2011 / 23:30:13 / Marcel Hlopko <hlopkmar@fel.cvut.cz>"
44e09ad4ae15 Text cleanup
vranyj1
parents:
diff changeset
  1011
    "Modified: / 17-03-2011 / 17:32:46 / Marcel Hlopko <hlopkmar@fel.cvut.cz>"
44e09ad4ae15 Text cleanup
vranyj1
parents:
diff changeset
  1012
! !
44e09ad4ae15 Text cleanup
vranyj1
parents:
diff changeset
  1013
44e09ad4ae15 Text cleanup
vranyj1
parents:
diff changeset
  1014
!JavaByteCodeInterpreterTests methodsFor:'tests2'!
44e09ad4ae15 Text cleanup
vranyj1
parents:
diff changeset
  1015
44e09ad4ae15 Text cleanup
vranyj1
parents:
diff changeset
  1016
testGetBoolean
44e09ad4ae15 Text cleanup
vranyj1
parents:
diff changeset
  1017
    | result  expResult  inst |
44e09ad4ae15 Text cleanup
vranyj1
parents:
diff changeset
  1018
44e09ad4ae15 Text cleanup
vranyj1
parents:
diff changeset
  1019
    inst := self loadSimpleClassWithManyReferences new.
44e09ad4ae15 Text cleanup
vranyj1
parents:
diff changeset
  1020
    expResult := 1.
44e09ad4ae15 Text cleanup
vranyj1
parents:
diff changeset
  1021
    result := self 
44e09ad4ae15 Text cleanup
vranyj1
parents:
diff changeset
  1022
                invoke: #'getBoolean()Z'
44e09ad4ae15 Text cleanup
vranyj1
parents:
diff changeset
  1023
                class: inst class
44e09ad4ae15 Text cleanup
vranyj1
parents:
diff changeset
  1024
                receiver: inst
44e09ad4ae15 Text cleanup
vranyj1
parents:
diff changeset
  1025
                args: nil.
44e09ad4ae15 Text cleanup
vranyj1
parents:
diff changeset
  1026
    self assertFalse: (result isNil).
44e09ad4ae15 Text cleanup
vranyj1
parents:
diff changeset
  1027
    self assertTrue: (result = expResult).
44e09ad4ae15 Text cleanup
vranyj1
parents:
diff changeset
  1028
44e09ad4ae15 Text cleanup
vranyj1
parents:
diff changeset
  1029
    "
44e09ad4ae15 Text cleanup
vranyj1
parents:
diff changeset
  1030
     Deassembling getBoolean
44e09ad4ae15 Text cleanup
vranyj1
parents:
diff changeset
  1031
     1:      ALOAD_0     (42)  ARGS: []                  STACK: [.. -> FIELD 0: stx.libjava.tests.simpleClasses.SimpleClassWithManyReferences]
44e09ad4ae15 Text cleanup
vranyj1
parents:
diff changeset
  1032
     2:      GETFIELD    (180) ARGS: [JavaFieldRef (stx.libjava.tests.simpleClasses.SimpleClassWithManyReferences 'values'[Ljava/lang/Object; offs=1)] STACK: [objectRef -> objectRef]
44e09ad4ae15 Text cleanup
vranyj1
parents:
diff changeset
  1033
     5:      BIPUSH      (16)  ARGS: [9]                 STACK: [.. -> value]
44e09ad4ae15 Text cleanup
vranyj1
parents:
diff changeset
  1034
     7:      AALOAD      (50)  ARGS: []                  STACK: [arrayRef, index -> value]
44e09ad4ae15 Text cleanup
vranyj1
parents:
diff changeset
  1035
     8:      CHECKCAST   (192) ARGS: [java.lang.Boolean] STACK: [objectRef -> objectRef]
44e09ad4ae15 Text cleanup
vranyj1
parents:
diff changeset
  1036
     11:     INVVIRT     (182) ARGS: [JavaMethodRef (java.lang.Boolean 'booleanValue'()Z)] STACK: [objectRef, [arg1, arg2, ...]  -> ..]
44e09ad4ae15 Text cleanup
vranyj1
parents:
diff changeset
  1037
     14:     IRETURN     (172) ARGS: []                  STACK: [value -> EMPTY]"
44e09ad4ae15 Text cleanup
vranyj1
parents:
diff changeset
  1038
44e09ad4ae15 Text cleanup
vranyj1
parents:
diff changeset
  1039
    "Created: / 14-03-2011 / 21:36:37 / Marcel Hlopko <hlopkmar@fel.cvut.cz>"
44e09ad4ae15 Text cleanup
vranyj1
parents:
diff changeset
  1040
    "Modified: / 21-03-2011 / 17:45:18 / Marcel Hlopko <hlopkmar@fel.cvut.cz>"
44e09ad4ae15 Text cleanup
vranyj1
parents:
diff changeset
  1041
!
44e09ad4ae15 Text cleanup
vranyj1
parents:
diff changeset
  1042
44e09ad4ae15 Text cleanup
vranyj1
parents:
diff changeset
  1043
testGetByte
44e09ad4ae15 Text cleanup
vranyj1
parents:
diff changeset
  1044
    | result  expResult |
44e09ad4ae15 Text cleanup
vranyj1
parents:
diff changeset
  1045
44e09ad4ae15 Text cleanup
vranyj1
parents:
diff changeset
  1046
    expResult := 11.
44e09ad4ae15 Text cleanup
vranyj1
parents:
diff changeset
  1047
    result := self 
44e09ad4ae15 Text cleanup
vranyj1
parents:
diff changeset
  1048
                invoke: #'getByte()B'
44e09ad4ae15 Text cleanup
vranyj1
parents:
diff changeset
  1049
                class: self loadSimpleClassWithManyReferences
44e09ad4ae15 Text cleanup
vranyj1
parents:
diff changeset
  1050
                receiver: self loadSimpleClassWithManyReferences new
44e09ad4ae15 Text cleanup
vranyj1
parents:
diff changeset
  1051
                args: nil.
44e09ad4ae15 Text cleanup
vranyj1
parents:
diff changeset
  1052
    self assertFalse: (result isNil).
44e09ad4ae15 Text cleanup
vranyj1
parents:
diff changeset
  1053
    self assertTrue: (result = expResult).
44e09ad4ae15 Text cleanup
vranyj1
parents:
diff changeset
  1054
"0    aload_0 
44e09ad4ae15 Text cleanup
vranyj1
parents:
diff changeset
  1055
1    getfield 3 [JavaFieldRef (stx.libjava.tests.simpleClasses.SimpleClassWithManyReferences 'values'[Ljava/lang/Object; offs=1)] 
44e09ad4ae15 Text cleanup
vranyj1
parents:
diff changeset
  1056
4    bipush 7
44e09ad4ae15 Text cleanup
vranyj1
parents:
diff changeset
  1057
6    aaload 
44e09ad4ae15 Text cleanup
vranyj1
parents:
diff changeset
  1058
7    checkcast 17 [java.lang.Byte] 
44e09ad4ae15 Text cleanup
vranyj1
parents:
diff changeset
  1059
10   invokevirtual 31 [JavaMethodRef (java.lang.Byte 'byteValue'()B)] 
44e09ad4ae15 Text cleanup
vranyj1
parents:
diff changeset
  1060
13   ireturn "
44e09ad4ae15 Text cleanup
vranyj1
parents:
diff changeset
  1061
44e09ad4ae15 Text cleanup
vranyj1
parents:
diff changeset
  1062
    "Created: / 14-03-2011 / 21:34:23 / Marcel Hlopko <hlopkmar@fel.cvut.cz>"
44e09ad4ae15 Text cleanup
vranyj1
parents:
diff changeset
  1063
    "Modified: / 16-03-2011 / 22:04:19 / Marcel Hlopko <hlopkmar@fel.cvut.cz>"
44e09ad4ae15 Text cleanup
vranyj1
parents:
diff changeset
  1064
!
44e09ad4ae15 Text cleanup
vranyj1
parents:
diff changeset
  1065
44e09ad4ae15 Text cleanup
vranyj1
parents:
diff changeset
  1066
testGetChar
44e09ad4ae15 Text cleanup
vranyj1
parents:
diff changeset
  1067
    | result  expResult |
44e09ad4ae15 Text cleanup
vranyj1
parents:
diff changeset
  1068
44e09ad4ae15 Text cleanup
vranyj1
parents:
diff changeset
  1069
    expResult := 97.
44e09ad4ae15 Text cleanup
vranyj1
parents:
diff changeset
  1070
    result := self 
44e09ad4ae15 Text cleanup
vranyj1
parents:
diff changeset
  1071
                invoke: #'getChar()C'
44e09ad4ae15 Text cleanup
vranyj1
parents:
diff changeset
  1072
                class: self loadSimpleClassWithManyReferences
44e09ad4ae15 Text cleanup
vranyj1
parents:
diff changeset
  1073
                receiver: self loadSimpleClassWithManyReferences new
44e09ad4ae15 Text cleanup
vranyj1
parents:
diff changeset
  1074
                args: nil.
44e09ad4ae15 Text cleanup
vranyj1
parents:
diff changeset
  1075
    self assertFalse: (result isNil).
44e09ad4ae15 Text cleanup
vranyj1
parents:
diff changeset
  1076
    self assertTrue: (result = expResult).
44e09ad4ae15 Text cleanup
vranyj1
parents:
diff changeset
  1077
"0    aload_0 
44e09ad4ae15 Text cleanup
vranyj1
parents:
diff changeset
  1078
1    getfield 3 [JavaFieldRef (stx.libjava.tests.simpleClasses.SimpleClassWithManyReferences 'values'[Ljava/lang/Object; offs=1)] 
44e09ad4ae15 Text cleanup
vranyj1
parents:
diff changeset
  1079
4    iconst_3 
44e09ad4ae15 Text cleanup
vranyj1
parents:
diff changeset
  1080
5    aaload 
44e09ad4ae15 Text cleanup
vranyj1
parents:
diff changeset
  1081
6    checkcast 25 [java.lang.Character] 
44e09ad4ae15 Text cleanup
vranyj1
parents:
diff changeset
  1082
9    invokevirtual 26 [JavaMethodRef (java.lang.Character 'charValue'()C)] 
44e09ad4ae15 Text cleanup
vranyj1
parents:
diff changeset
  1083
12   ireturn "
44e09ad4ae15 Text cleanup
vranyj1
parents:
diff changeset
  1084
44e09ad4ae15 Text cleanup
vranyj1
parents:
diff changeset
  1085
    "Created: / 14-03-2011 / 21:31:36 / Marcel Hlopko <hlopkmar@fel.cvut.cz>"
44e09ad4ae15 Text cleanup
vranyj1
parents:
diff changeset
  1086
    "Modified: / 21-03-2011 / 17:45:33 / Marcel Hlopko <hlopkmar@fel.cvut.cz>"
44e09ad4ae15 Text cleanup
vranyj1
parents:
diff changeset
  1087
!
44e09ad4ae15 Text cleanup
vranyj1
parents:
diff changeset
  1088
44e09ad4ae15 Text cleanup
vranyj1
parents:
diff changeset
  1089
testGetDateArray
44e09ad4ae15 Text cleanup
vranyj1
parents:
diff changeset
  1090
    | result  expResult |
44e09ad4ae15 Text cleanup
vranyj1
parents:
diff changeset
  1091
44e09ad4ae15 Text cleanup
vranyj1
parents:
diff changeset
  1092
    "again  - you're comparing java array with st array - watch out"
44e09ad4ae15 Text cleanup
vranyj1
parents:
diff changeset
  1093
  "/  expResult := #( nil nil nil ).
44e09ad4ae15 Text cleanup
vranyj1
parents:
diff changeset
  1094
    result := self 
44e09ad4ae15 Text cleanup
vranyj1
parents:
diff changeset
  1095
                invoke: #'getDateArray()[Ljava/util/Date;'
44e09ad4ae15 Text cleanup
vranyj1
parents:
diff changeset
  1096
                class: self loadSimpleClassWithManyReferences
44e09ad4ae15 Text cleanup
vranyj1
parents:
diff changeset
  1097
                receiver: self loadSimpleClassWithManyReferences new
44e09ad4ae15 Text cleanup
vranyj1
parents:
diff changeset
  1098
                args: nil.
44e09ad4ae15 Text cleanup
vranyj1
parents:
diff changeset
  1099
    self assertFalse: (result isNil).
44e09ad4ae15 Text cleanup
vranyj1
parents:
diff changeset
  1100
"/    self assertTrue: (result = expResult).
44e09ad4ae15 Text cleanup
vranyj1
parents:
diff changeset
  1101
"0    aload_0 
44e09ad4ae15 Text cleanup
vranyj1
parents:
diff changeset
  1102
1    getfield 3 [JavaFieldRef (stx.libjava.tests.simpleClasses.SimpleClassWithManyReferences 'values'[Ljava/lang/Object; offs=1)] 
44e09ad4ae15 Text cleanup
vranyj1
parents:
diff changeset
  1103
4    bipush 8
44e09ad4ae15 Text cleanup
vranyj1
parents:
diff changeset
  1104
6    aaload 
44e09ad4ae15 Text cleanup
vranyj1
parents:
diff changeset
  1105
7    checkcast 32 [UnresolvedClass([Ljava.util.Date;)] 
44e09ad4ae15 Text cleanup
vranyj1
parents:
diff changeset
  1106
10   checkcast 32 [UnresolvedClass([Ljava.util.Date;)] 
44e09ad4ae15 Text cleanup
vranyj1
parents:
diff changeset
  1107
13   areturn "
44e09ad4ae15 Text cleanup
vranyj1
parents:
diff changeset
  1108
44e09ad4ae15 Text cleanup
vranyj1
parents:
diff changeset
  1109
    "Created: / 14-03-2011 / 21:35:33 / Marcel Hlopko <hlopkmar@fel.cvut.cz>"
44e09ad4ae15 Text cleanup
vranyj1
parents:
diff changeset
  1110
    "Modified: / 21-03-2011 / 17:59:27 / Marcel Hlopko <hlopkmar@fel.cvut.cz>"
44e09ad4ae15 Text cleanup
vranyj1
parents:
diff changeset
  1111
!
44e09ad4ae15 Text cleanup
vranyj1
parents:
diff changeset
  1112
44e09ad4ae15 Text cleanup
vranyj1
parents:
diff changeset
  1113
testGetDouble
44e09ad4ae15 Text cleanup
vranyj1
parents:
diff changeset
  1114
    | result |
44e09ad4ae15 Text cleanup
vranyj1
parents:
diff changeset
  1115
44e09ad4ae15 Text cleanup
vranyj1
parents:
diff changeset
  1116
    result := self 
44e09ad4ae15 Text cleanup
vranyj1
parents:
diff changeset
  1117
                invoke: #'getDouble()Ljava/lang/Double;'
44e09ad4ae15 Text cleanup
vranyj1
parents:
diff changeset
  1118
                class: self loadSimpleClassWithManyReferences
44e09ad4ae15 Text cleanup
vranyj1
parents:
diff changeset
  1119
                receiver: self loadSimpleClassWithManyReferences new
44e09ad4ae15 Text cleanup
vranyj1
parents:
diff changeset
  1120
                args: nil.
44e09ad4ae15 Text cleanup
vranyj1
parents:
diff changeset
  1121
    self assertFalse: (result isNil).
44e09ad4ae15 Text cleanup
vranyj1
parents:
diff changeset
  1122
44e09ad4ae15 Text cleanup
vranyj1
parents:
diff changeset
  1123
    "0    aload_0 
44e09ad4ae15 Text cleanup
vranyj1
parents:
diff changeset
  1124
     1    getfield 3 [JavaFieldRef (stx.libjava.tests.simpleClasses.SimpleClassWithManyReferences 'values'[Ljava/lang/Object; offs=1)]
44e09ad4ae15 Text cleanup
vranyj1
parents:
diff changeset
  1125
     4    iconst_2
44e09ad4ae15 Text cleanup
vranyj1
parents:
diff changeset
  1126
     5    aaload
44e09ad4ae15 Text cleanup
vranyj1
parents:
diff changeset
  1127
     6    checkcast 24 [java.lang.Double]
44e09ad4ae15 Text cleanup
vranyj1
parents:
diff changeset
  1128
     9    areturn"
44e09ad4ae15 Text cleanup
vranyj1
parents:
diff changeset
  1129
44e09ad4ae15 Text cleanup
vranyj1
parents:
diff changeset
  1130
    "Created: / 14-03-2011 / 21:30:47 / Marcel Hlopko <hlopkmar@fel.cvut.cz>"
44e09ad4ae15 Text cleanup
vranyj1
parents:
diff changeset
  1131
    "Modified: / 22-03-2011 / 17:10:26 / Marcel Hlopko <hlopkmar@fel.cvut.cz>"
44e09ad4ae15 Text cleanup
vranyj1
parents:
diff changeset
  1132
!
44e09ad4ae15 Text cleanup
vranyj1
parents:
diff changeset
  1133
44e09ad4ae15 Text cleanup
vranyj1
parents:
diff changeset
  1134
testGetInt
44e09ad4ae15 Text cleanup
vranyj1
parents:
diff changeset
  1135
    | result  expResult |
44e09ad4ae15 Text cleanup
vranyj1
parents:
diff changeset
  1136
44e09ad4ae15 Text cleanup
vranyj1
parents:
diff changeset
  1137
    expResult := 1.
44e09ad4ae15 Text cleanup
vranyj1
parents:
diff changeset
  1138
    result := self 
44e09ad4ae15 Text cleanup
vranyj1
parents:
diff changeset
  1139
                invoke: #'getInt()I'
44e09ad4ae15 Text cleanup
vranyj1
parents:
diff changeset
  1140
                class: self loadSimpleClassWithManyReferences
44e09ad4ae15 Text cleanup
vranyj1
parents:
diff changeset
  1141
                receiver: self loadSimpleClassWithManyReferences new
44e09ad4ae15 Text cleanup
vranyj1
parents:
diff changeset
  1142
                args: nil.
44e09ad4ae15 Text cleanup
vranyj1
parents:
diff changeset
  1143
    self assertFalse: (result isNil).
44e09ad4ae15 Text cleanup
vranyj1
parents:
diff changeset
  1144
    self assertTrue: (result = expResult).
44e09ad4ae15 Text cleanup
vranyj1
parents:
diff changeset
  1145
"0    aload_0 
44e09ad4ae15 Text cleanup
vranyj1
parents:
diff changeset
  1146
1    getfield 3 [JavaFieldRef (stx.libjava.tests.simpleClasses.SimpleClassWithManyReferences 'values'[Ljava/lang/Object; offs=1)] 
44e09ad4ae15 Text cleanup
vranyj1
parents:
diff changeset
  1147
4    iconst_1 
44e09ad4ae15 Text cleanup
vranyj1
parents:
diff changeset
  1148
5    aaload 
44e09ad4ae15 Text cleanup
vranyj1
parents:
diff changeset
  1149
6    checkcast 13 [java.lang.Integer] 
44e09ad4ae15 Text cleanup
vranyj1
parents:
diff changeset
  1150
9    invokevirtual 23 [JavaMethodRef (java.lang.Integer 'intValue'()I)] 
44e09ad4ae15 Text cleanup
vranyj1
parents:
diff changeset
  1151
12   ireturn"
44e09ad4ae15 Text cleanup
vranyj1
parents:
diff changeset
  1152
44e09ad4ae15 Text cleanup
vranyj1
parents:
diff changeset
  1153
    "Created: / 14-03-2011 / 21:30:47 / Marcel Hlopko <hlopkmar@fel.cvut.cz>"
44e09ad4ae15 Text cleanup
vranyj1
parents:
diff changeset
  1154
    "Modified: / 16-03-2011 / 22:05:31 / Marcel Hlopko <hlopkmar@fel.cvut.cz>"
44e09ad4ae15 Text cleanup
vranyj1
parents:
diff changeset
  1155
!
44e09ad4ae15 Text cleanup
vranyj1
parents:
diff changeset
  1156
44e09ad4ae15 Text cleanup
vranyj1
parents:
diff changeset
  1157
testGetIntArray
44e09ad4ae15 Text cleanup
vranyj1
parents:
diff changeset
  1158
    | result  expResult |
44e09ad4ae15 Text cleanup
vranyj1
parents:
diff changeset
  1159
44e09ad4ae15 Text cleanup
vranyj1
parents:
diff changeset
  1160
    "again  - you're comparing java array with st array - watch out"
44e09ad4ae15 Text cleanup
vranyj1
parents:
diff changeset
  1161
    expResult := #( nil nil nil nil nil ).
44e09ad4ae15 Text cleanup
vranyj1
parents:
diff changeset
  1162
    result := self 
44e09ad4ae15 Text cleanup
vranyj1
parents:
diff changeset
  1163
                invoke: #'getIntArray()[I'
44e09ad4ae15 Text cleanup
vranyj1
parents:
diff changeset
  1164
                class: self loadSimpleClassWithManyReferences
44e09ad4ae15 Text cleanup
vranyj1
parents:
diff changeset
  1165
                receiver: self loadSimpleClassWithManyReferences new
44e09ad4ae15 Text cleanup
vranyj1
parents:
diff changeset
  1166
                args: nil.
44e09ad4ae15 Text cleanup
vranyj1
parents:
diff changeset
  1167
    self assertFalse: (result isNil).
44e09ad4ae15 Text cleanup
vranyj1
parents:
diff changeset
  1168
    self 
44e09ad4ae15 Text cleanup
vranyj1
parents:
diff changeset
  1169
        invoke: #'setIntArray([I)V'
44e09ad4ae15 Text cleanup
vranyj1
parents:
diff changeset
  1170
        class: self loadSimpleClassWithManyReferences
44e09ad4ae15 Text cleanup
vranyj1
parents:
diff changeset
  1171
        receiver: self loadSimpleClassWithManyReferences new
44e09ad4ae15 Text cleanup
vranyj1
parents:
diff changeset
  1172
        args: result.
44e09ad4ae15 Text cleanup
vranyj1
parents:
diff changeset
  1173
44e09ad4ae15 Text cleanup
vranyj1
parents:
diff changeset
  1174
    "/self assertTrue: (result = expResult).
44e09ad4ae15 Text cleanup
vranyj1
parents:
diff changeset
  1175
    "0    aload_0 
44e09ad4ae15 Text cleanup
vranyj1
parents:
diff changeset
  1176
     1    getfield 3 [JavaFieldRef (stx.libjava.tests.simpleClasses.SimpleClassWithManyReferences 'values'[Ljava/lang/Object; offs=1)]
44e09ad4ae15 Text cleanup
vranyj1
parents:
diff changeset
  1177
     4    iconst_5
44e09ad4ae15 Text cleanup
vranyj1
parents:
diff changeset
  1178
     5    aaload
44e09ad4ae15 Text cleanup
vranyj1
parents:
diff changeset
  1179
     6    checkcast 29 [JavaBuiltInClassPointerRef(class:IntegerArray ; name&type: '[I')]
44e09ad4ae15 Text cleanup
vranyj1
parents:
diff changeset
  1180
     9    checkcast 29 [JavaBuiltInClassPointerRef(class:IntegerArray ; name&type: '[I')]
44e09ad4ae15 Text cleanup
vranyj1
parents:
diff changeset
  1181
     12   areturn"
44e09ad4ae15 Text cleanup
vranyj1
parents:
diff changeset
  1182
44e09ad4ae15 Text cleanup
vranyj1
parents:
diff changeset
  1183
    "Created: / 14-03-2011 / 21:33:13 / Marcel Hlopko <hlopkmar@fel.cvut.cz>"
44e09ad4ae15 Text cleanup
vranyj1
parents:
diff changeset
  1184
    "Modified: / 21-03-2011 / 18:53:06 / Marcel Hlopko <hlopkmar@fel.cvut.cz>"
44e09ad4ae15 Text cleanup
vranyj1
parents:
diff changeset
  1185
!
44e09ad4ae15 Text cleanup
vranyj1
parents:
diff changeset
  1186
44e09ad4ae15 Text cleanup
vranyj1
parents:
diff changeset
  1187
testGetLong
44e09ad4ae15 Text cleanup
vranyj1
parents:
diff changeset
  1188
    | result  expResult |
44e09ad4ae15 Text cleanup
vranyj1
parents:
diff changeset
  1189
44e09ad4ae15 Text cleanup
vranyj1
parents:
diff changeset
  1190
    expResult := 10.
44e09ad4ae15 Text cleanup
vranyj1
parents:
diff changeset
  1191
    result := self 
44e09ad4ae15 Text cleanup
vranyj1
parents:
diff changeset
  1192
                invoke: #'getLong()J'
44e09ad4ae15 Text cleanup
vranyj1
parents:
diff changeset
  1193
                class: self loadSimpleClassWithManyReferences
44e09ad4ae15 Text cleanup
vranyj1
parents:
diff changeset
  1194
                receiver: self loadSimpleClassWithManyReferences new
44e09ad4ae15 Text cleanup
vranyj1
parents:
diff changeset
  1195
                args: nil.
44e09ad4ae15 Text cleanup
vranyj1
parents:
diff changeset
  1196
    self assertFalse: (result isNil).
44e09ad4ae15 Text cleanup
vranyj1
parents:
diff changeset
  1197
    self assertTrue: (result = expResult).
44e09ad4ae15 Text cleanup
vranyj1
parents:
diff changeset
  1198
44e09ad4ae15 Text cleanup
vranyj1
parents:
diff changeset
  1199
"0    aload_0 
44e09ad4ae15 Text cleanup
vranyj1
parents:
diff changeset
  1200
1    getfield 3 [JavaFieldRef (stx.libjava.tests.simpleClasses.SimpleClassWithManyReferences 'values'[Ljava/lang/Object; offs=1)]
44e09ad4ae15 Text cleanup
vranyj1
parents:
diff changeset
  1201
4    iconst_4
44e09ad4ae15 Text cleanup
vranyj1
parents:
diff changeset
  1202
5    aaload
44e09ad4ae15 Text cleanup
vranyj1
parents:
diff changeset
  1203
6    checkcast 27 [java.lang.Long]
44e09ad4ae15 Text cleanup
vranyj1
parents:
diff changeset
  1204
9    invokevirtual 28 [JavaMethodRef (java.lang.Long 'longValue'()J)]
44e09ad4ae15 Text cleanup
vranyj1
parents:
diff changeset
  1205
     12   lreturn"
44e09ad4ae15 Text cleanup
vranyj1
parents:
diff changeset
  1206
44e09ad4ae15 Text cleanup
vranyj1
parents:
diff changeset
  1207
    "Created: / 14-03-2011 / 21:32:14 / Marcel Hlopko <hlopkmar@fel.cvut.cz>"
44e09ad4ae15 Text cleanup
vranyj1
parents:
diff changeset
  1208
    "Modified: / 16-03-2011 / 22:05:55 / Marcel Hlopko <hlopkmar@fel.cvut.cz>"
44e09ad4ae15 Text cleanup
vranyj1
parents:
diff changeset
  1209
!
44e09ad4ae15 Text cleanup
vranyj1
parents:
diff changeset
  1210
44e09ad4ae15 Text cleanup
vranyj1
parents:
diff changeset
  1211
testGetShort
44e09ad4ae15 Text cleanup
vranyj1
parents:
diff changeset
  1212
    | result  expResult |
44e09ad4ae15 Text cleanup
vranyj1
parents:
diff changeset
  1213
44e09ad4ae15 Text cleanup
vranyj1
parents:
diff changeset
  1214
    expResult := 1.
44e09ad4ae15 Text cleanup
vranyj1
parents:
diff changeset
  1215
    result := self 
44e09ad4ae15 Text cleanup
vranyj1
parents:
diff changeset
  1216
                invoke: #'getShort()S'
44e09ad4ae15 Text cleanup
vranyj1
parents:
diff changeset
  1217
                class: self loadSimpleClassWithManyReferences
44e09ad4ae15 Text cleanup
vranyj1
parents:
diff changeset
  1218
                receiver: self loadSimpleClassWithManyReferences new
44e09ad4ae15 Text cleanup
vranyj1
parents:
diff changeset
  1219
                args: nil.
44e09ad4ae15 Text cleanup
vranyj1
parents:
diff changeset
  1220
    self assertFalse: (result isNil).
44e09ad4ae15 Text cleanup
vranyj1
parents:
diff changeset
  1221
    self assertTrue: (result = expResult).
44e09ad4ae15 Text cleanup
vranyj1
parents:
diff changeset
  1222
"0    aload_0 
44e09ad4ae15 Text cleanup
vranyj1
parents:
diff changeset
  1223
1    getfield 3 [JavaFieldRef (stx.libjava.tests.simpleClasses.SimpleClassWithManyReferences 'values'[Ljava/lang/Object; offs=1)] 
44e09ad4ae15 Text cleanup
vranyj1
parents:
diff changeset
  1224
4    bipush 6
44e09ad4ae15 Text cleanup
vranyj1
parents:
diff changeset
  1225
6    aaload 
44e09ad4ae15 Text cleanup
vranyj1
parents:
diff changeset
  1226
7    checkcast 14 [java.lang.Short] 
44e09ad4ae15 Text cleanup
vranyj1
parents:
diff changeset
  1227
10   invokevirtual 30 [JavaMethodRef (java.lang.Short 'shortValue'()S)] 
44e09ad4ae15 Text cleanup
vranyj1
parents:
diff changeset
  1228
13   ireturn "
44e09ad4ae15 Text cleanup
vranyj1
parents:
diff changeset
  1229
44e09ad4ae15 Text cleanup
vranyj1
parents:
diff changeset
  1230
    "Created: / 14-03-2011 / 21:33:48 / Marcel Hlopko <hlopkmar@fel.cvut.cz>"
44e09ad4ae15 Text cleanup
vranyj1
parents:
diff changeset
  1231
    "Modified: / 16-03-2011 / 22:06:07 / Marcel Hlopko <hlopkmar@fel.cvut.cz>"
44e09ad4ae15 Text cleanup
vranyj1
parents:
diff changeset
  1232
!
44e09ad4ae15 Text cleanup
vranyj1
parents:
diff changeset
  1233
44e09ad4ae15 Text cleanup
vranyj1
parents:
diff changeset
  1234
testGetString
44e09ad4ae15 Text cleanup
vranyj1
parents:
diff changeset
  1235
|result|
44e09ad4ae15 Text cleanup
vranyj1
parents:
diff changeset
  1236
    result := self 
44e09ad4ae15 Text cleanup
vranyj1
parents:
diff changeset
  1237
                invoke: #'getString()Ljava/lang/String;'
44e09ad4ae15 Text cleanup
vranyj1
parents:
diff changeset
  1238
                class: self loadSimpleClassWithManyReferences
44e09ad4ae15 Text cleanup
vranyj1
parents:
diff changeset
  1239
                receiver: self loadSimpleClassWithManyReferences new
44e09ad4ae15 Text cleanup
vranyj1
parents:
diff changeset
  1240
                args: nil.
44e09ad4ae15 Text cleanup
vranyj1
parents:
diff changeset
  1241
        self assertFalse: (result isNil).
44e09ad4ae15 Text cleanup
vranyj1
parents:
diff changeset
  1242
44e09ad4ae15 Text cleanup
vranyj1
parents:
diff changeset
  1243
    "Modified: / 28-03-2011 / 22:40:16 / Marcel Hlopko <hlopkmar@fel.cvut.cz>"
44e09ad4ae15 Text cleanup
vranyj1
parents:
diff changeset
  1244
!
44e09ad4ae15 Text cleanup
vranyj1
parents:
diff changeset
  1245
44e09ad4ae15 Text cleanup
vranyj1
parents:
diff changeset
  1246
testInitSimpleClassWithManyReferences
44e09ad4ae15 Text cleanup
vranyj1
parents:
diff changeset
  1247
44e09ad4ae15 Text cleanup
vranyj1
parents:
diff changeset
  1248
    | c |
44e09ad4ae15 Text cleanup
vranyj1
parents:
diff changeset
  1249
    self 
44e09ad4ae15 Text cleanup
vranyj1
parents:
diff changeset
  1250
        invoke: #'<init>()V'
44e09ad4ae15 Text cleanup
vranyj1
parents:
diff changeset
  1251
        class: (c := self loadSimpleClassWithManyReferences)
44e09ad4ae15 Text cleanup
vranyj1
parents:
diff changeset
  1252
        receiver: c new 
44e09ad4ae15 Text cleanup
vranyj1
parents:
diff changeset
  1253
        args: nil.
44e09ad4ae15 Text cleanup
vranyj1
parents:
diff changeset
  1254
44e09ad4ae15 Text cleanup
vranyj1
parents:
diff changeset
  1255
    "Created: / 28-03-2011 / 22:39:37 / Marcel Hlopko <hlopkmar@fel.cvut.cz>"
44e09ad4ae15 Text cleanup
vranyj1
parents:
diff changeset
  1256
    "Modified: / 01-04-2011 / 14:54:24 / Jan Vrany <jan.vrany@fit.cvut.cz>"
44e09ad4ae15 Text cleanup
vranyj1
parents:
diff changeset
  1257
!
44e09ad4ae15 Text cleanup
vranyj1
parents:
diff changeset
  1258
44e09ad4ae15 Text cleanup
vranyj1
parents:
diff changeset
  1259
testLookupSwitch
44e09ad4ae15 Text cleanup
vranyj1
parents:
diff changeset
  1260
    | result  expResult |
44e09ad4ae15 Text cleanup
vranyj1
parents:
diff changeset
  1261
44e09ad4ae15 Text cleanup
vranyj1
parents:
diff changeset
  1262
    expResult := -1.
44e09ad4ae15 Text cleanup
vranyj1
parents:
diff changeset
  1263
    result := self 
44e09ad4ae15 Text cleanup
vranyj1
parents:
diff changeset
  1264
                invoke: #'switchInt(I)I'
44e09ad4ae15 Text cleanup
vranyj1
parents:
diff changeset
  1265
                class: self loadSwitchExamplesClass
44e09ad4ae15 Text cleanup
vranyj1
parents:
diff changeset
  1266
                receiver: self loadSwitchExamplesClass new
44e09ad4ae15 Text cleanup
vranyj1
parents:
diff changeset
  1267
                args: #(-1000).
44e09ad4ae15 Text cleanup
vranyj1
parents:
diff changeset
  1268
    self assertFalse: (result isNil).
44e09ad4ae15 Text cleanup
vranyj1
parents:
diff changeset
  1269
    self assertTrue: (result = expResult).
44e09ad4ae15 Text cleanup
vranyj1
parents:
diff changeset
  1270
44e09ad4ae15 Text cleanup
vranyj1
parents:
diff changeset
  1271
    "Created: / 21-03-2011 / 13:51:49 / Marcel Hlopko <hlopkmar@fel.cvut.cz>"
44e09ad4ae15 Text cleanup
vranyj1
parents:
diff changeset
  1272
!
44e09ad4ae15 Text cleanup
vranyj1
parents:
diff changeset
  1273
44e09ad4ae15 Text cleanup
vranyj1
parents:
diff changeset
  1274
testSetBoolean
44e09ad4ae15 Text cleanup
vranyj1
parents:
diff changeset
  1275
    | inst |
44e09ad4ae15 Text cleanup
vranyj1
parents:
diff changeset
  1276
44e09ad4ae15 Text cleanup
vranyj1
parents:
diff changeset
  1277
    inst := self loadSimpleClassWithManyReferences new.
44e09ad4ae15 Text cleanup
vranyj1
parents:
diff changeset
  1278
    self 
44e09ad4ae15 Text cleanup
vranyj1
parents:
diff changeset
  1279
        invoke: #'setBoolean(I)V'
44e09ad4ae15 Text cleanup
vranyj1
parents:
diff changeset
  1280
        class: inst class
44e09ad4ae15 Text cleanup
vranyj1
parents:
diff changeset
  1281
        receiver: inst
44e09ad4ae15 Text cleanup
vranyj1
parents:
diff changeset
  1282
        args: #( 5 ).
44e09ad4ae15 Text cleanup
vranyj1
parents:
diff changeset
  1283
    self 
44e09ad4ae15 Text cleanup
vranyj1
parents:
diff changeset
  1284
        invoke: #'setBoolean(I)V'
44e09ad4ae15 Text cleanup
vranyj1
parents:
diff changeset
  1285
        class: inst class
44e09ad4ae15 Text cleanup
vranyj1
parents:
diff changeset
  1286
        receiver: inst
44e09ad4ae15 Text cleanup
vranyj1
parents:
diff changeset
  1287
        args: #( 4 ).
44e09ad4ae15 Text cleanup
vranyj1
parents:
diff changeset
  1288
44e09ad4ae15 Text cleanup
vranyj1
parents:
diff changeset
  1289
"
44e09ad4ae15 Text cleanup
vranyj1
parents:
diff changeset
  1290
1:      ILOAD_1     (27)  ARGS: []                  STACK: [.. -> FIELD 1: 'Arg 1']
44e09ad4ae15 Text cleanup
vranyj1
parents:
diff changeset
  1291
2:      ICONST_2    (5)   ARGS: []                  STACK: [.. -> 2]
44e09ad4ae15 Text cleanup
vranyj1
parents:
diff changeset
  1292
3:      IREM        (112) ARGS: []                  STACK: [value, value -> result]
44e09ad4ae15 Text cleanup
vranyj1
parents:
diff changeset
  1293
4:      IFNE        (154) ARGS: [JMP to: 20]        STACK: [value -> ..]
44e09ad4ae15 Text cleanup
vranyj1
parents:
diff changeset
  1294
7:      ALOAD_0     (42)  ARGS: []                  STACK: [.. -> FIELD 0: stx.libjava.tests.simpleClasses.SimpleClassWithManyReferences]
44e09ad4ae15 Text cleanup
vranyj1
parents:
diff changeset
  1295
8:      GETFIELD    (180) ARGS: [JavaFieldRef (stx.libjava.tests.simpleClasses.SimpleClassWithManyReferences 'values'[Ljava/lang/Object; offs=1)] STACK: [objectRef -> objectRef]
44e09ad4ae15 Text cleanup
vranyj1
parents:
diff changeset
  1296
11:     BIPUSH      (16)  ARGS: [9]                 STACK: [.. -> value]
44e09ad4ae15 Text cleanup
vranyj1
parents:
diff changeset
  1297
13:     GETSTATIC   (178) ARGS: [JavaFieldRef (java.lang.Boolean 'TRUE'Ljava/lang/Boolean; offs=29)] STACK: [.. -> objectRef]
44e09ad4ae15 Text cleanup
vranyj1
parents:
diff changeset
  1298
16:     AASTORE     (83)  ARGS: []                  STACK: [arrayRef, index, value -> ..]
44e09ad4ae15 Text cleanup
vranyj1
parents:
diff changeset
  1299
17:     GOTO        (167) ARGS: [JMP to: 31]        STACK: [.. -> ..]
44e09ad4ae15 Text cleanup
vranyj1
parents:
diff changeset
  1300
20:     ALOAD_0     (42)  ARGS: []                  STACK: [.. -> FIELD 0: stx.libjava.tests.simpleClasses.SimpleClassWithManyReferences]
44e09ad4ae15 Text cleanup
vranyj1
parents:
diff changeset
  1301
21:     GETFIELD    (180) ARGS: [JavaFieldRef (stx.libjava.tests.simpleClasses.SimpleClassWithManyReferences 'values'[Ljava/lang/Object; offs=1)] STACK: [objectRef -> objectRef]
44e09ad4ae15 Text cleanup
vranyj1
parents:
diff changeset
  1302
24:     BIPUSH      (16)  ARGS: [9]                 STACK: [.. -> value]
44e09ad4ae15 Text cleanup
vranyj1
parents:
diff changeset
  1303
26:     ICONST_0    (3)   ARGS: []                  STACK: [.. -> 0]
44e09ad4ae15 Text cleanup
vranyj1
parents:
diff changeset
  1304
27:     INVSTATIC   (184) ARGS: [JavaMethodRef (java.lang.Boolean 'valueOf'(Z)Ljava/lang/Boolean;)] STACK: [[arg1, arg2, ...]  -> ..]
44e09ad4ae15 Text cleanup
vranyj1
parents:
diff changeset
  1305
30:     AASTORE     (83)  ARGS: []                  STACK: [arrayRef, index, value -> ..]
44e09ad4ae15 Text cleanup
vranyj1
parents:
diff changeset
  1306
31:     RETURN      (177) ARGS: []                  STACK: [.. -> EMPTY]"
44e09ad4ae15 Text cleanup
vranyj1
parents:
diff changeset
  1307
44e09ad4ae15 Text cleanup
vranyj1
parents:
diff changeset
  1308
    "Created: / 21-03-2011 / 18:53:48 / Marcel Hlopko <hlopkmar@fel.cvut.cz>"
44e09ad4ae15 Text cleanup
vranyj1
parents:
diff changeset
  1309
    "Modified: / 22-03-2011 / 12:18:51 / Marcel Hlopko <hlopkmar@fel.cvut.cz>"
44e09ad4ae15 Text cleanup
vranyj1
parents:
diff changeset
  1310
!
44e09ad4ae15 Text cleanup
vranyj1
parents:
diff changeset
  1311
44e09ad4ae15 Text cleanup
vranyj1
parents:
diff changeset
  1312
testTableSwitch
44e09ad4ae15 Text cleanup
vranyj1
parents:
diff changeset
  1313
    | result  expResult |
44e09ad4ae15 Text cleanup
vranyj1
parents:
diff changeset
  1314
44e09ad4ae15 Text cleanup
vranyj1
parents:
diff changeset
  1315
    expResult := 1.
44e09ad4ae15 Text cleanup
vranyj1
parents:
diff changeset
  1316
    result := self 
44e09ad4ae15 Text cleanup
vranyj1
parents:
diff changeset
  1317
                invoke: #'switchChar(C)I'
44e09ad4ae15 Text cleanup
vranyj1
parents:
diff changeset
  1318
                class: self loadSwitchExamplesClass
44e09ad4ae15 Text cleanup
vranyj1
parents:
diff changeset
  1319
                receiver: self loadSwitchExamplesClass new
44e09ad4ae15 Text cleanup
vranyj1
parents:
diff changeset
  1320
                args: #($b).
44e09ad4ae15 Text cleanup
vranyj1
parents:
diff changeset
  1321
    self assertFalse: (result isNil).
44e09ad4ae15 Text cleanup
vranyj1
parents:
diff changeset
  1322
    self assertTrue: (result = expResult).
44e09ad4ae15 Text cleanup
vranyj1
parents:
diff changeset
  1323
44e09ad4ae15 Text cleanup
vranyj1
parents:
diff changeset
  1324
    "Created: / 21-03-2011 / 13:51:25 / Marcel Hlopko <hlopkmar@fel.cvut.cz>"
44e09ad4ae15 Text cleanup
vranyj1
parents:
diff changeset
  1325
! !
44e09ad4ae15 Text cleanup
vranyj1
parents:
diff changeset
  1326
44e09ad4ae15 Text cleanup
vranyj1
parents:
diff changeset
  1327
!JavaByteCodeInterpreterTests class methodsFor:'documentation'!
44e09ad4ae15 Text cleanup
vranyj1
parents:
diff changeset
  1328
44e09ad4ae15 Text cleanup
vranyj1
parents:
diff changeset
  1329
version_SVN
44e09ad4ae15 Text cleanup
vranyj1
parents:
diff changeset
  1330
    ^ '$Id$'
44e09ad4ae15 Text cleanup
vranyj1
parents:
diff changeset
  1331
! !