RegressionTests__WeakCollectionTest.st
changeset 1447 2351db93aa5b
parent 1439 a51a503a55b8
child 1500 d406a10b2965
equal deleted inserted replaced
1446:c3b09cef9f87 1447:2351db93aa5b
     1 "{ Package: 'exept:regression' }"
     1 "{ Package: 'stx:goodies/regression' }"
     2 
     2 
     3 "{ NameSpace: RegressionTests }"
     3 "{ NameSpace: RegressionTests }"
     4 
     4 
     5 TestCase subclass:#WeakCollectionTest
     5 TestCase subclass:#WeakCollectionTest
     6 	instanceVariableNames:''
     6 	instanceVariableNames:''
    46     ObjectMemory finalize.
    46     ObjectMemory finalize.
    47 
    47 
    48     self assert:(w size == 2).
    48     self assert:(w size == 2).
    49 
    49 
    50     o1 := nil.
    50     o1 := nil.
    51     
    51 
    52     ObjectMemory garbageCollect.
    52     ObjectMemory garbageCollect.
    53     ObjectMemory finalize.
    53     ObjectMemory finalize.
    54 
    54 
    55     self assert:(w size == 1).
    55     self assert:(w size == 1).
    56 
    56 
    80     ObjectMemory finalize.
    80     ObjectMemory finalize.
    81 
    81 
    82     self assert:(w size == 2).
    82     self assert:(w size == 2).
    83 
    83 
    84     o1 := nil.
    84     o1 := nil.
    85     
    85 
    86     ObjectMemory garbageCollect.
    86     ObjectMemory garbageCollect.
    87     ObjectMemory finalize.
    87     ObjectMemory finalize.
    88 
    88 
    89     self assert:(w size == 1).
    89     self assert:(w size == 1).
    90 
    90 
   106     n := 10000.
   106     n := 10000.
   107 
   107 
   108     ww := WeakValueDictionary new.
   108     ww := WeakValueDictionary new.
   109 
   109 
   110     1 "100" timesRepeat:[
   110     1 "100" timesRepeat:[
   111         (1 to:n) do:[:idx |
   111 	(1 to:n) do:[:idx |
   112             |k v|
   112 	    |k v|
   113 
   113 
   114             k := 'k_' , idx printString , '_12345678901234567890'.
   114 	    k := 'k_' , idx printString , '_12345678901234567890'.
   115             v := 'v_' , idx printString , '_12345678901234567890'.
   115 	    v := 'v_' , idx printString , '_12345678901234567890'.
   116             ww at:k put:v.
   116 	    ww at:k put:v.
   117             k := v := nil.
   117 	    k := v := nil.
   118         ].
   118 	].
   119 
   119 
   120         ObjectMemory garbageCollect.
   120 	ObjectMemory garbageCollect.
   121 
   121 
   122         1 to:n do:[:idx |
   122 	1 to:n do:[:idx |
   123             |k v|
   123 	    |k v|
   124 
   124 
   125             k := 'k_' , idx printString , '_12345678901234567890'.
   125 	    k := 'k_' , idx printString , '_12345678901234567890'.
   126             v := ww at:k ifAbsent:nil.
   126 	    v := ww at:k ifAbsent:nil.
   127             self assert:v isNil.
   127 	    self assert:v isNil.
   128         ].
   128 	].
   129     ].
   129     ].
   130 
   130 
   131     "
   131     "
   132      self run:#testWeakValueDictionary1
   132      self run:#testWeakValueDictionary1
   133     "
   133     "