[squeak-dev] The Trunk: ShoutTests-eem.24.mcz
commits at source.squeak.org
commits at source.squeak.org
Tue Feb 3 19:40:24 UTC 2015
Eliot Miranda uploaded a new version of ShoutTests to project The Trunk:
http://source.squeak.org/trunk/ShoutTests-eem.24.mcz
==================== Summary ====================
Name: ShoutTests-eem.24
Author: eem
Time: 3 February 2015, 11:40:19.199 am
UUID: c4047776-b743-4f67-96e2-e2fa2d4ec5d2
Ancestors: ShoutTests-MarcusDenker.23
This is a cut-down version of ShoutTests-MarcusDenker.23
that omits SHStyleElementTest since Squeak's
Shout doesn't include SHStyleElement.
==================== Snapshot ====================
SystemOrganization addCategory: #ShoutTests!
TestCase subclass: #SHParserST80Test
instanceVariableNames: ''
classVariableNames: ''
poolDictionaries: ''
category: 'ShoutTests'!
!SHParserST80Test commentStamp: 'TorstenBergmann 2/12/2014 23:22' prior: 0!
SUnit tests for shouts ST80 parser!
----- Method: SHParserST80Test>>d (in category 'tests-manual') -----
d
"ensure that d is defined so that we don't get an #undefinedUnary token type "!
----- Method: SHParserST80Test>>e (in category 'tests-manual') -----
e
"ensure that e is defined so that we don't get an #undefinedUnary token type "!
----- Method: SHParserST80Test>>q (in category 'tests-manual') -----
q
"ensure that q is defined so that we don't get an #undefinedUnary token type "!
----- Method: SHParserST80Test>>r (in category 'tests-manual') -----
r
"ensure that r is defined so that we don't get an #undefinedUnary token type "!
----- Method: SHParserST80Test>>s (in category 'tests-manual') -----
s
"ensure that s is defined so that we don't get an #undefinedUnary token type "!
----- Method: SHParserST80Test>>testBooleanHierarchy (in category 'tests-smoke') -----
testBooleanHierarchy
self verifyHierarchy: Boolean!
----- Method: SHParserST80Test>>testNumberHierarchy (in category 'tests-smoke') -----
testNumberHierarchy
self verifyHierarchy: Number!
----- Method: SHParserST80Test>>testNumbers (in category 'tests') -----
testNumbers
| types tokens s |
s := 'x 1'.
types := self tokenTypesIn: s.
tokens := self tokensIn: s.
self assert: types = #(patternUnary number).
self assert: tokens = #('x' '1').
s := 'x -1'.
types := self tokenTypesIn: s.
tokens := self tokensIn: s.
self assert: types = #(patternUnary #- number).
self assert: tokens = #('x' '-' '1').
s := 'x -1.1'.
types := self tokenTypesIn: s.
tokens := self tokensIn: s.
self assert: types = #(patternUnary #- number).
self assert: tokens = #('x' '-' '1.1').
s := 'x -1.1.'.
types := self tokenTypesIn: s.
tokens := self tokensIn: s.
self assert: types = #(patternUnary #- number statementSeparator).
self assert: tokens = #('x' '-' '1.1' '.').
s := 'x 1.true'.
types := self tokenTypesIn: s.
tokens := self tokensIn: s.
self assert: types = #(patternUnary number statementSeparator #true).
self assert: tokens = #('x' '1' '.' 'true').
s := 'x 2r1'.
types := self tokenTypesIn: s.
tokens := self tokensIn: s.
self assert: types = #(patternUnary number).
self assert: tokens = #('x' '2r1').
s := 'x 2d1'.
types := self tokenTypesIn: s.
tokens := self tokensIn: s.
self assert: types = #(patternUnary number).
self assert: tokens = #('x' '2d1').
s := 'x 2e1'.
types := self tokenTypesIn: s.
tokens := self tokensIn: s.
self assert: types = #(patternUnary number).
self assert: tokens = #('x' '2e1').
s := 'x 2q1'.
types := self tokenTypesIn: s.
tokens := self tokensIn: s.
self assert: types = #(patternUnary number).
self assert: tokens = #('x' '2q1').
s := 'x 16r-A'.
types := self tokenTypesIn: s.
tokens := self tokensIn: s.
self assert: types = #(patternUnary number).
self assert: tokens = #('x' '16r-A').
s := 'x -16r-A'.
types := self tokenTypesIn: s.
tokens := self tokensIn: s.
self assert: types = #(patternUnary #- number).
self assert: tokens = #('x' '-' '16r-A').
s := 'x 16r'.
types := self tokenTypesIn: s.
tokens := self tokensIn: s.
self assert: types = #(patternUnary number).
self assert: tokens = #('x' '16r').
s := 'x 16r-'.
types := self tokenTypesIn: s.
tokens := self tokensIn: s.
self assert: types = #(patternUnary number).
self assert: tokens = #('x' '16r-').
s := 'x 16r-d'.
types := self tokenTypesIn: s.
tokens := self tokensIn: s.
self assert: types = #(patternUnary number).
self assert: tokens = #('x' '16r-d').
s := 'x 2r2'.
types := self tokenTypesIn: s.
tokens := self tokensIn: s.
self assert: types = #(patternUnary number excessCode).
self assert: tokens = #('x' '2r' '2').
s := 'x 1.'.
types := self tokenTypesIn: s.
tokens := self tokensIn: s.
self assert: types = #(patternUnary number statementSeparator).
self assert: tokens = #('x' '1' '.').
s := 'x 1yourself'.
types := self tokenTypesIn: s.
tokens := self tokensIn: s.
self assert: types = #(patternUnary number unary).
self assert: tokens = #('x' '1' 'yourself').
s := 'x 1size'.
types := self tokenTypesIn: s.
tokens := self tokensIn: s.
self assert: types = #(patternUnary number unary).
self assert: tokens = #('x' '1' 'size').
s := 'x 1.1size'.
types := self tokenTypesIn: s.
tokens := self tokensIn: s.
self assert: types = #(patternUnary number unary).
self assert: tokens = #('x' '1.1' 'size').
s := 'x 1s'.
types := self tokenTypesIn: s.
tokens := self tokensIn: s.
self assert: types = #(patternUnary number).
self assert: tokens = #('x' '1s').
s := 'x 1.1s'.
types := self tokenTypesIn: s.
tokens := self tokensIn: s.
self assert: types = #(patternUnary number).
self assert: tokens = #('x' '1.1s').
s := 'x 2r1e26'.
types := self tokenTypesIn: s.
tokens := self tokensIn: s.
self assert: types = #(patternUnary number).
self assert: tokens = #('x' '2r1e26').
s := 'x 16r1e-26'.
types := self tokenTypesIn: s.
tokens := self tokensIn: s.
self assert: types = #(patternUnary number binary number).
self assert: tokens = #('x' '16r1e' '-' '26').
s := 'x 16r1e'.
types := self tokenTypesIn: s.
tokens := self tokensIn: s.
self assert: types = #(patternUnary number).
self assert: tokens = #('x' '16r1e').
s := 'x 16r1e-1'.
types := self tokenTypesIn: s.
tokens := self tokensIn: s.
self assert: types = #(patternUnary number binary number).
self assert: tokens = #('x' '16r1e' '-' '1').
s := 'x 16r1e-'.
types := self tokenTypesIn: s.
tokens := self tokensIn: s.
self assert: types = #(patternUnary number binary excessCode).
self assert: tokens = #('x' '16r1e' '-' '').
s := 'x 16r1.ABe20'.
types := self tokenTypesIn: s.
tokens := self tokensIn: s.
self assert: types = #(patternUnary number).
self assert: tokens = #('x' '16r1.ABe20').
s := 'x 16r1.ABe-20'.
types := self tokenTypesIn: s.
tokens := self tokensIn: s.
self assert: types = #(patternUnary number binary number).
self assert: tokens = #('x' '16r1.ABe' '-' '20').
s := 'x 1.0e14'.
types := self tokenTypesIn: s.
tokens := self tokensIn: s.
self assert: types = #(patternUnary number).
self assert: tokens = #('x' '1.0e14').
s := 'x 1.0e-14'.
types := self tokenTypesIn: s.
tokens := self tokensIn: s.
self assert: types = #(patternUnary number).
self assert: tokens = #('x' '1.0e-14').
s := 'x 1.0e14e'.
types := self tokenTypesIn: s.
tokens := self tokensIn: s.
self assert: types = #(patternUnary number unary).
self assert: tokens = #('x' '1.0e14' 'e').
""
s := 'x 2r1q26'.
types := self tokenTypesIn: s.
tokens := self tokensIn: s.
self assert: types = #(patternUnary number).
self assert: tokens = #('x' '2r1q26').
s := 'x 16r1q-26'.
types := self tokenTypesIn: s.
tokens := self tokensIn: s.
self assert: types = #(patternUnary number).
self assert: tokens = #('x' '16r1q-26').
s := 'x 16r1q'.
types := self tokenTypesIn: s.
tokens := self tokensIn: s.
self assert: types = #(patternUnary number unary).
self assert: tokens = #('x' '16r1' 'q').
s := 'x 16r1q-1'.
types := self tokenTypesIn: s.
tokens := self tokensIn: s.
self assert: types = #(patternUnary number).
self assert: tokens = #('x' '16r1q-1').
s := 'x 16r1q-'.
types := self tokenTypesIn: s.
tokens := self tokensIn: s.
self assert: types = #(patternUnary number unary binary excessCode).
self assert: tokens = #('x' '16r1' 'q' '-' '').
s := 'x 16r1.ABq20'.
types := self tokenTypesIn: s.
tokens := self tokensIn: s.
self assert: types = #(patternUnary number).
self assert: tokens = #('x' '16r1.ABq20').
s := 'x 16r1.ABq-20'.
types := self tokenTypesIn: s.
tokens := self tokensIn: s.
self assert: types = #(patternUnary number).
self assert: tokens = #('x' '16r1.ABq-20').
s := 'x 1.0q14'.
types := self tokenTypesIn: s.
tokens := self tokensIn: s.
self assert: types = #(patternUnary number).
self assert: tokens = #('x' '1.0q14').
s := 'x 1.0q-14'.
types := self tokenTypesIn: s.
tokens := self tokensIn: s.
self assert: types = #(patternUnary number).
self assert: tokens = #('x' '1.0q-14').
s := 'x 1.0q14q'.
types := self tokenTypesIn: s.
tokens := self tokensIn: s.
self assert: types = #(patternUnary number unary).
self assert: tokens = #('x' '1.0q14' 'q').
""
s := 'x 2r1d26'.
types := self tokenTypesIn: s.
tokens := self tokensIn: s.
self assert: types = #(patternUnary number).
self assert: tokens = #('x' '2r1d26').
s := 'x 16r1d-26'.
types := self tokenTypesIn: s.
tokens := self tokensIn: s.
self assert: types = #(patternUnary number binary number).
self assert: tokens = #('x' '16r1d' '-' '26').
s := 'x 16r1d'.
types := self tokenTypesIn: s.
tokens := self tokensIn: s.
self assert: types = #(patternUnary number).
self assert: tokens = #('x' '16r1d').
s := 'x 16r1d-1'.
types := self tokenTypesIn: s.
tokens := self tokensIn: s.
self assert: types = #(patternUnary number binary number).
self assert: tokens = #('x' '16r1d' '-' '1').
s := 'x 16r1d-'.
types := self tokenTypesIn: s.
tokens := self tokensIn: s.
self assert: types = #(patternUnary number binary excessCode).
self assert: tokens = #('x' '16r1d' '-' '').
s := 'x 16r1.ABd20'.
types := self tokenTypesIn: s.
tokens := self tokensIn: s.
self assert: types = #(patternUnary number).
self assert: tokens = #('x' '16r1.ABd20').
s := 'x 16r1.ABd-20'.
types := self tokenTypesIn: s.
tokens := self tokensIn: s.
self assert: types = #(patternUnary number binary number).
self assert: tokens = #('x' '16r1.ABd' '-' '20').
s := 'x 1.0d14'.
types := self tokenTypesIn: s.
tokens := self tokensIn: s.
self assert: types = #(patternUnary number).
self assert: tokens = #('x' '1.0d14').
s := 'x 1.0d-14'.
types := self tokenTypesIn: s.
tokens := self tokensIn: s.
self assert: types = #(patternUnary number).
self assert: tokens = #('x' '1.0d-14').
s := 'x 1.0d14d'.
types := self tokenTypesIn: s.
tokens := self tokensIn: s.
self assert: types = #(patternUnary number unary).
self assert: tokens = #('x' '1.0d14' 'd').
""
s := 'x -1.1e-2'.
types := self tokenTypesIn: s.
tokens := self tokensIn: s.
self assert: types = #(patternUnary #- number ).
self assert: tokens = #('x' '-' '1.1e-2'). "only first - is separate token !!"
s := 'x -16r-1.0e-2'.
types := self tokenTypesIn: s.
tokens := self tokensIn: s.
self assert: types = #(patternUnary #- number binary number).
self assert: tokens = #('x' '-' '16r-1.0e' '-' '2'). "only first - is separate token !!"
s := 'x 1-1'.
types := self tokenTypesIn: s.
tokens := self tokensIn: s.
self assert: types = #(patternUnary number binary number ).
self assert: tokens = #('x' '1' '-' '1').
s := 'x 1--1'.
types := self tokenTypesIn: s.
tokens := self tokensIn: s.
self assert: types = #(patternUnary number incompleteBinary number ).
self assert: tokens = #('x' '1' '--' '1').
s := 'x 1--"comment"1'.
types := self tokenTypesIn: s.
tokens := self tokensIn: s.
self assert: types = #(patternUnary number incompleteBinary comment number ).
self assert: tokens = #('x' '1' '--' '"comment"' '1').
s := 'x 1-self'.
types := self tokenTypesIn: s.
tokens := self tokensIn: s.
self assert: types = #(patternUnary number binary self ).
self assert: tokens = #('x' '1' '-' 'self'). !
----- Method: SHParserST80Test>>testObjectClass (in category 'tests-smoke') -----
testObjectClass
self verifyClass: Object!
----- Method: SHParserST80Test>>tokenTypesIn: (in category 'utilities') -----
tokenTypesIn: aString
| parser ranges |
parser := SHParserST80 new.
ranges := parser rangesIn: aString classOrMetaClass: Object workspace: nil environment: nil.
^ranges asArray collect: [:each | each type]!
----- Method: SHParserST80Test>>tokensIn: (in category 'utilities') -----
tokensIn: aString
| parser ranges |
parser := SHParserST80 new.
ranges := parser rangesIn: aString classOrMetaClass: Object workspace: nil environment: nil.
^ranges asArray collect: [:each | aString copyFrom: each start to: each end]!
----- Method: SHParserST80Test>>verifyClass: (in category 'utilities') -----
verifyClass: aBehavior
aBehavior selectors do: [ :selector | self verifyClass: aBehavior selector: selector ]
!
----- Method: SHParserST80Test>>verifyClass:selector: (in category 'utilities') -----
verifyClass: aBehavior selector: aSymbol
| ranges position types errors |
ranges := SHParserST80 new
rangesIn: (aBehavior sourceCodeAt: aSymbol)
classOrMetaClass: aBehavior
workspace: nil environment: nil.
types := #(#default #invalid #excessCode #comment #unfinishedComment #'$' #character #integer #number #- #symbol #stringSymbol #literalArray #string #unfinishedString #assignment #ansiAssignment #literal #keyword #binary #unary #incompleteKeyword #incompleteBinary #incompleteUnary #undefinedKeyword #undefinedBinary #undefinedUnary #patternKeyword #patternBinary #patternUnary #self #super #true #false #nil #thisContext #return #patternArg #methodArg #blockPatternArg #blockArg #argument #blockArgColon #leftParenthesis #rightParenthesis #leftParenthesis1 #rightParenthesis1 #leftParenthesis2 #rightParenthesis2 #leftParenthesis3 #rightParenthesis3 #leftParenthesis4 #rightParenthesis4 #leftParenthesis5 #rightParenthesis5 #leftParenthesis6 #rightParenthesis6 #leftParenthesis7 #rightParenthesis7 #blockStart #blockEnd #blockStart1 #blockEnd1 #blockStart2 #blockEnd2 #blockStart3 #blockEnd3 #blockStart4 #blockEnd4 #blockStart5 #blockEnd5 #blockStart6 #blockEnd6 #blockStart7 #blockEnd7 #arrayStart #arrayEnd #arrayStart1 #arrayEnd1 #byteArrayStart #byteArrayEnd #byteArrayStart1 #byteArrayEnd1 #leftBrace #rightBrace #cascadeSeparator #statementSeparator #externalCallType #externalCallTypePointerIndicator #primitiveOrExternalCallStart #primitiveOrExternalCallEnd #methodTempBar #blockTempBar #blockArgsBar #primitive #externalFunctionCallingConvention #module #blockTempVar #blockPatternTempVar #instVar #workspaceVar #undefinedIdentifier #incompleteIdentifier #tempVar #patternTempVar #poolConstant #classVar #globalVar #pragmaKeyword #pragmaUnary #pragmaBinary) asIdentitySet.
errors := #(#excessCode #unfinishedComment #unfinishedString) asIdentitySet.
position := 0.
ranges do: [ :each |
self
assert: 1 <= each length
description: 'empty range'.
self
assert: position <= each start
description: 'overlapping range'.
self
assert: each start <= each end
description: 'empty range'.
self
assert: (types includes: each type)
description: 'unknown type ' , each type.
self
deny: (errors includes: each type)
description: 'error type ' , each type.
position := each end ]!
----- Method: SHParserST80Test>>verifyHierarchy: (in category 'utilities') -----
verifyHierarchy: aBehavior
aBehavior withAllSubclassesDo: [ :class | self verifyClass: class; verifyClass: class class ]!
More information about the Squeak-dev
mailing list
|