The Trunk: Tests-ar.92.mcz

Previous Topic Next Topic
 
classic Classic list List threaded Threaded
1 message Options
Reply | Threaded
Open this post in threaded view
|

The Trunk: Tests-ar.92.mcz

commits-2
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.
  !