[Pkg] The Trunk: Tests-ar.92.mcz
commits at source.squeak.org
commits at source.squeak.org
Sun Sep 5 18:38:44 UTC 2010
Andreas Raab uploaded a new version of Tests to project The Trunk:
http://source.squeak.org/trunk/Tests-ar.92.mcz
==================== Summary ====================
Name: Tests-ar.92
Author: ar
Time: 5 September 2010, 11:38:08.447 am
UUID: deab0aa7-267f-b346-ae7f-6ca5cb46e5db
Ancestors: Tests-ar.91
Update dependency tests to reflect latest changes.
=============== Diff against Tests-ar.91 ===============
Item was changed:
----- Method: PackageDependencyTest>>testCompression (in category 'tests') -----
testCompression
self testPackage: 'Compression' dependsExactlyOn: #(
Collections
Exceptions
Files
Graphics
Kernel
Multilingual
SUnit
System
'ToolBuilder-Kernel'
- Tools
).!
Item was changed:
----- Method: PackageDependencyTest>>testCollections (in category 'tests') -----
testCollections
self testPackage: 'Collections' dependsExactlyOn: #(
Compiler
Kernel
- Compression
Exceptions
Files
Graphics
Multilingual
System
'ToolBuilder-Kernel'
).!
Item was changed:
----- Method: PackageDependencyTest>>testTrueType (in category 'tests') -----
testTrueType
self testPackage: 'TrueType' dependsExactlyOn: #(
Collections
Balloon
Exceptions
Files
Graphics
Kernel
Morphic
Multilingual
System
'ToolBuilder-Kernel'
- Tools
).!
Item was changed:
----- Method: PackageDependencyTest>>testSound (in category 'tests') -----
testSound
self testPackage: 'Sound' dependsExactlyOn: #(
Collections
Balloon
Files
Graphics
Kernel
Morphic
MorphicExtras
Network
System
'ToolBuilder-Kernel'
- Tools
).!
Item was changed:
----- Method: PackageDependencyTest>>testFiles (in category 'tests') -----
testFiles
self testPackage: 'Files' dependsExactlyOn: #(
Collections
Compression
Exceptions
Graphics
Kernel
Multilingual
- Network
System
'ToolBuilder-Kernel'
- Tools
).!
Item was changed:
----- Method: PackageDependencyTest>>testKernel (in category 'tests') -----
testKernel
self testPackage: 'Kernel' dependsExactlyOn: #(
Collections
Compiler
Compression
Exceptions
Files
Graphics
- Morphic
MorphicExtras
Multilingual
System
'ToolBuilder-Kernel'
Tools
Traits
).!
Item was changed:
----- Method: PackageDependencyTest>>testGraphics (in category 'tests') -----
testGraphics
self testPackage: 'Graphics' dependsExactlyOn: #(
Collections
Compression
Exceptions
Files
Kernel
Morphic
- MorphicExtras
Multilingual
- Network
System
'ToolBuilder-Kernel'
- Tools
TrueType
).!
Item was changed:
----- Method: PackageDependencyTest>>testPackage:dependsExactlyOn: (in category 'utilities') -----
testPackage: pkgName dependsExactlyOn: pkgList
"Ensure that the package with the given name depends only on the packages in pkgList.
NOTE: If you use this for fixing dependencies, classDeps includes the classes
and users from the package(s) not declared as dependents. Basically, you need
to fix all the references in classDeps to make the test pass."
| classDeps pi pkgDeps |
classDeps := IdentityDictionary new.
pi := PackageOrganizer default packageNamed: pkgName ifAbsent:[^self]. "unloaded"
pi classes do:[:pkgClass|
(classDeps at: (pkgClass superclass ifNil:[ProtoObject])
ifAbsentPut:[OrderedCollection new]) add: pkgClass name, ' superclass'.
].
pi methods do:[:mref| | cm |
cm := mref compiledMethod.
1 to: cm numLiterals do:[:i| | lit |
((lit := cm literalAt: i) isVariableBinding
and:[lit value isBehavior]) ifTrue:[(classDeps at: lit value ifAbsentPut:[OrderedCollection new]) add: cm methodClass asString, '>>', cm selector]]].
pkgDeps := Dictionary new.
classDeps keys do:[:aClass| | pkg |
pkg := PackageOrganizer default packageOfClass: aClass ifNone:[nil].
pkg ifNil:[
Transcript cr; show: 'WARNING: No package for ', aClass.
(classDeps removeKey: aClass) do:[:each| Transcript crtab; show: each].
] ifNotNil:[
(pkgDeps at: pkg name ifAbsentPut:[OrderedCollection new]) add: aClass.
].
].
(pkgDeps removeKey: pkgName ifAbsent:[#()])
do:[:aClass| classDeps removeKey: aClass ifAbsent:[]].
pkgList do:[:pkg|
+ self assert: (pkgDeps includesKey: pkg)
+ description: pkgName, ' no longer depends on ', pkg.
- self assert: (pkgDeps includesKey: pkg).
(pkgDeps removeKey: pkg ifAbsent: [#()])
do:[:aClass| classDeps removeKey: aClass ifAbsent:[]].
].
classDeps keysAndValuesDo:[:class :deps|
Transcript cr; show: class name, ' dependencies:'.
deps do:[:each| Transcript crtab; show: each].
].
+ self assert: pkgDeps isEmpty
+ description: pkgName, ' now depends on ', pkgDeps.
- self assert: pkgDeps isEmpty.
!
More information about the Packages
mailing list