Marcel Taeumel uploaded a new version of Tests to project The Trunk: http://source.squeak.org/trunk/Tests-mt.412.mcz
==================== Summary ====================
Name: Tests-mt.412 Author: mt Time: 5 July 2019, 4:19:48.095927 pm UUID: 2c15b9f3-d33e-42b6-b9f5-bab98e2f6d03 Ancestors: Tests-pre.411
Fixes max-literals test for EncoderV3* (i.e., pre-SistaV1).
=============== Diff against Tests-pre.411 ===============
Item was changed: ----- Method: CompilerTest>>testMaxLiteralsWithClassReferenceInClosure (in category 'limits') ----- testMaxLiteralsWithClassReferenceInClosure "Document the maximum number of literals in a compiled method. A class reference in a closure reduces the maximum literals."
| bytecodeSetEncoder maxLiterals stringThatCanBeCompiled stringWithOneTooManyLiterals | bytecodeSetEncoder := CompiledMethod preferredBytecodeSetEncoderClass new. maxLiterals := bytecodeSetEncoder maxNumLiterals - 2 "for selector & methodClass" + - (bytecodeSetEncoder supportsFullBlocks ifTrue: [1] ifFalse: [5 "For this example. See below"]) - - (bytecodeSetEncoder supportsFullBlocks ifTrue: [1] ifFalse: [0]) - 4 "for the implicit stream processing into which the brace construct is compiled: (Array braceStream: size) braceArray". stringThatCanBeCompiled := '[ DateAndTime now. Date today. Time ]. { ', (String streamContents: [:strm | 1 to: maxLiterals do: [:e | strm nextPutAll: '''', e asString, '''', ' . ']]), '}'. stringWithOneTooManyLiterals := '[ DateAndTime now. Date today. Time ]. { ', (String streamContents: [:strm | 1 to: maxLiterals + 1 do: [:e | strm nextPutAll: '''', e asString, '''', ' . ']]), '}'. self assert: maxLiterals equals: (Compiler evaluate: stringThatCanBeCompiled) size. "If the following test fails, it means that the limit has been raised or eliminated, and this test should be updated to reflect the improvement." self should: [Compiler evaluate: stringWithOneTooManyLiterals] raise: Error. !
squeak-dev@lists.squeakfoundation.org