RegressionTests__EnumerationTests.st
author Jan Vrany <jan.vrany@labware.com>
Thu, 25 Aug 2022 11:29:18 +0100
branchjv
changeset 2607 ddf2eb8b3f1d
parent 1567 e17701a073f9
permissions -rwxr-xr-x
Fix Windows tests for long paths in `exec:environment:...` This commit makes `Win32OperatingSystemTests >> testExec...` more robust by testing the error code rather than text of the exception which may change.
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
1447
2351db93aa5b package changes
Claus Gittinger <cg@exept.de>
parents: 1291
diff changeset
     1
"{ Package: 'stx:goodies/regression' }"
72
2374180bfa0d initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
     2
95
362e58ff28ba checkin from browser
Claus Gittinger <cg@exept.de>
parents: 72
diff changeset
     3
"{ NameSpace: RegressionTests }"
362e58ff28ba checkin from browser
Claus Gittinger <cg@exept.de>
parents: 72
diff changeset
     4
207
87172b332b24 Convert to TestCase
Stefan Vogel <sv@exept.de>
parents: 181
diff changeset
     5
TestCase subclass:#EnumerationTests
72
2374180bfa0d initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
     6
	instanceVariableNames:''
2374180bfa0d initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
     7
	classVariableNames:''
2374180bfa0d initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
     8
	poolDictionaries:''
1056
fa141a30d6f6 category
Claus Gittinger <cg@exept.de>
parents: 643
diff changeset
     9
	category:'tests-Regression-Collections'
72
2374180bfa0d initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    10
!
2374180bfa0d initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    11
2374180bfa0d initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    12
2374180bfa0d initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    13
!EnumerationTests class methodsFor:'tests'!
2374180bfa0d initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    14
2374180bfa0d initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    15
testArrayKeysAndValuesDo
2374180bfa0d initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    16
    "test GC while enumerating an array"
2374180bfa0d initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    17
2374180bfa0d initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    18
    |a|
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 := (1 to:100) asArray.
2374180bfa0d initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    21
2374180bfa0d initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    22
    10 timesRepeat:[
95
362e58ff28ba checkin from browser
Claus Gittinger <cg@exept.de>
parents: 72
diff changeset
    23
	a keysAndValuesDo:[:index :val |
362e58ff28ba checkin from browser
Claus Gittinger <cg@exept.de>
parents: 72
diff changeset
    24
	    ObjectMemory scavenge.
362e58ff28ba checkin from browser
Claus Gittinger <cg@exept.de>
parents: 72
diff changeset
    25
	    index printString.
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
	    val printString.
362e58ff28ba checkin from browser
Claus Gittinger <cg@exept.de>
parents: 72
diff changeset
    28
	]
72
2374180bfa0d initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    29
    ]
2374180bfa0d initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    30
2374180bfa0d initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    31
    "
2374180bfa0d initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    32
     self testArrayKeysAndValuesDo
2374180bfa0d initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    33
    "
2374180bfa0d initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    34
! !
2374180bfa0d initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    35
207
87172b332b24 Convert to TestCase
Stefan Vogel <sv@exept.de>
parents: 181
diff changeset
    36
!EnumerationTests methodsFor:'tests'!
87172b332b24 Convert to TestCase
Stefan Vogel <sv@exept.de>
parents: 181
diff changeset
    37
87172b332b24 Convert to TestCase
Stefan Vogel <sv@exept.de>
parents: 181
diff changeset
    38
testArrayKeysAndValuesDo
87172b332b24 Convert to TestCase
Stefan Vogel <sv@exept.de>
parents: 181
diff changeset
    39
    "test GC while enumerating an array"
87172b332b24 Convert to TestCase
Stefan Vogel <sv@exept.de>
parents: 181
diff changeset
    40
87172b332b24 Convert to TestCase
Stefan Vogel <sv@exept.de>
parents: 181
diff changeset
    41
    |a|
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 := (1 to:100) asArray.
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
    10 timesRepeat:[
1447
2351db93aa5b package changes
Claus Gittinger <cg@exept.de>
parents: 1291
diff changeset
    46
	a keysAndValuesDo:[:index :val |
2351db93aa5b package changes
Claus Gittinger <cg@exept.de>
parents: 1291
diff changeset
    47
	    ObjectMemory scavenge.
2351db93aa5b package changes
Claus Gittinger <cg@exept.de>
parents: 1291
diff changeset
    48
	    index printString.
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
	    val printString.
2351db93aa5b package changes
Claus Gittinger <cg@exept.de>
parents: 1291
diff changeset
    51
	]
207
87172b332b24 Convert to TestCase
Stefan Vogel <sv@exept.de>
parents: 181
diff changeset
    52
    ]
87172b332b24 Convert to TestCase
Stefan Vogel <sv@exept.de>
parents: 181
diff changeset
    53
87172b332b24 Convert to TestCase
Stefan Vogel <sv@exept.de>
parents: 181
diff changeset
    54
    "
643
c64d1153611e class definition
Claus Gittinger <cg@exept.de>
parents: 207
diff changeset
    55
     self new testArrayKeysAndValuesDo
207
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
c64d1153611e class definition
Claus Gittinger <cg@exept.de>
parents: 207
diff changeset
    58
    "Modified (comment): / 10-10-2011 / 13:48:48 / cg"
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
c64d1153611e class definition
Claus Gittinger <cg@exept.de>
parents: 207
diff changeset
    61
testWeakArrayKeysAndValuesDo
c64d1153611e class definition
Claus Gittinger <cg@exept.de>
parents: 207
diff changeset
    62
    "test GC while enumerating an array"
c64d1153611e class definition
Claus Gittinger <cg@exept.de>
parents: 207
diff changeset
    63
c64d1153611e class definition
Claus Gittinger <cg@exept.de>
parents: 207
diff changeset
    64
    |a w|
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 := WeakArray new:100.
c64d1153611e class definition
Claus Gittinger <cg@exept.de>
parents: 207
diff changeset
    67
    w := WeakArray new:100.
c64d1153611e class definition
Claus Gittinger <cg@exept.de>
parents: 207
diff changeset
    68
    1 to:a size do:[:i |
1447
2351db93aa5b package changes
Claus Gittinger <cg@exept.de>
parents: 1291
diff changeset
    69
	|o|
643
c64d1153611e class definition
Claus Gittinger <cg@exept.de>
parents: 207
diff changeset
    70
1447
2351db93aa5b package changes
Claus Gittinger <cg@exept.de>
parents: 1291
diff changeset
    71
	o := Object new.
2351db93aa5b package changes
Claus Gittinger <cg@exept.de>
parents: 1291
diff changeset
    72
	a at:i put:o.
2351db93aa5b package changes
Claus Gittinger <cg@exept.de>
parents: 1291
diff changeset
    73
	w at:i put:o.
643
c64d1153611e class definition
Claus Gittinger <cg@exept.de>
parents: 207
diff changeset
    74
    ].
c64d1153611e class definition
Claus Gittinger <cg@exept.de>
parents: 207
diff changeset
    75
c64d1153611e class definition
Claus Gittinger <cg@exept.de>
parents: 207
diff changeset
    76
    w keysAndValuesDo:[:index :val |
1447
2351db93aa5b package changes
Claus Gittinger <cg@exept.de>
parents: 1291
diff changeset
    77
	self assert:(val class == Object).
643
c64d1153611e class definition
Claus Gittinger <cg@exept.de>
parents: 207
diff changeset
    78
    ].
c64d1153611e class definition
Claus Gittinger <cg@exept.de>
parents: 207
diff changeset
    79
c64d1153611e class definition
Claus Gittinger <cg@exept.de>
parents: 207
diff changeset
    80
    w keysAndValuesDo:[:index :val |
1447
2351db93aa5b package changes
Claus Gittinger <cg@exept.de>
parents: 1291
diff changeset
    81
	index == 5 ifTrue:[
2351db93aa5b package changes
Claus Gittinger <cg@exept.de>
parents: 1291
diff changeset
    82
	    a at:7 put:nil.
2351db93aa5b package changes
Claus Gittinger <cg@exept.de>
parents: 1291
diff changeset
    83
	    ObjectMemory scavenge
2351db93aa5b package changes
Claus Gittinger <cg@exept.de>
parents: 1291
diff changeset
    84
	].
2351db93aa5b package changes
Claus Gittinger <cg@exept.de>
parents: 1291
diff changeset
    85
	index == 7 ifTrue:[
2351db93aa5b package changes
Claus Gittinger <cg@exept.de>
parents: 1291
diff changeset
    86
	    self assert:(val class == SmallInteger).
2351db93aa5b package changes
Claus Gittinger <cg@exept.de>
parents: 1291
diff changeset
    87
	]
643
c64d1153611e class definition
Claus Gittinger <cg@exept.de>
parents: 207
diff changeset
    88
    ]
c64d1153611e class definition
Claus Gittinger <cg@exept.de>
parents: 207
diff changeset
    89
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
     self new testWeakArrayKeysAndValuesDo
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
c64d1153611e class definition
Claus Gittinger <cg@exept.de>
parents: 207
diff changeset
    94
    "Created: / 10-10-2011 / 12:51:43 / cg"
207
87172b332b24 Convert to TestCase
Stefan Vogel <sv@exept.de>
parents: 181
diff changeset
    95
! !
87172b332b24 Convert to TestCase
Stefan Vogel <sv@exept.de>
parents: 181
diff changeset
    96
72
2374180bfa0d initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    97
!EnumerationTests class methodsFor:'documentation'!
2374180bfa0d initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    98
2374180bfa0d initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    99
version
2374180bfa0d initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   100
    ^ '$Header$'
2374180bfa0d initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   101
! !
1056
fa141a30d6f6 category
Claus Gittinger <cg@exept.de>
parents: 643
diff changeset
   102