src/JavaRuntimeConstantPoolTests.st
author vranyj1
Tue, 10 May 2011 21:04:10 +0000
branchjk_new_structure
changeset 771 fb8026dda011
parent 763 1e82b558abd3
child 773 ff7dbe5581a3
permissions -rw-r--r--
Merged with /trunk
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
752
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
     1
"{ Package: 'stx:libjava' }"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
     2
771
fb8026dda011 Merged with /trunk
vranyj1
parents: 763
diff changeset
     3
JavaClassReader2Tests subclass:#JavaRuntimeConstantPoolTests
761
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 758
diff changeset
     4
	instanceVariableNames:'exceptionThrowerBackup'
752
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
     5
	classVariableNames:''
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
     6
	poolDictionaries:''
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
     7
	category:'Languages-Java-Tests-RuntimeConstantPool'
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
     8
!
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
     9
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
    10
761
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 758
diff changeset
    11
!JavaRuntimeConstantPoolTests methodsFor:'helpers'!
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 758
diff changeset
    12
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 758
diff changeset
    13
disableMockedExceptionThrowing
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 758
diff changeset
    14
    JavaResolver uniqueInstance exceptionThrower: exceptionThrowerBackup.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 758
diff changeset
    15
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 758
diff changeset
    16
    "Created: / 13-04-2011 / 14:11:34 / Marcel Hlopko <hlopkmar@fel.cvut.cz>"
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 758
diff changeset
    17
!
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 758
diff changeset
    18
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 758
diff changeset
    19
enableMockedExceptionThrowing
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 758
diff changeset
    20
    exceptionThrowerBackup := JavaResolver uniqueInstance exceptionThrower.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 758
diff changeset
    21
    JavaResolver uniqueInstance exceptionThrower: JavaExceptionThrowerMock new.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 758
diff changeset
    22
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 758
diff changeset
    23
    "Created: / 13-04-2011 / 14:11:01 / Marcel Hlopko <hlopkmar@fel.cvut.cz>"
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 758
diff changeset
    24
! !
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 758
diff changeset
    25
771
fb8026dda011 Merged with /trunk
vranyj1
parents: 763
diff changeset
    26
!JavaRuntimeConstantPoolTests methodsFor:'infrastructure'!
fb8026dda011 Merged with /trunk
vranyj1
parents: 763
diff changeset
    27
fb8026dda011 Merged with /trunk
vranyj1
parents: 763
diff changeset
    28
setUp
fb8026dda011 Merged with /trunk
vranyj1
parents: 763
diff changeset
    29
self enableMockedExceptionThrowing.
fb8026dda011 Merged with /trunk
vranyj1
parents: 763
diff changeset
    30
fb8026dda011 Merged with /trunk
vranyj1
parents: 763
diff changeset
    31
    "Created: / 10-05-2011 / 16:00:20 / Marcel Hlopko <hlopkmar@fel.cvut.cz>"
fb8026dda011 Merged with /trunk
vranyj1
parents: 763
diff changeset
    32
!
fb8026dda011 Merged with /trunk
vranyj1
parents: 763
diff changeset
    33
fb8026dda011 Merged with /trunk
vranyj1
parents: 763
diff changeset
    34
tearDown
fb8026dda011 Merged with /trunk
vranyj1
parents: 763
diff changeset
    35
    self disableMockedExceptionThrowing.
fb8026dda011 Merged with /trunk
vranyj1
parents: 763
diff changeset
    36
fb8026dda011 Merged with /trunk
vranyj1
parents: 763
diff changeset
    37
    "Created: / 10-05-2011 / 16:00:30 / Marcel Hlopko <hlopkmar@fel.cvut.cz>"
fb8026dda011 Merged with /trunk
vranyj1
parents: 763
diff changeset
    38
! !
fb8026dda011 Merged with /trunk
vranyj1
parents: 763
diff changeset
    39
fb8026dda011 Merged with /trunk
vranyj1
parents: 763
diff changeset
    40
!JavaRuntimeConstantPoolTests methodsFor:'tests'!
fb8026dda011 Merged with /trunk
vranyj1
parents: 763
diff changeset
    41
fb8026dda011 Merged with /trunk
vranyj1
parents: 763
diff changeset
    42
testInvalidateAll
fb8026dda011 Merged with /trunk
vranyj1
parents: 763
diff changeset
    43
    | newConstantPool  tmpConstantPoolCache |
fb8026dda011 Merged with /trunk
vranyj1
parents: 763
diff changeset
    44
fb8026dda011 Merged with /trunk
vranyj1
parents: 763
diff changeset
    45
    tmpConstantPoolCache := JavaConstantPool allConstantPools.
fb8026dda011 Merged with /trunk
vranyj1
parents: 763
diff changeset
    46
    JavaConstantPool allConstantPools: OrderedCollection new.
fb8026dda011 Merged with /trunk
vranyj1
parents: 763
diff changeset
    47
    newConstantPool := JavaConstantPool new: 8.
fb8026dda011 Merged with /trunk
vranyj1
parents: 763
diff changeset
    48
    newConstantPool at: 1 put: 6.
fb8026dda011 Merged with /trunk
vranyj1
parents: 763
diff changeset
    49
    newConstantPool at: 2 put: 'hello'.
fb8026dda011 Merged with /trunk
vranyj1
parents: 763
diff changeset
    50
    newConstantPool at: 3 put: (self getClassRefFor: 'Ljava/lang/Object;').
fb8026dda011 Merged with /trunk
vranyj1
parents: 763
diff changeset
    51
    newConstantPool at: 4
fb8026dda011 Merged with /trunk
vranyj1
parents: 763
diff changeset
    52
        put: (JavaMethodRef2  in: nil
fb8026dda011 Merged with /trunk
vranyj1
parents: 763
diff changeset
    53
                namedAndTyped: (self getName: '<init>' descriptor: '()V')
fb8026dda011 Merged with /trunk
vranyj1
parents: 763
diff changeset
    54
                inClassIdentifiedByRef: (newConstantPool at: 3)).
fb8026dda011 Merged with /trunk
vranyj1
parents: 763
diff changeset
    55
    newConstantPool at: 5 put: (self getClassRefFor:'Ljava/lang/String;').
fb8026dda011 Merged with /trunk
vranyj1
parents: 763
diff changeset
    56
    newConstantPool at: 6
fb8026dda011 Merged with /trunk
vranyj1
parents: 763
diff changeset
    57
        put: (JavaFieldRef2  in: nil
fb8026dda011 Merged with /trunk
vranyj1
parents: 763
diff changeset
    58
                namedAndTyped: (self getName: 'value' descriptor: '[C')
fb8026dda011 Merged with /trunk
vranyj1
parents: 763
diff changeset
    59
                inClassIdentifiedByRef: (newConstantPool at: 5)).
fb8026dda011 Merged with /trunk
vranyj1
parents: 763
diff changeset
    60
    newConstantPool at: 7 put: (self getClassRefFor: 'Ljava/lang/Runnable;').
fb8026dda011 Merged with /trunk
vranyj1
parents: 763
diff changeset
    61
    newConstantPool at: 8
fb8026dda011 Merged with /trunk
vranyj1
parents: 763
diff changeset
    62
        put: (JavaInterfaceMethodRef2 in: nil
fb8026dda011 Merged with /trunk
vranyj1
parents: 763
diff changeset
    63
                namedAndTyped: (self getName: 'run' descriptor: '()V')
fb8026dda011 Merged with /trunk
vranyj1
parents: 763
diff changeset
    64
                inClassIdentifiedByRef: (newConstantPool at: 7)).
fb8026dda011 Merged with /trunk
vranyj1
parents: 763
diff changeset
    65
    JavaConstantPool allConstantPools do: 
fb8026dda011 Merged with /trunk
vranyj1
parents: 763
diff changeset
    66
            [:each | 
fb8026dda011 Merged with /trunk
vranyj1
parents: 763
diff changeset
    67
            self 
fb8026dda011 Merged with /trunk
vranyj1
parents: 763
diff changeset
    68
                assertTrue: (JavaConstantPool allConstantPools includes: newConstantPool) ].
fb8026dda011 Merged with /trunk
vranyj1
parents: 763
diff changeset
    69
    JavaConstantPool allConstantPools: tmpConstantPoolCache.
fb8026dda011 Merged with /trunk
vranyj1
parents: 763
diff changeset
    70
fb8026dda011 Merged with /trunk
vranyj1
parents: 763
diff changeset
    71
    "Created: / 08-04-2011 / 17:03:56 / Marcel Hlopko <hlopkmar@fel.cvut.cz>"
fb8026dda011 Merged with /trunk
vranyj1
parents: 763
diff changeset
    72
    "Modified: / 10-05-2011 / 16:58:59 / Marcel Hlopko <hlopkmar@fel.cvut.cz>"
fb8026dda011 Merged with /trunk
vranyj1
parents: 763
diff changeset
    73
!
fb8026dda011 Merged with /trunk
vranyj1
parents: 763
diff changeset
    74
fb8026dda011 Merged with /trunk
vranyj1
parents: 763
diff changeset
    75
testInvalidateForClass
fb8026dda011 Merged with /trunk
vranyj1
parents: 763
diff changeset
    76
    | newConstantPool  tmpConstantPoolCache |
fb8026dda011 Merged with /trunk
vranyj1
parents: 763
diff changeset
    77
fb8026dda011 Merged with /trunk
vranyj1
parents: 763
diff changeset
    78
    "/backup cps
fb8026dda011 Merged with /trunk
vranyj1
parents: 763
diff changeset
    79
    tmpConstantPoolCache := JavaConstantPool allConstantPools.
fb8026dda011 Merged with /trunk
vranyj1
parents: 763
diff changeset
    80
    JavaConstantPool allConstantPools: OrderedCollection new.
fb8026dda011 Merged with /trunk
vranyj1
parents: 763
diff changeset
    81
    newConstantPool := JavaConstantPool new: 8.
fb8026dda011 Merged with /trunk
vranyj1
parents: 763
diff changeset
    82
    newConstantPool at: 1 put: 6.
fb8026dda011 Merged with /trunk
vranyj1
parents: 763
diff changeset
    83
    newConstantPool at: 2 put: 'hello'.
fb8026dda011 Merged with /trunk
vranyj1
parents: 763
diff changeset
    84
    newConstantPool at: 3
fb8026dda011 Merged with /trunk
vranyj1
parents: 763
diff changeset
    85
        put: (self getClassRefFor: 
fb8026dda011 Merged with /trunk
vranyj1
parents: 763
diff changeset
    86
                'Lstx/libjava/tests/mocks/ImplementorOfPublicInterface;').
fb8026dda011 Merged with /trunk
vranyj1
parents: 763
diff changeset
    87
    newConstantPool at: 4
fb8026dda011 Merged with /trunk
vranyj1
parents: 763
diff changeset
    88
        put: (JavaMethodRef2 in: nil namedAndTyped: (self getName: 'publicMethod'
fb8026dda011 Merged with /trunk
vranyj1
parents: 763
diff changeset
    89
                        descriptor: '()Ljava/lang/String;')
fb8026dda011 Merged with /trunk
vranyj1
parents: 763
diff changeset
    90
                inClassIdentifiedByRef: (newConstantPool at: 3)).
fb8026dda011 Merged with /trunk
vranyj1
parents: 763
diff changeset
    91
    newConstantPool at: 5
fb8026dda011 Merged with /trunk
vranyj1
parents: 763
diff changeset
    92
        put: (self getClassRefFor: 'Lstx/libjava/tests/mocks/PublicClass;').
fb8026dda011 Merged with /trunk
vranyj1
parents: 763
diff changeset
    93
    newConstantPool at: 6
fb8026dda011 Merged with /trunk
vranyj1
parents: 763
diff changeset
    94
        put: (JavaFieldRef2 in: nil namedAndTyped: (self getName:'publicField'
fb8026dda011 Merged with /trunk
vranyj1
parents: 763
diff changeset
    95
                        descriptor: 'Ljava/lang/String;')
fb8026dda011 Merged with /trunk
vranyj1
parents: 763
diff changeset
    96
                inClassIdentifiedByRef: (newConstantPool at: 5)).
fb8026dda011 Merged with /trunk
vranyj1
parents: 763
diff changeset
    97
    newConstantPool at: 7 put: (self getClassRefFor: 'Ljava/lang/Runnable;').
fb8026dda011 Merged with /trunk
vranyj1
parents: 763
diff changeset
    98
    newConstantPool at: 8
fb8026dda011 Merged with /trunk
vranyj1
parents: 763
diff changeset
    99
        put: (JavaInterfaceMethodRef2 in: nil
fb8026dda011 Merged with /trunk
vranyj1
parents: 763
diff changeset
   100
                namedAndTyped: (self getName: 'run' descriptor: '()V')
fb8026dda011 Merged with /trunk
vranyj1
parents: 763
diff changeset
   101
                inClassIdentifiedByRef: (newConstantPool at: 7)).
fb8026dda011 Merged with /trunk
vranyj1
parents: 763
diff changeset
   102
    
fb8026dda011 Merged with /trunk
vranyj1
parents: 763
diff changeset
   103
    "/end of initialization part
fb8026dda011 Merged with /trunk
vranyj1
parents: 763
diff changeset
   104
    
fb8026dda011 Merged with /trunk
vranyj1
parents: 763
diff changeset
   105
    newConstantPool do: [:each | each isJavaRef ifTrue: [ each resolve ] ].
fb8026dda011 Merged with /trunk
vranyj1
parents: 763
diff changeset
   106
    
fb8026dda011 Merged with /trunk
vranyj1
parents: 763
diff changeset
   107
    "/end of resolving part
fb8026dda011 Merged with /trunk
vranyj1
parents: 763
diff changeset
   108
    
fb8026dda011 Merged with /trunk
vranyj1
parents: 763
diff changeset
   109
    JavaConstantPool 
fb8026dda011 Merged with /trunk
vranyj1
parents: 763
diff changeset
   110
        invalidateReferencesToClass: 'Lstx/libjava/tests/mocks/PublicClass;'.
fb8026dda011 Merged with /trunk
vranyj1
parents: 763
diff changeset
   111
    self assertTrue: (newConstantPool at: 3) isResolved.
fb8026dda011 Merged with /trunk
vranyj1
parents: 763
diff changeset
   112
    self assertTrue: (newConstantPool at: 7) isResolved.
fb8026dda011 Merged with /trunk
vranyj1
parents: 763
diff changeset
   113
    self assertTrue: (newConstantPool at: 5) isResolved not.
fb8026dda011 Merged with /trunk
vranyj1
parents: 763
diff changeset
   114
    
fb8026dda011 Merged with /trunk
vranyj1
parents: 763
diff changeset
   115
    "/and put pack what was there before
fb8026dda011 Merged with /trunk
vranyj1
parents: 763
diff changeset
   116
    
fb8026dda011 Merged with /trunk
vranyj1
parents: 763
diff changeset
   117
    JavaConstantPool allConstantPools: tmpConstantPoolCache.
fb8026dda011 Merged with /trunk
vranyj1
parents: 763
diff changeset
   118
fb8026dda011 Merged with /trunk
vranyj1
parents: 763
diff changeset
   119
    "Created: / 08-04-2011 / 17:10:42 / Marcel Hlopko <hlopkmar@fel.cvut.cz>"
fb8026dda011 Merged with /trunk
vranyj1
parents: 763
diff changeset
   120
    "Modified: / 10-05-2011 / 16:57:57 / Marcel Hlopko <hlopkmar@fel.cvut.cz>"
fb8026dda011 Merged with /trunk
vranyj1
parents: 763
diff changeset
   121
!
fb8026dda011 Merged with /trunk
vranyj1
parents: 763
diff changeset
   122
fb8026dda011 Merged with /trunk
vranyj1
parents: 763
diff changeset
   123
testNewCreatedCPIsInCache
fb8026dda011 Merged with /trunk
vranyj1
parents: 763
diff changeset
   124
|newConstantPool|
fb8026dda011 Merged with /trunk
vranyj1
parents: 763
diff changeset
   125
newConstantPool := JavaConstantPool new: 500.
fb8026dda011 Merged with /trunk
vranyj1
parents: 763
diff changeset
   126
self assertTrue: (JavaConstantPool allConstantPools includes: newConstantPool).
fb8026dda011 Merged with /trunk
vranyj1
parents: 763
diff changeset
   127
JavaConstantPool allConstantPools remove: newConstantPool.
fb8026dda011 Merged with /trunk
vranyj1
parents: 763
diff changeset
   128
fb8026dda011 Merged with /trunk
vranyj1
parents: 763
diff changeset
   129
    "Created: / 08-04-2011 / 16:57:59 / Marcel Hlopko <hlopkmar@fel.cvut.cz>"
fb8026dda011 Merged with /trunk
vranyj1
parents: 763
diff changeset
   130
! !
fb8026dda011 Merged with /trunk
vranyj1
parents: 763
diff changeset
   131
752
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   132
!JavaRuntimeConstantPoolTests class methodsFor:'documentation'!
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   133
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   134
version_SVN
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   135
    ^ '$Id$'
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   136
! !
771
fb8026dda011 Merged with /trunk
vranyj1
parents: 763
diff changeset
   137