src/JavaRuntimeConstantPoolTests.st
author hlopkmar
Fri, 13 May 2011 06:55:55 +0000
branchjk_new_structure
changeset 777 e6e61412ae43
parent 773 ff7dbe5581a3
child 778 caa3a009f617
permissions -rw-r--r--
refactoring tests.. and more needed
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
773
ff7dbe5581a3 cleaned tests class hierarchy, small fixes
hlopkmar
parents: 771
diff changeset
     3
AbstractJavaTestCase subclass:#JavaRuntimeConstantPoolTests
ff7dbe5581a3 cleaned tests class hierarchy, small fixes
hlopkmar
parents: 771
diff changeset
     4
	instanceVariableNames:''
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
771
fb8026dda011 Merged with /trunk
vranyj1
parents: 763
diff changeset
    11
!JavaRuntimeConstantPoolTests methodsFor:'tests'!
fb8026dda011 Merged with /trunk
vranyj1
parents: 763
diff changeset
    12
fb8026dda011 Merged with /trunk
vranyj1
parents: 763
diff changeset
    13
testInvalidateAll
fb8026dda011 Merged with /trunk
vranyj1
parents: 763
diff changeset
    14
    | newConstantPool  tmpConstantPoolCache |
fb8026dda011 Merged with /trunk
vranyj1
parents: 763
diff changeset
    15
fb8026dda011 Merged with /trunk
vranyj1
parents: 763
diff changeset
    16
    tmpConstantPoolCache := JavaConstantPool allConstantPools.
fb8026dda011 Merged with /trunk
vranyj1
parents: 763
diff changeset
    17
    JavaConstantPool allConstantPools: OrderedCollection new.
fb8026dda011 Merged with /trunk
vranyj1
parents: 763
diff changeset
    18
    newConstantPool := JavaConstantPool new: 8.
fb8026dda011 Merged with /trunk
vranyj1
parents: 763
diff changeset
    19
    newConstantPool at: 1 put: 6.
fb8026dda011 Merged with /trunk
vranyj1
parents: 763
diff changeset
    20
    newConstantPool at: 2 put: 'hello'.
fb8026dda011 Merged with /trunk
vranyj1
parents: 763
diff changeset
    21
    newConstantPool at: 3 put: (self getClassRefFor: 'Ljava/lang/Object;').
fb8026dda011 Merged with /trunk
vranyj1
parents: 763
diff changeset
    22
    newConstantPool at: 4
fb8026dda011 Merged with /trunk
vranyj1
parents: 763
diff changeset
    23
        put: (JavaMethodRef2  in: nil
fb8026dda011 Merged with /trunk
vranyj1
parents: 763
diff changeset
    24
                namedAndTyped: (self getName: '<init>' descriptor: '()V')
fb8026dda011 Merged with /trunk
vranyj1
parents: 763
diff changeset
    25
                inClassIdentifiedByRef: (newConstantPool at: 3)).
fb8026dda011 Merged with /trunk
vranyj1
parents: 763
diff changeset
    26
    newConstantPool at: 5 put: (self getClassRefFor:'Ljava/lang/String;').
fb8026dda011 Merged with /trunk
vranyj1
parents: 763
diff changeset
    27
    newConstantPool at: 6
fb8026dda011 Merged with /trunk
vranyj1
parents: 763
diff changeset
    28
        put: (JavaFieldRef2  in: nil
fb8026dda011 Merged with /trunk
vranyj1
parents: 763
diff changeset
    29
                namedAndTyped: (self getName: 'value' descriptor: '[C')
fb8026dda011 Merged with /trunk
vranyj1
parents: 763
diff changeset
    30
                inClassIdentifiedByRef: (newConstantPool at: 5)).
fb8026dda011 Merged with /trunk
vranyj1
parents: 763
diff changeset
    31
    newConstantPool at: 7 put: (self getClassRefFor: 'Ljava/lang/Runnable;').
fb8026dda011 Merged with /trunk
vranyj1
parents: 763
diff changeset
    32
    newConstantPool at: 8
fb8026dda011 Merged with /trunk
vranyj1
parents: 763
diff changeset
    33
        put: (JavaInterfaceMethodRef2 in: nil
fb8026dda011 Merged with /trunk
vranyj1
parents: 763
diff changeset
    34
                namedAndTyped: (self getName: 'run' descriptor: '()V')
fb8026dda011 Merged with /trunk
vranyj1
parents: 763
diff changeset
    35
                inClassIdentifiedByRef: (newConstantPool at: 7)).
fb8026dda011 Merged with /trunk
vranyj1
parents: 763
diff changeset
    36
    JavaConstantPool allConstantPools do: 
fb8026dda011 Merged with /trunk
vranyj1
parents: 763
diff changeset
    37
            [:each | 
fb8026dda011 Merged with /trunk
vranyj1
parents: 763
diff changeset
    38
            self 
fb8026dda011 Merged with /trunk
vranyj1
parents: 763
diff changeset
    39
                assertTrue: (JavaConstantPool allConstantPools includes: newConstantPool) ].
fb8026dda011 Merged with /trunk
vranyj1
parents: 763
diff changeset
    40
    JavaConstantPool allConstantPools: tmpConstantPoolCache.
fb8026dda011 Merged with /trunk
vranyj1
parents: 763
diff changeset
    41
fb8026dda011 Merged with /trunk
vranyj1
parents: 763
diff changeset
    42
    "Created: / 08-04-2011 / 17:03:56 / Marcel Hlopko <hlopkmar@fel.cvut.cz>"
fb8026dda011 Merged with /trunk
vranyj1
parents: 763
diff changeset
    43
    "Modified: / 10-05-2011 / 16:58:59 / Marcel Hlopko <hlopkmar@fel.cvut.cz>"
fb8026dda011 Merged with /trunk
vranyj1
parents: 763
diff changeset
    44
!
fb8026dda011 Merged with /trunk
vranyj1
parents: 763
diff changeset
    45
fb8026dda011 Merged with /trunk
vranyj1
parents: 763
diff changeset
    46
testInvalidateForClass
fb8026dda011 Merged with /trunk
vranyj1
parents: 763
diff changeset
    47
    | newConstantPool  tmpConstantPoolCache |
fb8026dda011 Merged with /trunk
vranyj1
parents: 763
diff changeset
    48
fb8026dda011 Merged with /trunk
vranyj1
parents: 763
diff changeset
    49
    "/backup cps
fb8026dda011 Merged with /trunk
vranyj1
parents: 763
diff changeset
    50
    tmpConstantPoolCache := JavaConstantPool allConstantPools.
fb8026dda011 Merged with /trunk
vranyj1
parents: 763
diff changeset
    51
    JavaConstantPool allConstantPools: OrderedCollection new.
fb8026dda011 Merged with /trunk
vranyj1
parents: 763
diff changeset
    52
    newConstantPool := JavaConstantPool new: 8.
fb8026dda011 Merged with /trunk
vranyj1
parents: 763
diff changeset
    53
    newConstantPool at: 1 put: 6.
fb8026dda011 Merged with /trunk
vranyj1
parents: 763
diff changeset
    54
    newConstantPool at: 2 put: 'hello'.
fb8026dda011 Merged with /trunk
vranyj1
parents: 763
diff changeset
    55
    newConstantPool at: 3
fb8026dda011 Merged with /trunk
vranyj1
parents: 763
diff changeset
    56
        put: (self getClassRefFor: 
fb8026dda011 Merged with /trunk
vranyj1
parents: 763
diff changeset
    57
                'Lstx/libjava/tests/mocks/ImplementorOfPublicInterface;').
fb8026dda011 Merged with /trunk
vranyj1
parents: 763
diff changeset
    58
    newConstantPool at: 4
fb8026dda011 Merged with /trunk
vranyj1
parents: 763
diff changeset
    59
        put: (JavaMethodRef2 in: nil namedAndTyped: (self getName: 'publicMethod'
fb8026dda011 Merged with /trunk
vranyj1
parents: 763
diff changeset
    60
                        descriptor: '()Ljava/lang/String;')
fb8026dda011 Merged with /trunk
vranyj1
parents: 763
diff changeset
    61
                inClassIdentifiedByRef: (newConstantPool at: 3)).
fb8026dda011 Merged with /trunk
vranyj1
parents: 763
diff changeset
    62
    newConstantPool at: 5
fb8026dda011 Merged with /trunk
vranyj1
parents: 763
diff changeset
    63
        put: (self getClassRefFor: 'Lstx/libjava/tests/mocks/PublicClass;').
fb8026dda011 Merged with /trunk
vranyj1
parents: 763
diff changeset
    64
    newConstantPool at: 6
fb8026dda011 Merged with /trunk
vranyj1
parents: 763
diff changeset
    65
        put: (JavaFieldRef2 in: nil namedAndTyped: (self getName:'publicField'
fb8026dda011 Merged with /trunk
vranyj1
parents: 763
diff changeset
    66
                        descriptor: 'Ljava/lang/String;')
fb8026dda011 Merged with /trunk
vranyj1
parents: 763
diff changeset
    67
                inClassIdentifiedByRef: (newConstantPool at: 5)).
fb8026dda011 Merged with /trunk
vranyj1
parents: 763
diff changeset
    68
    newConstantPool at: 7 put: (self getClassRefFor: 'Ljava/lang/Runnable;').
fb8026dda011 Merged with /trunk
vranyj1
parents: 763
diff changeset
    69
    newConstantPool at: 8
fb8026dda011 Merged with /trunk
vranyj1
parents: 763
diff changeset
    70
        put: (JavaInterfaceMethodRef2 in: nil
fb8026dda011 Merged with /trunk
vranyj1
parents: 763
diff changeset
    71
                namedAndTyped: (self getName: 'run' descriptor: '()V')
fb8026dda011 Merged with /trunk
vranyj1
parents: 763
diff changeset
    72
                inClassIdentifiedByRef: (newConstantPool at: 7)).
fb8026dda011 Merged with /trunk
vranyj1
parents: 763
diff changeset
    73
    
fb8026dda011 Merged with /trunk
vranyj1
parents: 763
diff changeset
    74
    "/end of initialization part
fb8026dda011 Merged with /trunk
vranyj1
parents: 763
diff changeset
    75
    
fb8026dda011 Merged with /trunk
vranyj1
parents: 763
diff changeset
    76
    newConstantPool do: [:each | each isJavaRef ifTrue: [ each resolve ] ].
fb8026dda011 Merged with /trunk
vranyj1
parents: 763
diff changeset
    77
    
fb8026dda011 Merged with /trunk
vranyj1
parents: 763
diff changeset
    78
    "/end of resolving part
fb8026dda011 Merged with /trunk
vranyj1
parents: 763
diff changeset
    79
    
fb8026dda011 Merged with /trunk
vranyj1
parents: 763
diff changeset
    80
    JavaConstantPool 
fb8026dda011 Merged with /trunk
vranyj1
parents: 763
diff changeset
    81
        invalidateReferencesToClass: 'Lstx/libjava/tests/mocks/PublicClass;'.
fb8026dda011 Merged with /trunk
vranyj1
parents: 763
diff changeset
    82
    self assertTrue: (newConstantPool at: 3) isResolved.
fb8026dda011 Merged with /trunk
vranyj1
parents: 763
diff changeset
    83
    self assertTrue: (newConstantPool at: 7) isResolved.
fb8026dda011 Merged with /trunk
vranyj1
parents: 763
diff changeset
    84
    self assertTrue: (newConstantPool at: 5) isResolved not.
fb8026dda011 Merged with /trunk
vranyj1
parents: 763
diff changeset
    85
    
fb8026dda011 Merged with /trunk
vranyj1
parents: 763
diff changeset
    86
    "/and put pack what was there before
fb8026dda011 Merged with /trunk
vranyj1
parents: 763
diff changeset
    87
    
fb8026dda011 Merged with /trunk
vranyj1
parents: 763
diff changeset
    88
    JavaConstantPool allConstantPools: tmpConstantPoolCache.
fb8026dda011 Merged with /trunk
vranyj1
parents: 763
diff changeset
    89
fb8026dda011 Merged with /trunk
vranyj1
parents: 763
diff changeset
    90
    "Created: / 08-04-2011 / 17:10:42 / Marcel Hlopko <hlopkmar@fel.cvut.cz>"
fb8026dda011 Merged with /trunk
vranyj1
parents: 763
diff changeset
    91
    "Modified: / 10-05-2011 / 16:57:57 / Marcel Hlopko <hlopkmar@fel.cvut.cz>"
fb8026dda011 Merged with /trunk
vranyj1
parents: 763
diff changeset
    92
!
fb8026dda011 Merged with /trunk
vranyj1
parents: 763
diff changeset
    93
fb8026dda011 Merged with /trunk
vranyj1
parents: 763
diff changeset
    94
testNewCreatedCPIsInCache
fb8026dda011 Merged with /trunk
vranyj1
parents: 763
diff changeset
    95
|newConstantPool|
fb8026dda011 Merged with /trunk
vranyj1
parents: 763
diff changeset
    96
newConstantPool := JavaConstantPool new: 500.
fb8026dda011 Merged with /trunk
vranyj1
parents: 763
diff changeset
    97
self assertTrue: (JavaConstantPool allConstantPools includes: newConstantPool).
fb8026dda011 Merged with /trunk
vranyj1
parents: 763
diff changeset
    98
JavaConstantPool allConstantPools remove: newConstantPool.
fb8026dda011 Merged with /trunk
vranyj1
parents: 763
diff changeset
    99
fb8026dda011 Merged with /trunk
vranyj1
parents: 763
diff changeset
   100
    "Created: / 08-04-2011 / 16:57:59 / Marcel Hlopko <hlopkmar@fel.cvut.cz>"
fb8026dda011 Merged with /trunk
vranyj1
parents: 763
diff changeset
   101
! !
fb8026dda011 Merged with /trunk
vranyj1
parents: 763
diff changeset
   102
752
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   103
!JavaRuntimeConstantPoolTests class methodsFor:'documentation'!
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   104
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   105
version_SVN
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   106
    ^ '$Id$'
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   107
! !