The Trunk: Tests-eem.327.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-eem.327.mcz

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

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

Name: Tests-eem.327
Author: eem
Time: 25 August 2015, 4:21:25.745 pm
UUID: 40649464-54c2-4aab-b4a4-9df95952958d
Ancestors: Tests-ul.326

Revise the maxLiterals test given the bytecode set specific facilities in Encoder and CompiledMethod.

=============== Diff against Tests-ul.326 ===============

Item was changed:
  ----- Method: CompilerTest>>testMaxLiterals (in category 'limits') -----
  testMaxLiterals
  "Document the maximum number of literals in a compiled method"
 
  | maxLiterals stringThatCanBeCompiled stringWithOneTooManyLiterals |
+ "Why 6?  It's rather implementation dependent.  But the {... construct is compiled as
+ (Array braceStream: size)
+ nextPut: expr;
+ ...;
+ braceArray
+ where nextPut: is a special selector.  So one each for Array binding, #braceStream, #braceArray and the size,
+ one for the selector and one for the methodClass makes 6."
+ maxLiterals := thisContext method encoderClass new maxNumLiterals - 6.
- maxLiterals := 250.
  stringThatCanBeCompiled := '{ ', (String streamContents: [:strm |
  1 to: maxLiterals do: [:e | strm nextPutAll: '''', e asString, '''', ' . ']]), '}'.
  stringWithOneTooManyLiterals := '{ ', (String streamContents: [:strm |
  1 to: maxLiterals + 1 do: [:e | strm nextPutAll: '''', e asString, '''', ' . ']]), '}'.
  self assert: ((1 to: maxLiterals) collect: #printString) equals: (Compiler evaluate: stringThatCanBeCompiled).
 
  "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.
  !