RegressionTests__EnumerationTests.st
author Claus Gittinger <cg@exept.de>
Tue, 09 Jul 2019 18:53:03 +0200
changeset 2327 bf482d49aeaf
parent 1447 2351db93aa5b
child 1500 d406a10b2965
permissions -rw-r--r--
#QUALITY by exept class: RegressionTests::StringTests added: #test82c_expanding
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
1291
36b8896eb917 fix for linked index weak arrays
Claus Gittinger <cg@exept.de>
parents: 1056
diff changeset
     1
"{ Encoding: utf8 }"
36b8896eb917 fix for linked index weak arrays
Claus Gittinger <cg@exept.de>
parents: 1056
diff changeset
     2
1447
2351db93aa5b package changes
Claus Gittinger <cg@exept.de>
parents: 1291
diff changeset
     3
"{ Package: 'stx:goodies/regression' }"
72
2374180bfa0d initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
     4
95
362e58ff28ba checkin from browser
Claus Gittinger <cg@exept.de>
parents: 72
diff changeset
     5
"{ NameSpace: RegressionTests }"
362e58ff28ba checkin from browser
Claus Gittinger <cg@exept.de>
parents: 72
diff changeset
     6
207
87172b332b24 Convert to TestCase
Stefan Vogel <sv@exept.de>
parents: 181
diff changeset
     7
TestCase subclass:#EnumerationTests
72
2374180bfa0d initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
     8
	instanceVariableNames:''
2374180bfa0d initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
     9
	classVariableNames:''
2374180bfa0d initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    10
	poolDictionaries:''
1056
fa141a30d6f6 category
Claus Gittinger <cg@exept.de>
parents: 643
diff changeset
    11
	category:'tests-Regression-Collections'
72
2374180bfa0d initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    12
!
2374180bfa0d initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    13
2374180bfa0d initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    14
2374180bfa0d initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    15
!EnumerationTests class methodsFor:'tests'!
2374180bfa0d initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    16
2374180bfa0d initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    17
testArrayKeysAndValuesDo
2374180bfa0d initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    18
    "test GC while enumerating an array"
2374180bfa0d initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    19
2374180bfa0d initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    20
    |a|
2374180bfa0d initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    21
2374180bfa0d initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    22
    a := (1 to:100) asArray.
2374180bfa0d initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    23
2374180bfa0d initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    24
    10 timesRepeat:[
95
362e58ff28ba checkin from browser
Claus Gittinger <cg@exept.de>
parents: 72
diff changeset
    25
	a keysAndValuesDo:[:index :val |
362e58ff28ba checkin from browser
Claus Gittinger <cg@exept.de>
parents: 72
diff changeset
    26
	    ObjectMemory scavenge.
362e58ff28ba checkin from browser
Claus Gittinger <cg@exept.de>
parents: 72
diff changeset
    27
	    index printString.
362e58ff28ba checkin from browser
Claus Gittinger <cg@exept.de>
parents: 72
diff changeset
    28
	    ObjectMemory scavenge.
362e58ff28ba checkin from browser
Claus Gittinger <cg@exept.de>
parents: 72
diff changeset
    29
	    val printString.
362e58ff28ba checkin from browser
Claus Gittinger <cg@exept.de>
parents: 72
diff changeset
    30
	]
72
2374180bfa0d initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    31
    ]
2374180bfa0d initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    32
2374180bfa0d initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    33
    "
2374180bfa0d initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    34
     self testArrayKeysAndValuesDo
2374180bfa0d initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    35
    "
2374180bfa0d initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    36
! !
2374180bfa0d initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    37
207
87172b332b24 Convert to TestCase
Stefan Vogel <sv@exept.de>
parents: 181
diff changeset
    38
!EnumerationTests methodsFor:'tests'!
87172b332b24 Convert to TestCase
Stefan Vogel <sv@exept.de>
parents: 181
diff changeset
    39
87172b332b24 Convert to TestCase
Stefan Vogel <sv@exept.de>
parents: 181
diff changeset
    40
testArrayKeysAndValuesDo
87172b332b24 Convert to TestCase
Stefan Vogel <sv@exept.de>
parents: 181
diff changeset
    41
    "test GC while enumerating an array"
87172b332b24 Convert to TestCase
Stefan Vogel <sv@exept.de>
parents: 181
diff changeset
    42
87172b332b24 Convert to TestCase
Stefan Vogel <sv@exept.de>
parents: 181
diff changeset
    43
    |a|
87172b332b24 Convert to TestCase
Stefan Vogel <sv@exept.de>
parents: 181
diff changeset
    44
87172b332b24 Convert to TestCase
Stefan Vogel <sv@exept.de>
parents: 181
diff changeset
    45
    a := (1 to:100) asArray.
87172b332b24 Convert to TestCase
Stefan Vogel <sv@exept.de>
parents: 181
diff changeset
    46
87172b332b24 Convert to TestCase
Stefan Vogel <sv@exept.de>
parents: 181
diff changeset
    47
    10 timesRepeat:[
1447
2351db93aa5b package changes
Claus Gittinger <cg@exept.de>
parents: 1291
diff changeset
    48
	a keysAndValuesDo:[:index :val |
2351db93aa5b package changes
Claus Gittinger <cg@exept.de>
parents: 1291
diff changeset
    49
	    ObjectMemory scavenge.
2351db93aa5b package changes
Claus Gittinger <cg@exept.de>
parents: 1291
diff changeset
    50
	    index printString.
2351db93aa5b package changes
Claus Gittinger <cg@exept.de>
parents: 1291
diff changeset
    51
	    ObjectMemory scavenge.
2351db93aa5b package changes
Claus Gittinger <cg@exept.de>
parents: 1291
diff changeset
    52
	    val printString.
2351db93aa5b package changes
Claus Gittinger <cg@exept.de>
parents: 1291
diff changeset
    53
	]
207
87172b332b24 Convert to TestCase
Stefan Vogel <sv@exept.de>
parents: 181
diff changeset
    54
    ]
87172b332b24 Convert to TestCase
Stefan Vogel <sv@exept.de>
parents: 181
diff changeset
    55
87172b332b24 Convert to TestCase
Stefan Vogel <sv@exept.de>
parents: 181
diff changeset
    56
    "
643
c64d1153611e class definition
Claus Gittinger <cg@exept.de>
parents: 207
diff changeset
    57
     self new testArrayKeysAndValuesDo
207
87172b332b24 Convert to TestCase
Stefan Vogel <sv@exept.de>
parents: 181
diff changeset
    58
    "
643
c64d1153611e class definition
Claus Gittinger <cg@exept.de>
parents: 207
diff changeset
    59
c64d1153611e class definition
Claus Gittinger <cg@exept.de>
parents: 207
diff changeset
    60
    "Modified (comment): / 10-10-2011 / 13:48:48 / cg"
c64d1153611e class definition
Claus Gittinger <cg@exept.de>
parents: 207
diff changeset
    61
!
c64d1153611e class definition
Claus Gittinger <cg@exept.de>
parents: 207
diff changeset
    62
c64d1153611e class definition
Claus Gittinger <cg@exept.de>
parents: 207
diff changeset
    63
testWeakArrayKeysAndValuesDo
c64d1153611e class definition
Claus Gittinger <cg@exept.de>
parents: 207
diff changeset
    64
    "test GC while enumerating an array"
c64d1153611e class definition
Claus Gittinger <cg@exept.de>
parents: 207
diff changeset
    65
c64d1153611e class definition
Claus Gittinger <cg@exept.de>
parents: 207
diff changeset
    66
    |a w|
c64d1153611e class definition
Claus Gittinger <cg@exept.de>
parents: 207
diff changeset
    67
c64d1153611e class definition
Claus Gittinger <cg@exept.de>
parents: 207
diff changeset
    68
    a := WeakArray new:100.
c64d1153611e class definition
Claus Gittinger <cg@exept.de>
parents: 207
diff changeset
    69
    w := WeakArray new:100.
c64d1153611e class definition
Claus Gittinger <cg@exept.de>
parents: 207
diff changeset
    70
    1 to:a size do:[:i |
1447
2351db93aa5b package changes
Claus Gittinger <cg@exept.de>
parents: 1291
diff changeset
    71
	|o|
643
c64d1153611e class definition
Claus Gittinger <cg@exept.de>
parents: 207
diff changeset
    72
1447
2351db93aa5b package changes
Claus Gittinger <cg@exept.de>
parents: 1291
diff changeset
    73
	o := Object new.
2351db93aa5b package changes
Claus Gittinger <cg@exept.de>
parents: 1291
diff changeset
    74
	a at:i put:o.
2351db93aa5b package changes
Claus Gittinger <cg@exept.de>
parents: 1291
diff changeset
    75
	w at:i put:o.
643
c64d1153611e class definition
Claus Gittinger <cg@exept.de>
parents: 207
diff changeset
    76
    ].
c64d1153611e class definition
Claus Gittinger <cg@exept.de>
parents: 207
diff changeset
    77
c64d1153611e class definition
Claus Gittinger <cg@exept.de>
parents: 207
diff changeset
    78
    w keysAndValuesDo:[:index :val |
1447
2351db93aa5b package changes
Claus Gittinger <cg@exept.de>
parents: 1291
diff changeset
    79
	self assert:(val class == Object).
643
c64d1153611e class definition
Claus Gittinger <cg@exept.de>
parents: 207
diff changeset
    80
    ].
c64d1153611e class definition
Claus Gittinger <cg@exept.de>
parents: 207
diff changeset
    81
c64d1153611e class definition
Claus Gittinger <cg@exept.de>
parents: 207
diff changeset
    82
    w keysAndValuesDo:[:index :val |
1447
2351db93aa5b package changes
Claus Gittinger <cg@exept.de>
parents: 1291
diff changeset
    83
	index == 5 ifTrue:[
2351db93aa5b package changes
Claus Gittinger <cg@exept.de>
parents: 1291
diff changeset
    84
	    a at:7 put:nil.
2351db93aa5b package changes
Claus Gittinger <cg@exept.de>
parents: 1291
diff changeset
    85
	    ObjectMemory scavenge
2351db93aa5b package changes
Claus Gittinger <cg@exept.de>
parents: 1291
diff changeset
    86
	].
2351db93aa5b package changes
Claus Gittinger <cg@exept.de>
parents: 1291
diff changeset
    87
	index == 7 ifTrue:[
2351db93aa5b package changes
Claus Gittinger <cg@exept.de>
parents: 1291
diff changeset
    88
	    self assert:(val class == SmallInteger).
2351db93aa5b package changes
Claus Gittinger <cg@exept.de>
parents: 1291
diff changeset
    89
	]
643
c64d1153611e class definition
Claus Gittinger <cg@exept.de>
parents: 207
diff changeset
    90
    ]
c64d1153611e class definition
Claus Gittinger <cg@exept.de>
parents: 207
diff changeset
    91
c64d1153611e class definition
Claus Gittinger <cg@exept.de>
parents: 207
diff changeset
    92
    "
c64d1153611e class definition
Claus Gittinger <cg@exept.de>
parents: 207
diff changeset
    93
     self new testWeakArrayKeysAndValuesDo
c64d1153611e class definition
Claus Gittinger <cg@exept.de>
parents: 207
diff changeset
    94
    "
c64d1153611e class definition
Claus Gittinger <cg@exept.de>
parents: 207
diff changeset
    95
c64d1153611e class definition
Claus Gittinger <cg@exept.de>
parents: 207
diff changeset
    96
    "Created: / 10-10-2011 / 12:51:43 / cg"
207
87172b332b24 Convert to TestCase
Stefan Vogel <sv@exept.de>
parents: 181
diff changeset
    97
! !
87172b332b24 Convert to TestCase
Stefan Vogel <sv@exept.de>
parents: 181
diff changeset
    98
72
2374180bfa0d initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    99
!EnumerationTests class methodsFor:'documentation'!
2374180bfa0d initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   100
2374180bfa0d initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   101
version
2374180bfa0d initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   102
    ^ '$Header$'
2374180bfa0d initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   103
! !
1056
fa141a30d6f6 category
Claus Gittinger <cg@exept.de>
parents: 643
diff changeset
   104