'From Squeak3.4 of 1 March 2003 [latest update: #5170] on 4 March 2003 at 11:51:14 am'! "Change Set: SUnitFrameworkRemoval Date: 4 March 2003 Author: Marcus Denker This changeset is intended for the 3.4 release image, Please file in Tests-removal (on SqueakMap) first!! This changeset removes SUnit 3.0 completely: -> The SUnit-* categories -> all sunit* methods -> unregisters TestRunner from Systemwindow -> removes SystemDictionary>>discardSUnit -> patches SystemDictionary>>makeSqueaklandRelease "! !SystemDictionary methodsFor: 'housekeeping' stamp: 'md 3/3/2003 17:20'! makeSqueaklandRelease "Smalltalk makeSqueaklandRelease" "NOTE: This method assumes that * ALL WINDOWS HAVE BEEN CLOSED (most importantly all project windows) * ALL GLOBAL FLAPS HAVE BEEN DESTROYED (not just disabled) This method may needs to be run twice - upon the first run you will probably receive an error message saying 'still have obsolete behaviors'. Close the notifier and try again. If there are still obsolete behaviors then go looking for them. Last update: ar 8/18/2001 01:14 for Squeak 3.1" | ss | (self confirm: self version , ' Is this the correct version designation? If not, choose no, and fix it.') ifFalse: [^ self]. "Delete all projects" Project allSubInstancesDo:[:p| (p == Project current) ifFalse:[Project deletingProject: p]. ]. "Fix up for some historical problem" Smalltalk allObjectsDo:[:o| o isMorph ifTrue:[o removeProperty: #undoGrabCommand]. ]. "Hm ... how did this come in?!!" Smalltalk keys do:[:x| (x class == String and:[(Smalltalk at: x) isBehavior]) ifTrue:[Smalltalk removeKey: x]. ]. "Remove stuff from References" References keys do:[:k| References removeKey: k]. "Reset command history" CommandHistory resetAllHistory. "Clean out Undeclared" Undeclared removeUnreferencedKeys. "Reset scripting system" StandardScriptingSystem initialize. "Reset preferences" Preferences chooseInitialSettings; installBrightWindowColors. "Do a nice fat GC" Smalltalk garbageCollect. "Dependents mean that we're holding onto stuff" (Object classPool at: #DependentsFields) size > 1 ifTrue: [self error:'Still have dependents']. "Set a few default preferences" #( (honorDesktopCmdKeys false) (warnIfNoChangesFile false) (warnIfNoSourcesFile false) (showDirectionForSketches true) (menuColorFromWorld false) (unlimitedPaintArea true) (useGlobalFlaps false) (mvcProjectsAllowed false) (projectViewsInWindows false) (automaticKeyGeneration true) (securityChecksEnabled true) (showSecurityStatus false) (startInUntrustedDirectory true) (warnAboutInsecureContent false) (promptForUpdateServer false) (fastDragWindowForMorphic false) ) do:[:spec| Preferences setPreference: spec first toValue: (spec last == #true). ]. "Initialize Browser (e.g., reset recent classes etc)" Browser initialize. "Check for Undeclared" Undeclared isEmpty ifFalse: [self error:'Please clean out Undeclared']. "Remove graphics we don't want" ScriptingSystem deletePrivateGraphics. "Remove a few text styles" #(Helvetica Palatino Courier) do: [:n | TextConstants removeKey: n ifAbsent: []]. "Dump all player uniclasses" Smalltalk at: #Player ifPresent:[:player| player allSubclassesDo:[:cls| cls isSystemDefined ifFalse:[cls removeFromSystem]]]. "Dump all Wonderland uniclasses" Smalltalk at: #WonderlandActor ifPresent:[:wnldActor| wnldActor allSubclassesDo:[:cls| cls isSystemDefined ifFalse:[cls removeFromSystem]]]. "Attempt to get rid of them" Smalltalk garbageCollect. "Now remove larger parts" Smalltalk discardFFI; discard3D; discardSpeech; discardVMConstruction; discardPWS; discardIRC. "Dump change sets" ChangeSorter removeChangeSetsNamedSuchThat: [:cs| cs name ~= Smalltalk changes name]. "Clear current change set" Smalltalk changes clear. Smalltalk changes name: 'Unnamed1'. Smalltalk garbageCollect. "Reinitialize DataStream; it may hold on to some zapped entitities" DataStream initialize. "Remove refs to old ControlManager" ScheduledControllers _ nil. "Flush obsolete subclasses" Behavior flushObsoleteSubclasses. Smalltalk garbageCollect. Smalltalk obsoleteBehaviors isEmpty ifFalse:[self error:'Still have obsolete behaviors']. "Clear all server entries" ServerDirectory serverNames do: [:each | ServerDirectory removeServerNamed: each]. SystemVersion current resetHighestUpdate. ss _ Set allSubInstances. 'Rehashing all sets' displayProgressAt: Sensor cursorPoint from: 1 to: ss size during:[:bar| 1 to: ss size do:[:i| bar value: i. (ss at: i) rehash. ]. ]. Smalltalk obsoleteClasses isEmpty ifFalse: [self halt]. self halt: 'Ready to condense changes or sources'. SystemDictionary removeSelector: #makeSqueaklandRelease.! ! SystemDictionary removeSelector: #discardSUnit! Symbol removeSelector: #sunitAsClass! String class removeSelector: #exampleFor:! String removeSelector: #sunitAsSymbol! String removeSelector: #sunitMatch:! String removeSelector: #sunitSubStrings! SmallInteger class removeSelector: #exampleFor:! OrderedCollection class removeSelector: #exampleFor:! Integer class removeSelector: #exampleFor:! Number class removeSelector: #exampleFor:! MailAddressParser class removeSelector: #exampleFor:! Exception class removeSelector: #sunitSignalWith:! Exception removeSelector: #sunitExitWith:! Array class removeSelector: #exampleFor:! Collection class removeSelector: #exampleFor:! Base64MimeConverter class removeSelector: #exampleFor:! Class removeSelector: #sunitName! BlockContext removeSelector: #sunitEnsure:! BlockContext removeSelector: #sunitOn:do:! Behavior removeSelector: #sunitAllSelectors! Behavior removeSelector: #sunitSelectors! Object removeSelector: #sunitAddDependent:! Object removeSelector: #sunitChanged:! Object removeSelector: #sunitRemoveDependent:! Smalltalk removeClassNamed: #AllTestSelectorsFixTest! Smalltalk removeClassNamed: #ExampleSetTest! Smalltalk removeClassNamed: #ExampleTestResource! Smalltalk removeClassNamed: #SUnitDelay! Smalltalk removeClassNamed: #SUnitNameResolver! Smalltalk removeClassNamed: #SUnitTest! Smalltalk removeClassNamed: #TestCase! Smalltalk removeClassNamed: #TestFailure! Smalltalk removeClassNamed: #TestResource! Smalltalk removeClassNamed: #TestResult! Smalltalk removeClassNamed: #TestRunner! Smalltalk removeClassNamed: #TestSuite! Smalltalk removeClassNamed: #TestViaMethodCall! Smalltalk removeClassNamed: #Verifier! Smalltalk removeClassNamed: #VerifierOfProperty! "Postscript:" TheWorldMenu unregisterOpenCommand: 'Test Runner'. ClassOrganizer allInstancesDo: [:co | co removeEmptyCategories]. SystemOrganization removeCategoriesMatching: 'SUnit*'.!