[squeak-dev] The Inbox: Tests-ct.436.mcz

commits at source.squeak.org commits at source.squeak.org
Fri Jun 5 19:43:03 UTC 2020


A new version of Tests was added to project The Inbox:
http://source.squeak.org/inbox/Tests-ct.436.mcz

==================== Summary ====================

Name: Tests-ct.436
Author: ct
Time: 5 June 2020, 9:43:01.213974 pm
UUID: 13ae0b1e-24b2-224c-b79d-43e68b3a1208
Ancestors: Tests-mt.435

Fixes failing MCPackageTest >> #test{Load, Unload}Order which I originally introduced in Tests-ct.426.

I had forgot to commit the mock preambles. Beside of that, it turned out that there was a lot of global state not properly sandboxed or reset by the MCTestCases. Enhance #clearPackageCache, fix implementations of #setUp/#tearDown methods, test MCSnapshotBrowser with and without scripts, and apply some minor refactoring. Remove accidentally added Tests-MonticelloMocks from organization.

Please report any further global state if observed.

=============== Diff against Tests-mt.435 ===============

Item was changed:
  SystemOrganization addCategory: #'Tests-Bugs'!
  SystemOrganization addCategory: #'Tests-Compiler'!
  SystemOrganization addCategory: #'Tests-Dependencies'!
  SystemOrganization addCategory: #'Tests-Digital Signatures'!
  SystemOrganization addCategory: #'Tests-Environments'!
  SystemOrganization addCategory: #'Tests-Exceptions'!
  SystemOrganization addCategory: #'Tests-FilePackage'!
  SystemOrganization addCategory: #'Tests-Files'!
  SystemOrganization addCategory: #'Tests-Finalization'!
  SystemOrganization addCategory: #'Tests-Hex'!
  SystemOrganization addCategory: #'Tests-Installer-Core'!
  SystemOrganization addCategory: #'Tests-Localization'!
  SystemOrganization addCategory: #'Tests-Monticello'!
  SystemOrganization addCategory: #'Tests-Monticello-Mocks'!
  SystemOrganization addCategory: #'Tests-Monticello-Utils'!
  SystemOrganization addCategory: #'Tests-Object Events'!
  SystemOrganization addCategory: #'Tests-ObjectsAsMethods'!
  SystemOrganization addCategory: #'Tests-PrimCallController'!
  SystemOrganization addCategory: #'Tests-Release'!
  SystemOrganization addCategory: #'Tests-System-Applications'!
  SystemOrganization addCategory: #'Tests-System-Digital Signatures'!
  SystemOrganization addCategory: #'Tests-System-Object Storage'!
  SystemOrganization addCategory: #'Tests-System-Preferences'!
  SystemOrganization addCategory: #'Tests-System-Support'!
  SystemOrganization addCategory: #'Tests-Utilities'!
  SystemOrganization addCategory: #'Tests-VM'!
- SystemOrganization addCategory: #'Tests-MonticelloMocks'!

Item was changed:
  ----- Method: MCChangeNotificationTest>>tearDown (in category 'running') -----
  tearDown
  
+ 	workingCopy unregister.
+ 	
+ 	^ super tearDown!
- 	super tearDown.
- 	workingCopy unregister!

Item was changed:
  ----- Method: MCClassDefinitionTest>>tearDown (in category 'running') -----
  tearDown
  
+ 	Smalltalk at: 'MCMockClassC' ifPresent: [:c | c removeFromSystem].
+ 	
+ 	^ super tearDown!
- 	super tearDown.
- 	Smalltalk at: 'MCMockClassC' ifPresent: [:c | c removeFromSystem]!

Item was changed:
  ----- Method: MCDictionaryRepositoryTest>>setUp (in category 'running') -----
  setUp
+ 
+ 	super setUp.
+ 
  	repository :=  MCDictionaryRepository new dictionary: self dictionary!

Item was changed:
  ----- Method: MCDirectoryRepositoryTest>>setUp (in category 'running') -----
  setUp
+ 
+ 	super setUp.
+ 
  	repository := MCDirectoryRepository directory: self directory!

Item was changed:
  ----- Method: MCDirectoryRepositoryTest>>tearDown (in category 'running') -----
  tearDown
  
+ 	self directory recursiveDelete.
+ 	
+ 	^ super tearDown!
- 	super tearDown.
- 	self directory recursiveDelete!

Item was changed:
  ----- Method: MCEnvironmentLoadTest>>setUp (in category 'running') -----
  setUp
+ 
+ 	super setUp.
+ 	
  	environment := Environment named: 'MCEnvironmentLoadTest'.
  	
  	"This is required in order to not importSelf more than once"
  	environment stopObserving: environment. 
  	
  	"This is required to make own declarations visible in environment"
  	environment importSelf.
  	
  	"Import the required PoolDictionary used by the package"
  	environment bindingOf: #MCMockAPoolDictionary
  		ifAbsent: [environment from: Smalltalk globals import: #MCMockAPoolDictionary].
  	environment from: Smalltalk globals import: #(MCMock MCSnapshotTest Object).!

Item was changed:
  ----- Method: MCEnvironmentLoadTest>>tearDown (in category 'running') -----
  tearDown
+ 
  	(environment allClassesAndTraits sorted: [:a :b |
  		(a allSuperclasses includes: b) or: [a name < b name]])
  			do: [:each | each removeFromSystem].
+ 	
+ 	^ super tearDown!
- 	super tearDown!

Item was changed:
  ----- Method: MCFileInTest>>setUp (in category 'running') -----
  setUp
+ 
+ 	super setUp.
+ 	
  	expected := self mockSnapshot.
  	stream := RWBinaryOrTextStream on: String new.!

Item was changed:
  ----- Method: MCFileInTest>>tearDown (in category 'running') -----
  tearDown
  
- 	super tearDown.
  	(diff isNil or: [diff isEmpty not])
  		 ifTrue: [expected updatePackage: self mockPackage].
+ 	SystemOrganizer default removeEmptyCategories.
+ 	
+ 	^ super tearDown!
- 	SystemOrganizer default removeEmptyCategories!

Item was changed:
  ----- Method: MCInitializationTest>>tearDown (in category 'running') -----
  tearDown
  
+ 	(MCWorkingCopy forPackage: self mockPackage) unregister.
+ 	
+ 	^ super tearDown!
- 	super tearDown.
- 	(MCWorkingCopy forPackage: self mockPackage) unregister!

Item was changed:
  ----- Method: MCMczInstallerTest>>setUp (in category 'running') -----
  setUp
+ 
+ 	super setUp.
+ 
  	expected := self mockVersion.
  	self change: #one toReturn: 2.!

Item was changed:
  ----- Method: MCMczInstallerTest>>tearDown (in category 'running') -----
  tearDown
  
- 	super tearDown.
  	expected snapshot updatePackage: self mockPackage.
+ 	self deleteFile.
+ 	
+ 	^ super tearDown!
- 	self deleteFile.!

Item was changed:
  ----- Method: MCMethodDefinitionTest>>setUp (in category 'running') -----
  setUp
+ 
+ 	super setUp.
+ 
  	extensionPackage := (MCWorkingCopy forPackage: (MCPackage named: 'FooBarBaz')).
  	navigation := (Smalltalk hasClassNamed: #SystemNavigation)
  		ifTrue: [(Smalltalk at: #SystemNavigation) new]
  		ifFalse: [Smalltalk].
  	isModified := self ownPackage modified.
  	overrideTimestamp := (self class >> #override) timeStamp!

Item was changed:
  ----- Method: MCMethodDefinitionTest>>tearDown (in category 'running') -----
  tearDown
  
  	self restoreMocks.
  	extensionPackage unregister.
  	extensionPackage := nil.
  	MCMockPackageInfo new mcPackage workingCopy unregister.
  	self class
  		compile: 'override ^ 1'
  		classified: 'mocks'
  		withStamp: overrideTimestamp
  		notifying: nil.
  	SystemOrganizer default removeEmptyCategories.
  	self ownPackage modified: isModified.
+ 	
+ 	^ super tearDown!
- 	super tearDown
- !

Item was added:
+ ----- Method: MCMockPackageInfo>>initialize (in category 'initialize-release') -----
+ initialize
+ 
+ 	super initialize.
+ 	
+ 	#(preamble postscript preambleOfRemoval postscriptOfRemoval)
+ 		do: [:selector |
+ 			self perform: selector asSimpleSetter with: selector asString].!

Item was changed:
  ----- Method: MCPackageTest>>tearDown (in category 'running') -----
  tearDown
  
+ 	self mockSnapshot install.
+ 	
+ 	^ super tearDown!
- 	super tearDown.
- 	self mockSnapshot install!

Item was changed:
  ----- Method: MCPatchTest>>setUp (in category 'running') -----
  setUp
+ 
+ 	| rev1 rev2 |
+ 	super setUp.
+ 	
- 	|rev1 rev2|
  	rev1 :=  MCSnapshotResource takeSnapshot.
  	self change: #one toReturn: 2.
  	rev2 :=  MCSnapshotResource takeSnapshot.
  	patch := rev2 patchRelativeToBase: rev1.
  	self change: #one toReturn: 1.!

Item was changed:
  ----- Method: MCPatchTest>>tearDown (in category 'running') -----
  tearDown
  
+ 	self restoreMocks.
+ 	
+ 	^ super tearDown!
- 	super tearDown.
- 	self restoreMocks!

Item was changed:
  ----- Method: MCSerializationTest>>tearDown (in category 'running') -----
  tearDown
+ 
  	self restoreMocks.
+ 	
+ 	^ super tearDown!
- 	super tearDown.!

Item was changed:
  ----- Method: MCSnapshotBrowserTest>>assertTextIs: (in category 'asserting') -----
  assertTextIs: aString
+ 	^ self assert: aString equals: self textMorph contents asString!
- 	self assert: self textMorph contents = aString.!

Item was changed:
  ----- Method: MCSnapshotBrowserTest>>setUp (in category 'running') -----
  setUp
+ 
+ 	super setUp.
+ 	
  	"to not disturb the tests"
  	originalAnnotationPanePref := Preferences annotationPanes.
  	Preferences disable: #annotationPanes.
  	model := MCSnapshotBrowser forSnapshot: MCSnapshotResource current snapshot.
  	self buildWindow!

Item was changed:
  ----- Method: MCSnapshotBrowserTest>>tearDown (in category 'running') -----
  tearDown
+ 
  	originalAnnotationPanePref ifTrue: [Preferences enable: #annotationPanes].
+ 	
+ 	^ super tearDown!
- 	super tearDown.!

Item was changed:
  ----- Method: MCSnapshotBrowserTest>>testNoSelection (in category 'tests') -----
  testNoSelection
+ 
+ 	| text |
  	self assertAListMatches: self allCategories.
  	self denyAListIncludesAnyOf: self definedClasses.
  	self denyAListIncludesAnyOf: self allProtocols.
  	self denyAListIncludesAnyOf: self allMethods.
+ 	
+ 	text := self textMorph contents asString.
+ 	
+ 	#(preamble postscript preambleOfRemoval postscriptOfRemoval)
+ 		do: [:selector |
+ 			self assert: [text includesSubstring: selector]].!
- 	"and if there I need to see the packages scripts (or none)"
- 	self assertTextIs: '(package defines no scripts)'.!

Item was added:
+ ----- Method: MCSnapshotBrowserTest>>testNoSelectionNoScripts (in category 'tests') -----
+ testNoSelectionNoScripts
+ 
+ 	#(preamble postscript preambleOfRemoval postscriptOfRemoval)
+ 		do: [:selector |
+ 			self mockPackage packageInfo perform: selector asSimpleSetter with: nil].
+ 	model snapshot: MCSnapshotResource new snapshot.
+ 	model changed: #text. "update"
+ 	
+ 	self assertTextIs: '(package defines no scripts)'.!

Item was changed:
  ----- Method: MCSnapshotTest>>setUp (in category 'running') -----
  setUp
+ 
+ 	super setUp.
+ 	
  	snapshot :=  self mockSnapshot.!

Item was changed:
  ----- Method: MCStWriterTest>>setUp (in category 'running') -----
  setUp
+ 
+ 	super setUp.
+ 	
  	stream := RWBinaryOrTextStream on: String new.
  	writer := MCStWriter on: stream.
  !

Item was changed:
  ----- Method: MCStWriterTest>>tearDown (in category 'running') -----
  tearDown
  
  	SystemOrganizer default removeEmptyCategories.
+ 	
+ 	^ super tearDown	!
- 	super tearDown	!

Item was changed:
  ----- Method: MCTestCase>>clearPackageCache (in category 'running') -----
  clearPackageCache
  	"Remove all mock packages created during the tests from the package cache."
  
+ 	| directory cacheFiles cacheNames |
- 	| directory |
  	directory := MCCacheRepository default directory.
+ 	cacheNames := {self mockVersionName. self mockVersionInfo name}.
+ 	cacheFiles := cacheNames gather: [:name |
+ 		directory fileNamesMatching: name , '*'].
+ 	cacheFiles do: [:each |
+ 		directory deleteFileNamed: each].!
- 	(directory fileNamesMatching: self mockVersionName, '*') do: [ :each |
- 		directory deleteFileNamed: each ]!

Item was added:
+ ----- Method: MCTestCase>>setUp (in category 'running') -----
+ setUp
+ 
+ 	super setUp.
+ 	
+ 	MCMockPackageInfo new register.!

Item was changed:
  ----- Method: MCTestCase>>tearDown (in category 'running') -----
  tearDown
  
+ 	self clearPackageCache.
+ 	"Environment current packageOrganizer unregisterPackageNamed:
+ 		MCSnapshotResource mockPackageName."
+ 	self flag: #todo. "Unfortunately breaks the tests"
+ 	
+ 	^ super tearDown!
- 	self clearPackageCache!

Item was changed:
  ----- Method: MCVersionTest>>setUp (in category 'running') -----
  setUp
+ 
+ 	super setUp.
+ 	
  	visited := OrderedCollection new.!

Item was changed:
  ----- Method: MCWorkingCopyRenameTest>>setUp (in category 'running') -----
  setUp
+ 
  	| repos1 repos2 |
+ 	super setUp.
+ 	
  	repositoryGroup := MCRepositoryGroup new.
  	workingCopy := MCWorkingCopy forPackage: self mockPackage.
  	versions := Dictionary new.
  	versions2 := Dictionary new.
  	repos1 := MCDictionaryRepository new dictionary: versions.
  	repos2 := MCDictionaryRepository new dictionary: versions2.
  	repositoryGroup addRepository: repos1.
  	repositoryGroup addRepository: repos2.
  	MCRepositoryGroup default removeRepository: repos1; removeRepository: repos2.
  	workingCopy repositoryGroup: repositoryGroup.
  	savedInitials := Utilities authorInitialsPerSe.
  	Utilities authorInitials: 'abc'.!

Item was changed:
  ----- Method: MCWorkingCopyRenameTest>>tearDown (in category 'running') -----
  tearDown
+ 
- 	super tearDown.
  	workingCopy unregister.
  	SystemOrganizer default removeEmptyCategories.
  	MCSnapshotTest organization removeEmptyCategories.
+ 	Utilities authorInitials: savedInitials.
+ 	
+ 	^ super tearDown!
- 	Utilities authorInitials: savedInitials!

Item was changed:
  ----- Method: MCWorkingCopyTest>>setUp (in category 'running') -----
  setUp
+ 
  	| repos1 repos2 |
+ 	super setUp.
+ 	
  	self clearPackageCache.
  	repositoryGroup := MCRepositoryGroup new.
  	workingCopy := MCWorkingCopy forPackage: self mockPackage.
  	versions := Dictionary new.
  	versions2 := Dictionary new.
  	repos1 := MCDictionaryRepository new dictionary: versions.
  	repos2 := MCDictionaryRepository new dictionary: versions2.
  	repositoryGroup addRepository: repos1.
  	repositoryGroup addRepository: repos2.
  	MCRepositoryGroup default removeRepository: repos1; removeRepository: repos2.
  	workingCopy repositoryGroup: repositoryGroup.
  	savedInitials := Utilities authorInitialsPerSe.
  	Utilities authorInitials: 'abc'.!

Item was changed:
  ----- Method: MCWorkingCopyTest>>tearDown (in category 'running') -----
  tearDown
+ 
- 	super tearDown.
  	workingCopy unregister.
  	self restoreMocks.
  	SystemOrganizer default removeEmptyCategories.
  	MCSnapshotTest organization removeEmptyCategories.
+ 	Utilities authorInitials: savedInitials.
+ 	
+ 	^ super tearDown!
- 	Utilities authorInitials: savedInitials!



More information about the Squeak-dev mailing list