[squeak-dev] The Trunk: Tests-eem.374.mcz

commits at source.squeak.org commits at source.squeak.org
Mon Apr 3 21:08:17 UTC 2017


Eliot Miranda uploaded a new version of Tests to project The Trunk:
http://source.squeak.org/trunk/Tests-eem.374.mcz

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

Name: Tests-eem.374
Author: eem
Time: 3 April 2017, 2:08:08.542853 pm
UUID: 8ff1a1ea-af44-4578-8594-782f63d0f0eb
Ancestors: Tests-eem.373

Revamp the DecompilerTests given the changes in 
Compiler-eem.337.  Exclude classes in EToys and a few others from the decompiler tests for now.

=============== Diff against Tests-eem.373 ===============

Item was changed:
  ----- Method: DecompilerTests>>checkDecompileMethod: (in category 'utilities') -----
  checkDecompileMethod: oldMethod
  	
  	| cls selector oldMethodNode methodNode newMethod oldCodeString newCodeString |
  	cls := oldMethod methodClass.
  	selector := oldMethod selector.
  	oldMethodNode := (cls decompilerClass new withTempNames: oldMethod methodNode schematicTempNamesString)
  							decompile: selector
  							in: cls
  							method: oldMethod methodForDecompile.
  	[oldMethodNode properties includesKey: #warning] whileTrue:
  		[oldMethodNode properties removeKey: #warning].
  	oldCodeString := oldMethodNode decompileString.
  	methodNode := [cls newCompiler
  						compile: oldCodeString
  						in: cls
  						notifying: nil
  						ifFail: []]
  						on: SyntaxErrorNotification
  						do: [:ex|
  							ex errorMessage = 'Cannot store into' ifTrue:
  								[ex return: #badStore].
  							ex pass].
  	"Ignore cannot store into block arg errors; they're not our issue."
  	methodNode ~~ #badStore ifTrue:
  		[newMethod := methodNode generate.
  		 newCodeString := ((cls decompilerClass new withTempNames: methodNode schematicTempNamesString)
  								decompile: selector
  								in: cls
  								method: newMethod methodForDecompile) decompileString.
  		 "(StringHolder new textContents:
  			(TextDiffBuilder buildDisplayPatchFrom: oldCodeString to: newCodeString))
  				openLabel: 'Decompilation Differences for ', cls name,'>>',selector"
  		 "(StringHolder new textContents:
  			(TextDiffBuilder buildDisplayPatchFrom: oldMethod abstractSymbolic to: newMethod abstractSymbolic))
  				openLabel: 'Bytecode Differences for ', cls name,'>>',selector"
+ 		 self assert: (oldCodeString = newCodeString
+ 					or: [(Scanner new scanTokens: oldCodeString) = (Scanner new scanTokens: newCodeString)])
- 		 self assert: oldCodeString = newCodeString
  			description: cls name asString, ' ', selector asString
  			resumable: true]!

Item was changed:
  ----- Method: DecompilerTests>>classNames (in category 'utilities') -----
  classNames
+ 	"A list of the classes in most of the base packages; excluding EToys arbitrarily for now"
+ 	^Smalltalk globals allClassesAndTraits
+ 		select:
+ 			[:classOrTrait|
+ 			 #(	'Balloon'
+ 				'Chronology' 'Collections' 'CommandLine' 'Compiler' 'Compression'
+ 				'Environments' 'Exceptions'
+ 				'Files'
+ 				'GetText' 'Graphics' 'Help-' 'HelpSystem-'
+ 				'Installer-Core'
+ 				'Kernel-' 'KernelTests-'
+ 				'Monticello'
+ 				'Morphic-' 'MorphicExtras-' 'MorphicExtrasTests-' 'MorphicTests-'
+ 				'Multilingual' 'MultilingualTests'
+ 				'Nebraska' 'Network' 'NetworkTests'
+ 				'PackageInfo-Base' 'PreferenceBrowser' 'Protocols'
+ 				'Regex'
+ 				'ReleaseBuilder'
+ 				'SMBase' 'SMLoader' 'ST80' 'ST80Tests' 'ST80Tools' 'SUnit' 'ScriptLoader' 'Services-Base' 'Shout' 
+ 					'Sound' 'Squeak-Version' 'SqueakSSL' 'System' 
+ 				'Tests' 'ToolBuilder' 'Tools' 'Traits' 'TrueType'
+ 				'Universes' 'UpdateStream' 'VersionNumber'
+ 				'WebClient-'
+ 				'XML-') anySatisfy:
+ 				[:packageRoot|
+ 				 classOrTrait category beginsWith: packageRoot]]
+ 		thenCollect:
+ 			[:classOrTrait| classOrTrait name]!
- 	
- 	^Smalltalk globals classAndTraitNames!

Item was changed:
  ----- Method: DecompilerTests>>decompilerFailures (in category 'utilities') -----
  decompilerFailures
  	"Here is the list of failures: either a syntax error, a hard error or some failure to decompile correctly.
  	 Collected via 
  		DecompilerTestFailuresCollector new computeFailures."
  
  	"class name, selector, error class name or nil"
  	^  #(
  		#(Behavior toolIconSelector: TestFailure) 
  		#(BrowserCommentTextMorph showPane SyntaxErrorNotification) 
- 		#(ClassDescription replaceSilently:to: SyntaxErrorNotification) 
  		#(CodeHolder getSelectorAndSendQuery:to:with: SyntaxErrorNotification) 
- 		#(Date printOn: TestFailure) 
  		#(DecompilerTests testDecompileUnreachableParameter Error) 
- 		#(FontImporterTool fontFromFamily: SyntaxErrorNotification) "same-name block-local temps in optimized blocks"
  		#(HttpUrl checkAuthorization:retry: TestFailure) 
- 		#(LargeNegativeIntegerTest testReplaceFromToWithStartingAt SyntaxErrorNotification) "same-name block-local temps in optimized blocks"
- 		#(LargePositiveIntegerTest testReplaceFromToWithStartingAt SyntaxErrorNotification) "same-name block-local temps in optimized blocks"
- 		#(MailComposition breakLinesInMessage: SyntaxErrorNotification) 
  		#(MCConfigurationBrowser post SyntaxErrorNotification) 
  		#(MVCToolBuilder setLayout:in: SyntaxErrorNotification) "same-name block-local temps in optimized blocks"
+ 		#(ParseNodeBuilder variable: TestFailure) "Almost fully returning if's result in a nil node."
- 		#(ParagraphEditor inOutdent:delta: SyntaxErrorNotification) 
  		#(PNGReadWriter copyPixelsGray: SyntaxErrorNotification) 
  		#(ProtoObjectTest testIfNilIfNotNil SyntaxErrorNotification) 
  		#(ProtoObjectTest testIfNotNil SyntaxErrorNotification) 
+ 		#(ProtoObjectTest testIfNotNilIfNil SyntaxErrorNotification)
- 		#(ProtoObjectTest testIfNotNilIfNil SyntaxErrorNotification) 
- 		#(RxsCharSet enumerablePartPredicateIgnoringCase: SyntaxErrorNotification) 
- 		#(ScaledDecimalTest testConvertFromFraction SyntaxErrorNotification) "local/non-local temps"
  		#(SHMCClassDefinition withAllSuperclassesDo: SyntaxErrorNotification) "same-name block-local temps in optimized blocks"
- 		#(StandardScriptingSystem holderWithAlphabet SyntaxErrorNotification) "same-name block-local temps in optimized blocks"
- 		#(SyntaxMorph mouseEnterDragging: SyntaxErrorNotification) 
- 		#(SystemWindow convertAlignment SyntaxErrorNotification) 
- 		#(TextEditor inOutdent:delta: SyntaxErrorNotification) 
  		#(TextURL actOnClickFor: TestFailure) 
  		#(TTContourConstruction segmentsDo: SyntaxErrorNotification) "Worth fixing; these two are mistaken conversion from a whileTrue: to a to:do: but the index is used outside the whileTrue:"
  		#(TTFontReader processHorizontalMetricsTable:length: SyntaxErrorNotification)
  		#(WeakSet scanForLoadedSymbol: TestFailure))!



More information about the Squeak-dev mailing list