RegressionTests__WeakCollectionTest.st
author Claus Gittinger <cg@exept.de>
Sat, 01 Mar 2014 14:54:00 +0100
changeset 1061 34aa7fc79330
parent 868 745b639be55b
child 1302 8149bc9ff84f
permissions -rw-r--r--
category
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
146
b86931293eb3 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
     1
"{ Package: 'exept:regression' }"
b86931293eb3 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
     2
b86931293eb3 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
     3
"{ NameSpace: RegressionTests }"
b86931293eb3 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
     4
b86931293eb3 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
     5
TestCase subclass:#WeakCollectionTest
b86931293eb3 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
     6
	instanceVariableNames:''
b86931293eb3 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
     7
	classVariableNames:''
b86931293eb3 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
     8
	poolDictionaries:''
1061
34aa7fc79330 category
Claus Gittinger <cg@exept.de>
parents: 868
diff changeset
     9
	category:'tests-Regression-Collections'
146
b86931293eb3 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    10
!
b86931293eb3 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    11
b86931293eb3 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    12
b86931293eb3 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    13
!WeakCollectionTest methodsFor:'tests'!
b86931293eb3 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    14
b86931293eb3 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    15
fetchValueAtKey:k from:aWeakValueDict
b86931293eb3 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    16
b86931293eb3 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    17
    ^ aWeakValueDict at:k
b86931293eb3 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    18
b86931293eb3 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    19
    "
b86931293eb3 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    20
     self run:#testWeakValueDictionary3
b86931293eb3 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    21
    "
b86931293eb3 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    22
!
b86931293eb3 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    23
b86931293eb3 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    24
fetchValueAtKey:k from:aWeakValueDict ifAbsent:exArg
b86931293eb3 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    25
b86931293eb3 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    26
    ^ aWeakValueDict at:k ifAbsent:exArg
b86931293eb3 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    27
b86931293eb3 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    28
    "
b86931293eb3 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    29
     self run:#testWeakValueDictionary3
b86931293eb3 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    30
    "
b86931293eb3 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    31
!
b86931293eb3 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    32
868
745b639be55b class: RegressionTests::WeakCollectionTest
Claus Gittinger <cg@exept.de>
parents: 266
diff changeset
    33
testWeakIdentityDictionary1
745b639be55b class: RegressionTests::WeakCollectionTest
Claus Gittinger <cg@exept.de>
parents: 266
diff changeset
    34
    |w o1 o2|
745b639be55b class: RegressionTests::WeakCollectionTest
Claus Gittinger <cg@exept.de>
parents: 266
diff changeset
    35
745b639be55b class: RegressionTests::WeakCollectionTest
Claus Gittinger <cg@exept.de>
parents: 266
diff changeset
    36
    w := WeakIdentityDictionary new.
745b639be55b class: RegressionTests::WeakCollectionTest
Claus Gittinger <cg@exept.de>
parents: 266
diff changeset
    37
    o1 := Object new.
745b639be55b class: RegressionTests::WeakCollectionTest
Claus Gittinger <cg@exept.de>
parents: 266
diff changeset
    38
    o2 := Object new.
745b639be55b class: RegressionTests::WeakCollectionTest
Claus Gittinger <cg@exept.de>
parents: 266
diff changeset
    39
745b639be55b class: RegressionTests::WeakCollectionTest
Claus Gittinger <cg@exept.de>
parents: 266
diff changeset
    40
    w at:o1 put:'o1'.
745b639be55b class: RegressionTests::WeakCollectionTest
Claus Gittinger <cg@exept.de>
parents: 266
diff changeset
    41
    w at:o2 put:'o2'.
745b639be55b class: RegressionTests::WeakCollectionTest
Claus Gittinger <cg@exept.de>
parents: 266
diff changeset
    42
745b639be55b class: RegressionTests::WeakCollectionTest
Claus Gittinger <cg@exept.de>
parents: 266
diff changeset
    43
    ObjectMemory garbageCollect.
745b639be55b class: RegressionTests::WeakCollectionTest
Claus Gittinger <cg@exept.de>
parents: 266
diff changeset
    44
    ObjectMemory tenure.
745b639be55b class: RegressionTests::WeakCollectionTest
Claus Gittinger <cg@exept.de>
parents: 266
diff changeset
    45
    ObjectMemory garbageCollect.
745b639be55b class: RegressionTests::WeakCollectionTest
Claus Gittinger <cg@exept.de>
parents: 266
diff changeset
    46
    ObjectMemory finalize.
745b639be55b class: RegressionTests::WeakCollectionTest
Claus Gittinger <cg@exept.de>
parents: 266
diff changeset
    47
745b639be55b class: RegressionTests::WeakCollectionTest
Claus Gittinger <cg@exept.de>
parents: 266
diff changeset
    48
    self assert:(w size == 2).
745b639be55b class: RegressionTests::WeakCollectionTest
Claus Gittinger <cg@exept.de>
parents: 266
diff changeset
    49
745b639be55b class: RegressionTests::WeakCollectionTest
Claus Gittinger <cg@exept.de>
parents: 266
diff changeset
    50
    o1 := nil.
745b639be55b class: RegressionTests::WeakCollectionTest
Claus Gittinger <cg@exept.de>
parents: 266
diff changeset
    51
    
745b639be55b class: RegressionTests::WeakCollectionTest
Claus Gittinger <cg@exept.de>
parents: 266
diff changeset
    52
    ObjectMemory garbageCollect.
745b639be55b class: RegressionTests::WeakCollectionTest
Claus Gittinger <cg@exept.de>
parents: 266
diff changeset
    53
    ObjectMemory tenure.
745b639be55b class: RegressionTests::WeakCollectionTest
Claus Gittinger <cg@exept.de>
parents: 266
diff changeset
    54
    ObjectMemory garbageCollect.
745b639be55b class: RegressionTests::WeakCollectionTest
Claus Gittinger <cg@exept.de>
parents: 266
diff changeset
    55
    ObjectMemory finalize.
745b639be55b class: RegressionTests::WeakCollectionTest
Claus Gittinger <cg@exept.de>
parents: 266
diff changeset
    56
745b639be55b class: RegressionTests::WeakCollectionTest
Claus Gittinger <cg@exept.de>
parents: 266
diff changeset
    57
    self assert:(w size == 1).
745b639be55b class: RegressionTests::WeakCollectionTest
Claus Gittinger <cg@exept.de>
parents: 266
diff changeset
    58
745b639be55b class: RegressionTests::WeakCollectionTest
Claus Gittinger <cg@exept.de>
parents: 266
diff changeset
    59
    o2 := nil.
745b639be55b class: RegressionTests::WeakCollectionTest
Claus Gittinger <cg@exept.de>
parents: 266
diff changeset
    60
745b639be55b class: RegressionTests::WeakCollectionTest
Claus Gittinger <cg@exept.de>
parents: 266
diff changeset
    61
    ObjectMemory garbageCollect.
745b639be55b class: RegressionTests::WeakCollectionTest
Claus Gittinger <cg@exept.de>
parents: 266
diff changeset
    62
    ObjectMemory tenure.
745b639be55b class: RegressionTests::WeakCollectionTest
Claus Gittinger <cg@exept.de>
parents: 266
diff changeset
    63
    ObjectMemory garbageCollect.
745b639be55b class: RegressionTests::WeakCollectionTest
Claus Gittinger <cg@exept.de>
parents: 266
diff changeset
    64
    ObjectMemory finalize.
745b639be55b class: RegressionTests::WeakCollectionTest
Claus Gittinger <cg@exept.de>
parents: 266
diff changeset
    65
745b639be55b class: RegressionTests::WeakCollectionTest
Claus Gittinger <cg@exept.de>
parents: 266
diff changeset
    66
    self assert:(w size == 0).
745b639be55b class: RegressionTests::WeakCollectionTest
Claus Gittinger <cg@exept.de>
parents: 266
diff changeset
    67
745b639be55b class: RegressionTests::WeakCollectionTest
Claus Gittinger <cg@exept.de>
parents: 266
diff changeset
    68
    "
745b639be55b class: RegressionTests::WeakCollectionTest
Claus Gittinger <cg@exept.de>
parents: 266
diff changeset
    69
     self run:#testWeakIdentityDictionary1
745b639be55b class: RegressionTests::WeakCollectionTest
Claus Gittinger <cg@exept.de>
parents: 266
diff changeset
    70
    "
745b639be55b class: RegressionTests::WeakCollectionTest
Claus Gittinger <cg@exept.de>
parents: 266
diff changeset
    71
!
745b639be55b class: RegressionTests::WeakCollectionTest
Claus Gittinger <cg@exept.de>
parents: 266
diff changeset
    72
745b639be55b class: RegressionTests::WeakCollectionTest
Claus Gittinger <cg@exept.de>
parents: 266
diff changeset
    73
testWeakIdentityDictionary2
745b639be55b class: RegressionTests::WeakCollectionTest
Claus Gittinger <cg@exept.de>
parents: 266
diff changeset
    74
    |w o1 o2|
745b639be55b class: RegressionTests::WeakCollectionTest
Claus Gittinger <cg@exept.de>
parents: 266
diff changeset
    75
745b639be55b class: RegressionTests::WeakCollectionTest
Claus Gittinger <cg@exept.de>
parents: 266
diff changeset
    76
    w := WeakIdentityDictionary new.
745b639be55b class: RegressionTests::WeakCollectionTest
Claus Gittinger <cg@exept.de>
parents: 266
diff changeset
    77
    o1 := '1' copy.
745b639be55b class: RegressionTests::WeakCollectionTest
Claus Gittinger <cg@exept.de>
parents: 266
diff changeset
    78
    o2 := '2' copy.
745b639be55b class: RegressionTests::WeakCollectionTest
Claus Gittinger <cg@exept.de>
parents: 266
diff changeset
    79
745b639be55b class: RegressionTests::WeakCollectionTest
Claus Gittinger <cg@exept.de>
parents: 266
diff changeset
    80
    w at:o1 put:'o1'.
745b639be55b class: RegressionTests::WeakCollectionTest
Claus Gittinger <cg@exept.de>
parents: 266
diff changeset
    81
    w at:o2 put:'o2'.
745b639be55b class: RegressionTests::WeakCollectionTest
Claus Gittinger <cg@exept.de>
parents: 266
diff changeset
    82
745b639be55b class: RegressionTests::WeakCollectionTest
Claus Gittinger <cg@exept.de>
parents: 266
diff changeset
    83
    ObjectMemory garbageCollect.
745b639be55b class: RegressionTests::WeakCollectionTest
Claus Gittinger <cg@exept.de>
parents: 266
diff changeset
    84
    ObjectMemory tenure.
745b639be55b class: RegressionTests::WeakCollectionTest
Claus Gittinger <cg@exept.de>
parents: 266
diff changeset
    85
    ObjectMemory garbageCollect.
745b639be55b class: RegressionTests::WeakCollectionTest
Claus Gittinger <cg@exept.de>
parents: 266
diff changeset
    86
    ObjectMemory finalize.
745b639be55b class: RegressionTests::WeakCollectionTest
Claus Gittinger <cg@exept.de>
parents: 266
diff changeset
    87
745b639be55b class: RegressionTests::WeakCollectionTest
Claus Gittinger <cg@exept.de>
parents: 266
diff changeset
    88
    self assert:(w size == 2).
745b639be55b class: RegressionTests::WeakCollectionTest
Claus Gittinger <cg@exept.de>
parents: 266
diff changeset
    89
745b639be55b class: RegressionTests::WeakCollectionTest
Claus Gittinger <cg@exept.de>
parents: 266
diff changeset
    90
    o1 := nil.
745b639be55b class: RegressionTests::WeakCollectionTest
Claus Gittinger <cg@exept.de>
parents: 266
diff changeset
    91
    
745b639be55b class: RegressionTests::WeakCollectionTest
Claus Gittinger <cg@exept.de>
parents: 266
diff changeset
    92
    ObjectMemory garbageCollect.
745b639be55b class: RegressionTests::WeakCollectionTest
Claus Gittinger <cg@exept.de>
parents: 266
diff changeset
    93
    ObjectMemory tenure.
745b639be55b class: RegressionTests::WeakCollectionTest
Claus Gittinger <cg@exept.de>
parents: 266
diff changeset
    94
    ObjectMemory garbageCollect.
745b639be55b class: RegressionTests::WeakCollectionTest
Claus Gittinger <cg@exept.de>
parents: 266
diff changeset
    95
    ObjectMemory finalize.
745b639be55b class: RegressionTests::WeakCollectionTest
Claus Gittinger <cg@exept.de>
parents: 266
diff changeset
    96
745b639be55b class: RegressionTests::WeakCollectionTest
Claus Gittinger <cg@exept.de>
parents: 266
diff changeset
    97
    self assert:(w size == 1).
745b639be55b class: RegressionTests::WeakCollectionTest
Claus Gittinger <cg@exept.de>
parents: 266
diff changeset
    98
745b639be55b class: RegressionTests::WeakCollectionTest
Claus Gittinger <cg@exept.de>
parents: 266
diff changeset
    99
    o2 := nil.
745b639be55b class: RegressionTests::WeakCollectionTest
Claus Gittinger <cg@exept.de>
parents: 266
diff changeset
   100
745b639be55b class: RegressionTests::WeakCollectionTest
Claus Gittinger <cg@exept.de>
parents: 266
diff changeset
   101
    ObjectMemory garbageCollect.
745b639be55b class: RegressionTests::WeakCollectionTest
Claus Gittinger <cg@exept.de>
parents: 266
diff changeset
   102
    ObjectMemory tenure.
745b639be55b class: RegressionTests::WeakCollectionTest
Claus Gittinger <cg@exept.de>
parents: 266
diff changeset
   103
    ObjectMemory garbageCollect.
745b639be55b class: RegressionTests::WeakCollectionTest
Claus Gittinger <cg@exept.de>
parents: 266
diff changeset
   104
    ObjectMemory finalize.
745b639be55b class: RegressionTests::WeakCollectionTest
Claus Gittinger <cg@exept.de>
parents: 266
diff changeset
   105
745b639be55b class: RegressionTests::WeakCollectionTest
Claus Gittinger <cg@exept.de>
parents: 266
diff changeset
   106
    self assert:(w size == 0).
745b639be55b class: RegressionTests::WeakCollectionTest
Claus Gittinger <cg@exept.de>
parents: 266
diff changeset
   107
745b639be55b class: RegressionTests::WeakCollectionTest
Claus Gittinger <cg@exept.de>
parents: 266
diff changeset
   108
    "
745b639be55b class: RegressionTests::WeakCollectionTest
Claus Gittinger <cg@exept.de>
parents: 266
diff changeset
   109
     self run:#testWeakIdentityDictionary1
745b639be55b class: RegressionTests::WeakCollectionTest
Claus Gittinger <cg@exept.de>
parents: 266
diff changeset
   110
    "
745b639be55b class: RegressionTests::WeakCollectionTest
Claus Gittinger <cg@exept.de>
parents: 266
diff changeset
   111
!
745b639be55b class: RegressionTests::WeakCollectionTest
Claus Gittinger <cg@exept.de>
parents: 266
diff changeset
   112
146
b86931293eb3 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   113
testWeakValueDictionary1
b86931293eb3 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   114
    |ww N|
b86931293eb3 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   115
b86931293eb3 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   116
    N := 10000.
b86931293eb3 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   117
b86931293eb3 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   118
    ww := WeakValueDictionary new.
b86931293eb3 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   119
b86931293eb3 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   120
    1 "100" timesRepeat:[
266
7abd1fd501a5 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 181
diff changeset
   121
	(1 to:N) do:[:idx |
7abd1fd501a5 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 181
diff changeset
   122
	    |k v|
146
b86931293eb3 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   123
266
7abd1fd501a5 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 181
diff changeset
   124
	    k := 'k_' , idx printString , '_12345678901234567890'.
7abd1fd501a5 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 181
diff changeset
   125
	    v := 'v_' , idx printString , '_12345678901234567890'.
7abd1fd501a5 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 181
diff changeset
   126
	    ww at:k put:v.
7abd1fd501a5 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 181
diff changeset
   127
	].
146
b86931293eb3 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   128
266
7abd1fd501a5 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 181
diff changeset
   129
	(1 to:N) do:[:idx |
7abd1fd501a5 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 181
diff changeset
   130
	    |k v|
146
b86931293eb3 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   131
266
7abd1fd501a5 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 181
diff changeset
   132
	    k := 'k_' , idx printString , '_12345678901234567890'.
7abd1fd501a5 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 181
diff changeset
   133
	    v := ww at:k ifAbsent:nil.
7abd1fd501a5 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 181
diff changeset
   134
	    v notNil ifTrue:[
7abd1fd501a5 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 181
diff changeset
   135
		self halt.
7abd1fd501a5 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 181
diff changeset
   136
	    ]
7abd1fd501a5 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 181
diff changeset
   137
	].
146
b86931293eb3 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   138
    ].
b86931293eb3 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   139
b86931293eb3 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   140
    "
b86931293eb3 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   141
     self run:#testWeakValueDictionary1
b86931293eb3 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   142
    "
b86931293eb3 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   143
!
b86931293eb3 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   144
b86931293eb3 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   145
testWeakValueDictionary2
b86931293eb3 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   146
    |ww k v|
b86931293eb3 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   147
b86931293eb3 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   148
    ww := WeakValueDictionary new.
b86931293eb3 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   149
b86931293eb3 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   150
    ObjectMemory scavenge.
b86931293eb3 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   151
b86931293eb3 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   152
    k := 'k_' , 1 printString , '_12345678901234567890'.
b86931293eb3 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   153
    v := 'v_' , 1 printString , '_12345678901234567890'.
b86931293eb3 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   154
    ww at:k put:v.
b86931293eb3 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   155
b86931293eb3 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   156
    self assert: ( (ww at:k) == v ).
b86931293eb3 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   157
    ObjectMemory scavenge.
b86931293eb3 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   158
    self assert: ( (ww at:k) == v ).
b86931293eb3 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   159
    v := v copy.
b86931293eb3 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   160
    self assert: ( (ww at:k) = v ).
b86931293eb3 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   161
    ObjectMemory scavenge.
b86931293eb3 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   162
    self assert: ( (ww at:k ifAbsent:nil) == nil ).
b86931293eb3 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   163
b86931293eb3 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   164
b86931293eb3 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   165
    "
b86931293eb3 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   166
     self run:#testWeakValueDictionary2
b86931293eb3 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   167
    "
b86931293eb3 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   168
!
b86931293eb3 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   169
b86931293eb3 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   170
testWeakValueDictionary3
b86931293eb3 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   171
    |ww k v v2|
b86931293eb3 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   172
b86931293eb3 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   173
    ww := WeakValueDictionary new.
b86931293eb3 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   174
b86931293eb3 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   175
    ObjectMemory scavenge.
b86931293eb3 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   176
b86931293eb3 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   177
    k := 'k_' , 1 printString , '_12345678901234567890'.
b86931293eb3 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   178
    v := 'v_' , 1 printString , '_12345678901234567890'.
b86931293eb3 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   179
    ww at:k put:v.
b86931293eb3 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   180
b86931293eb3 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   181
    v2 := self fetchValueAtKey:k from:ww.
b86931293eb3 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   182
    self assert: ( v2 == v ).
b86931293eb3 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   183
    v2 := nil.
b86931293eb3 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   184
b86931293eb3 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   185
    v := v copy.
b86931293eb3 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   186
    ObjectMemory scavenge.
b86931293eb3 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   187
    v2 := self fetchValueAtKey:k from:ww ifAbsent:nil.
b86931293eb3 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   188
    self assert: ( v2 == nil ).
b86931293eb3 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   189
    v2 := nil.
b86931293eb3 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   190
b86931293eb3 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   191
b86931293eb3 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   192
    "
b86931293eb3 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   193
     self run:#testWeakValueDictionary3
b86931293eb3 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   194
    "
b86931293eb3 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   195
! !
b86931293eb3 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   196
b86931293eb3 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   197
!WeakCollectionTest class methodsFor:'documentation'!
b86931293eb3 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   198
b86931293eb3 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   199
version
b86931293eb3 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   200
    ^ '$Header$'
b86931293eb3 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   201
! !
868
745b639be55b class: RegressionTests::WeakCollectionTest
Claus Gittinger <cg@exept.de>
parents: 266
diff changeset
   202